Просмотр сообщений
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - makeev
31
« on: 19.04.2011, 12:06:54 »
Я по прежнему не очень понял вашу идею, если честно. А зачем после вывода сообщения вы зануляете все переменные, и не стоит ли какие-то из них сделать типа static?
Попробуйте отлаживать это постепенно: как минимум посмотреть что у вас записано в промежуточных значениях (правой кнопкой на индикатор -> "Показать переменные ATF"). Так я вас ничего не могу сказать.
Я зануляю значения только openp, closep ,a ибо они мне нужны с нулевыми данными при новой оценки разницы данных. А вот переменные raznp; procp которые мне нужны они то и не зануляются. Спасибо конечно. Но сегодня утром у меня все заработало. Значения переменных raznp; procp выводит как нужно, хотя в содержании скрипта я ничего не менял. Не знаю что это было.
32
« on: 19.04.2011, 09:27:25 »
makeev, честно говоря я вообще не очень понимаю кода. Что вы хотели в результате добиться?
var openp=0; var closep=0; var a =0; var raznp=0; var procp=0; function calc() { var b = getMoneyBalance()+getSecBalance()*close; if(open){a=a+1;} if(a==1){openp=b;} if(a==3){ closep=b; raznp= closep-openp; procp=(((closep*100)/openp)-100)/100; signal::alert(procp+"**"+raznp); a=0; openp=0; closep=0; }} var b = getMoneyBalance()+getSecBalance()*close; оценка портфеля if(open){a=a+1;} счетчик. При каждой новой свечи добавляет 1 if(a==1){openp=b;} при значении равной 1 записывает в глобальную переменную значения оценки портфеля if(a==3){ closep=b; raznp= closep-openp; procp=(((closep*100)/openp)-100)/100; signal::alert(procp+"**"+raznp); a=0; openp=0; closep=0; При значении равному 3 записывает значения оценки портфеля. Потом вычисляем разницу записанных значений closep-openp. Записываем в глобальную переменную procp разницу изменения в процентном отношении. Позже выводим на монитор сообщения вида: (изменения в процентном отношении ** разница значений). Ну и позже обнуляем значения счетчика свечей «a», а также значения глобальных переменных openp,closep. Вот и все. Что должно получиться? - На экран сообщение об изменении оценки портфеля.
33
« on: 18.04.2011, 11:09:22 »
Выводит только сообщение 0**0
var openp=0; var closep=0; var a =0; var raznp=0; var procp=0;
function calc()
{ var b = getMoneyBalance()+getSecBalance()*close;
if(open){a=a+1;}
if(a==1){openp=b;}
if(a==3){ closep=b; raznp= closep-openp; procp=(((closep*100)/openp)-100)/100;
signal::alert(procp+"**"+raznp);
a=0; openp=0; closep=0;
}
}
34
« on: 18.04.2011, 11:06:44 »
Народ подскажите... Пересмотрел вроде все, ну возможнто что то не увидел. Кароч должен выводить разницу цен openp и closep и в процентном отношении. А вот чет не выводит.
var openp=0; var closep=0; var a =0; var raznp=0; var procp=0;
function calc()
{ var b = getMoneyBalance()+getSecBalance()*close;
if(open){a=a+1;}
if(a==1){openp=b;}
if(a==3){ closep=b; raznp= closep-openp; procp=(((closep*100)/openp)-100)/100;
signal::alert(procp+"**"+raznp); }
a=0; openp=0; closep=0;
}
35
« on: 01.04.2011, 11:52:59 »
Я как то по ошибке отформатировал флешку где лежал transaq со скрипом над которым я очень долго думал. И что вы думаете? Даже после такой страшной операции я восстановил файлы transaq. Конечно, работоспособность программы я не вернул, зато забрал от туда скрипт.
36
« on: 01.04.2011, 11:45:34 »
Почему на INTRA нельзя войти в короткую?
37
« on: 10.03.2011, 13:20:07 »
Вот сразу не отходя от кассы вопрос к разработчикам: можно ли сделать функцию для изменения таймфрейм?
38
« on: 10.03.2011, 12:27:54 »
С неполными лотами вообще беда. У меня вот зависли по газпрому. В финаме мне сказали позвонить по одному волшебному телефону в вечернее время и там должны вроде как помочь.
39
« on: 10.03.2011, 12:19:59 »
Пара вопросов:
1. Как получить номер свечи именно с начала дня ? Можно пример какой нить.
2. Как переходить между таймфреймами скажем чтобы подсчитывалось что нибудь на тиках, в то время как на графике врублены минутки или часы....
1. Может проще замутить счетчик взяв за основу функции времени?
40
« on: 28.02.2011, 18:54:09 »
Где-то в интернете мелькнула информация, что на бирже (по-моему, речь шла о ФОРТСе) собираются ввести дополнительную плату за использование торговых роботов. Дескать, они очень перегружают канал связи, поскольку молниеносно выставляют и снимают огромное количество заявок, обычный человек всё это делает гораздо медленнее и поэтому канал загружается не слишком сильно.
Вопрос: Кто-нибудь знает, на какой стадии находится решение этого вопроса? Действительно ли собираются взимать доп. плату за роботов?
По мойму херня это все. С таким же успехом можно говорить, что слишком много стало клиентов и нужно урезать поток. Это ж типа потолок для развития рынка. В САШЕ я слыхал вообще там до 70% роботов, а у нас их около 5%.
41
« on: 28.02.2011, 08:34:46 »
На днях пытался воссоздать возможность проведения тестирования по средствам языка ATF, вот показываю первые плоды. Скипт далеко несовершенен, но он отображает идею. Если идея интересна, то предлагаю в этой ветки отображать свои идеи и предложения.
сам скрипт:
#samewindow extern "string" filename = "export.txt"; var f; extern fast = 9; extern slow = 14; extern trade = 1; // акций по умолчанию var trend = 0; var time; var timeday; var timemonth; var timeyear; var transaction; //номер операции var dipozit = 100000; //дипозит портфеля var portfolio =0; //портфель акций var amount =0; // объем по операции
function init() { setInitCandles(1);
f = new_object("file"); f.wopen(filename); f.write("ИНСТРУМЕНТ"+";"); f.write("№ ТРАНЗАКЦИИ"+";"); f.write("ВРЕМЯ"+";"); f.write("ЦЕНА"+";"); f.write("КУПЛЕНО"+";"); f.write("ПРОДАНО"+";"); f.write("ОБЪЕМ"+";"); f.writeLn("ДИПОЗИТ"+";");
}
function calc() { var sell =0; var buy =0; var a=0; var cv=0;
line[0] = MovAvg(ind_ema, fast, pt_close); line[1] = MovAvg(ind_ema, slow, pt_close);
time = getHour(getCandleTime())*60+getMinute(getCandleTime()); timeday=getDay(getCandleTime()); timemonth=getMonth(getCandleTime()); timeyear=getYear(getCandleTime());
// Покупка
if (trend == -1 and line[0] > line[1] ){
if (portfolio==0 and cv!=noCandle() ){ a=1;
amount= close*trade; dipozit=dipozit-amount; portfolio=portfolio+trade; transaction = transaction + 1; buy =trade; cv=noCandle(); } }
// Продажа if (trend == 1 and line[0] < line[1] ){
if (portfolio>0 and cv!=noCandle() ){ a=1;
amount= close*trade; dipozit=dipozit+amount; portfolio=portfolio-trade; transaction = transaction + 1; sell=-1*trade; cv=noCandle(); } }
if (line[1] < line[0]) {trend = 1;} else if (line[1] > line[0]) {trend = -1;}
if (a==1){
f.write(getSecName()+";"); f.write(transaction+";"); f.write(timeday+"/"+timemonth+"/"+timeyear+";"); f.write(close+";"); f.write(buy+";"); f.write(sell+";"); f.write(amount+";"); f.writeLn(dipozit); }
a=0;
}
вот что вышло
ИНСТРУМЕНТ;№ ТРАНЗАКЦИИ;ВРЕМЯ;ЦЕНА;КУПЛЕНО;ПРОДАНО;ОБЪЕМ;ДИПОЗИТ; Сбербанк;1;19/1/2010;91.4;1;0;91.4;99908.6 Сбербанк;2;19/1/2010;89.69;0;-1;89.69;99998.3 Сбербанк;3;19/1/2010;91.4;1;0;91.4;99906.9 Сбербанк;4;21/1/2010;90.16;0;-1;90.16;99997.1 Сбербанк;5;27/1/2010;87.7;1;0;87.7;99909.4 Сбербанк;6;29/1/2010;87;0;-1;87;99996.4 Сбербанк;7;29/1/2010;88.13;1;0;88.13;99908.2
и т.д
42
« on: 24.02.2011, 07:12:19 »
Да, именно так. И там тестировать скрипты на виртуальные деньги с реальными котировками.
Ну тогда можно просто (безо всяких трансляций) в боевой версии запускать скрипты, которые вместо торговых сигналов (их можно просто закомментить или "красный светофор" включить) будут генерировать сообщения типа: "Сейчас столько-то времени, свеча номер такой-то. Покупаю X лотов по цене <здесь автоматически вставляется текущая рыночная цена>", потом все эти записи сопоставлять с графиками и анализировать. Ещё один вариант, приближенный к реалу, - торговать реально, но на очень маленьких количествах (1 лот). Честно говоря, когда есть полноценный доступ к "боевой" версии, мне Интра вообще не нужна, она существует именно для того, чтобы заполнять паузы, вызванные выходными и праздниками. Сегодня вот, например... Кстати, с праздником всех! 
Даже если время будет указано с большими тормозами - тут я не вижу ничего страшного. Я думаю это хорошая идея, и она будет полезна и бывалым трейдерам и начинающим. Подумайте сами уважаемые разработчики: хорошо когда изучение рынка начинается именно с Вашей программы ибо большая вероятность того что и в дальнейшем он предпочтет именно ее. Ваш хлеб – это мы.
43
« on: 22.02.2011, 16:52:36 »
а реч идет об исторических данных, а на сколько я знаю они в открытом доступе.
44
« on: 21.02.2011, 11:11:56 »
Да, Олег.  .... эт я на эмоциях не то написал. intra конечно
45
« on: 20.02.2011, 19:58:08 »
Я еще раз подниму забытую мысль. Сильно ли проблематично запустить в transaq handy реальные исторические данные? Не всегда получается нормально расстроить скипт на той лабуде которая там неизменно пляшет, да и для новичков я думаю будет гораздо интереснее познавать транзак с реальными историческими данными.
|