Автор |
Сообщение |
indus
Зарегистрирован: 23.12.2009
Сообщения: 27
|
Привет всем. Почему то в файле toquik идентификатор длиннее на 1 цифру при трансляции сделок в режиме онлайн, а если проигрывателем то всё в норме. Естественно квик ругаеться, добрые люди подскажите что может быть? |
_________________ Дорогу осилит идущий... |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
indus писал(а): |
Привет всем. Почему то в файле toquik идентификатор длиннее на 1 цифру при трансляции сделок в режиме онлайн, а если проигрывателем то всё в норме. Естественно квик ругаеться, добрые люди подскажите что может быть? |
Ну ты бы хоть пример дал. Один проигрывателем а второй онлайновый.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
indus
Зарегистрирован: 23.12.2009
Сообщения: 27
|
Вот пожалуйста, 2 первых строки сгенерированы с проигрывателя, последние с лишним 0- в режиме онлайн торговли, там где ID=:
TRANS_ID=11328174200;PRICE=10140;QUANTITY=2;OPERATION=B;CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=SRZ0; ACCOUNT=SPBFUT00AO5;
TRANS_ID=12328174200;PRICE=9850;QUANTITY=1;OPERATION=S;CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=SRZ0; ACCOUNT=SPBFUT00AO5;
TRANS_ID=123282124000;PRICE=10060;QUANTITY=1;OPERATION=S;CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=SRZ0; ACCOUNT=SPBFUT00AO5;
TRANS_ID=113282140000;PRICE=10360;QUANTITY=2;OPERATION=B;CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=SRZ0; ACCOUNT=SPBFUT00AO5; |
_________________ Дорогу осилит идущий... |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Тогда еще вопрос. А какой это робот? У моего робота последняя цифра в TRANS_ID должна быть 1, 2, 3, или 4 |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
indus
Зарегистрирован: 23.12.2009
Сообщения: 27
|
///////// Установки аккаунта ///////////
TickerID=Param("TICKERID",1,0,100,1); // уникальный для каждого индикатора номер
Ticker=ParamStr("TICKER","GAZP"); // название бумаги в Амиброкере. На другой бумаге работать не будет
TimeFrame=Param("TIMEFRAME",1,0,100,1); // таймфрейм в минутах. На других таймфреймах работать не будет
Classcode=ParamStr("Classcode","EQNE"); // код класса бумаги
Seccode=ParamStr("Код бумаги в квике","GAZP"); // код бумаги
Account=ParamStr("Номер счета","L01-00000F00"); // ваш аккаунт на бирже
Client=ParamStr("Код Клиента",""); // код клиента
Lots=Param("количество лотов",2,0,10000,1);; // сколько лотов желаете торговать
FileName=ParamStr("Путь","E:/РЫНОК/TREID/toquik.tri"); // слэши прямые!!! имя файла с транзакциями для квика
Otstup=Param("Оступ",1.5,0,10,0.01); // в процентах. заявка будет выставлена хуже текущей цены на столько процентов
Point=Param("Кол-ва знаков",0,0,100,1,0); // количество знаков после запятой в цене
//////// !!!!СЮДА РУКАМИ НЕ ЛАЗИТЬ!!!! /////////
////////////////////////////////////////////////
procedure savetrifile(stransid,sstr) {
f=fopen(FileName,"r");
found=0;
if (f) {
while (!feof(f)) {
s=fgets(f);
if (StrFind(s,stransid)>0) {
found=1;
}
}
fclose(f);
}
if (found==0) {
f=fopen(FileName,"a");
if (f) {
fputs(sstr+"\n",f);
fclose(f);
}
}
}
function makeandsave(sOper,sOperID,sprice) {
CCS="";
if (Client!="") { CCS=" CLIENT_CODE="+Client+";"; }
transid=StrFormat("TRANS_ID=%g%g%g%g;",TickerID,sOperID,LastValue(Ref(DayOfYear(),-1)),LastValue(Ref(TimeNum(),-1)));
str=StrFormat(transid+"PRICE=%1."+Point+"f;QUANTITY=%g;OPERATION="+sOper+";CLASSCODE="+Classcode+"; ACTION=NEW_ORDER; TYPE=L; SECCODE="+Seccode+"; ACCOUNT="+Account+";"+CCS,sprice,Lots);
savetrifile(transid,str);
}
//if ((Now(3)==LastValue(DateNum()))AND(BarCount>1)AND(Name()==Ticker)AND(TimeFrame==Interval()/60)AND((Buy[BarCount-1]==1)OR(Sell[BarCount-1]==1)OR(Short[BarCount-1]==1)OR(Cover[BarCount-1]==1))) {
if (1) {
ifbuy=IIf(Buy[BarCount-1]==1,1,0);
ifsell=IIf(Sell[BarCount-1]==1,1,0);
ifshort=IIf(Short[BarCount-1]==1,1,0);
ifcover=IIf(Cover[BarCount-1]==1,1,0);
if (ifbuy) {
price=(1+Otstup/100)*Close[BarCount-1];
makeandsave("B",1,price);
}
if (ifsell) {
price=(1-Otstup/100)*Close[BarCount-1];
makeandsave("S",2,price);
}
if (ifshort) {
price=(1-Otstup/100)*Close[BarCount-1];
makeandsave("S",3,price);
}
if (ifcover) {
price=(1+Otstup/100)*Close[BarCount-1];
makeandsave("B",4,price);
}
}
//// mehanizator (c) 2004, http://www.russian-trader.ru |
_________________ Дорогу осилит идущий... |
|
Посмотреть профиль Отправить личное сообщение |
|
indus
Зарегистрирован: 23.12.2009
Сообщения: 27
|
Вот такой код, по моему Ваш. |
_________________ Дорогу осилит идущий... |
|
Посмотреть профиль Отправить личное сообщение |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Это код механизатора с рашн-трейдера.. Все вопросы к нему |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Вообще заметил что переменная transID как-то по другому формируется..
Что если так написать?
TickerID=66; // уникальный для каждого индикатора номер
........
........
transid="TRANS_ID="+TickerID+sOperID+LastValue(Ref(DayOfYear(),-1))+LastValue(Ref(TimeNum(),-1)));
Глянуть что получится. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Хм. Станно это. Не могу понять в чем дело...
Давай разберем из чего состоит transID
transid=StrFormat("TRANS_ID=%g%g%g%g;",TickerID,sOperID,LastValue(Ref(DayOfYear(),-1)),LastValue(Ref(TimeNum(),-1)));
Цитата: |
TRANS_ID=11328174200;
TRANS_ID=12328174200;
TRANS_ID=123282124000;
TRANS_ID=113282140000; |
Первая цифра 1 это TickerID. Задается в коде.
Вторая цифра 1, 2, 3 или 4. Это покупка, закрытие покупки, продажа, закрытие продажи.
Дальше идет число DayOfYear() это номер дня года. Может быть от 1 до 366. Сейчас примерно сотый день года. Непонятно что там делает 328....
И последние 6 цифр это TimeNum() ччммсс....
Ничего не понимаю.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
indus
Зарегистрирован: 23.12.2009
Сообщения: 27
|
Я думаю ами неправильно настроен и считает неправильно день года, интересно а квик как это проверяет, в трансляторе может ошибка, непойму. |
_________________ Дорогу осилит идущий... |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Попробуй сделать такой индикатор.
Код: |
Plot(DayOfYear(), "", ColorRed); |
и посмотри что ами будет показывать. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
indus
Зарегистрирован: 23.12.2009
Сообщения: 27
|
Так он же только кривую рисует |
_________________ Дорогу осилит идущий... |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну да. Он рисует кривую значение которой равно номеру дня в году.
Судя по всему 15 апреля 105 день. Все правильно. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|