Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 В файле toquik идентификатор длиннее на 1 цифру Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
indus



Зарегистрирован: 23.12.2009
Сообщения: 27

СообщениеДобавлено: Пн Апр 11, 2011 6:24 pm Ответить с цитатой Вернуться к началу

Привет всем. Почему то в файле toquik идентификатор длиннее на 1 цифру при трансляции сделок в режиме онлайн, а если проигрывателем то всё в норме. Естественно квик ругаеться, добрые люди подскажите что может быть? Smile

_________________
Дорогу осилит идущий...
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Апр 11, 2011 8:36 pm Ответить с цитатой Вернуться к началу

indus писал(а):
Привет всем. Почему то в файле toquik идентификатор длиннее на 1 цифру при трансляции сделок в режиме онлайн, а если проигрывателем то всё в норме. Естественно квик ругаеться, добрые люди подскажите что может быть? Smile

Ну ты бы хоть пример дал. Один проигрывателем а второй онлайновый....

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
indus



Зарегистрирован: 23.12.2009
Сообщения: 27

СообщениеДобавлено: Вт Апр 12, 2011 6:58 am Ответить с цитатой Вернуться к началу

Вот пожалуйста, 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

СообщениеДобавлено: Вт Апр 12, 2011 7:58 am Ответить с цитатой Вернуться к началу

Тогда еще вопрос. А какой это робот? У моего робота последняя цифра в TRANS_ID должна быть 1, 2, 3, или 4 Sad

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
indus



Зарегистрирован: 23.12.2009
Сообщения: 27

СообщениеДобавлено: Вт Апр 12, 2011 10:08 am Ответить с цитатой Вернуться к началу

///////// Установки аккаунта ///////////

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

СообщениеДобавлено: Вт Апр 12, 2011 10:09 am Ответить с цитатой Вернуться к началу

Вот такой код, по моему Ваш.

_________________
Дорогу осилит идущий...
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Вт Апр 12, 2011 2:13 pm Ответить с цитатой Вернуться к началу

Это код механизатора с рашн-трейдера.. Все вопросы к нему Smile
Посмотреть профиль Отправить личное сообщение ICQ Number
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Вт Апр 12, 2011 2:25 pm Ответить с цитатой Вернуться к началу

Вообще заметил что переменная transID как-то по другому формируется.. Confused
Что если так написать?
TickerID=66; // уникальный для каждого индикатора номер
........
........
transid="TRANS_ID="+TickerID+sOperID+LastValue(Ref(DayOfYear(),-1))+LastValue(Ref(TimeNum(),-1)));

Глянуть что получится.
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вт Апр 12, 2011 10:24 pm Ответить с цитатой Вернуться к началу

Хм. Станно это. Не могу понять в чем дело... Sad
Давай разберем из чего состоит 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

СообщениеДобавлено: Чт Апр 14, 2011 7:29 pm Ответить с цитатой Вернуться к началу

Я думаю ами неправильно настроен и считает неправильно день года, интересно а квик как это проверяет, в трансляторе может ошибка, непойму.

_________________
Дорогу осилит идущий...
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Апр 14, 2011 9:00 pm Ответить с цитатой Вернуться к началу

Попробуй сделать такой индикатор.
Код:
Plot(DayOfYear(), "", ColorRed);

и посмотри что ами будет показывать.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
indus



Зарегистрирован: 23.12.2009
Сообщения: 27

СообщениеДобавлено: Пт Апр 15, 2011 7:52 pm Ответить с цитатой Вернуться к началу

Так он же только кривую рисует

_________________
Дорогу осилит идущий...
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Апр 15, 2011 8:23 pm Ответить с цитатой Вернуться к началу

Ну да. Он рисует кривую значение которой равно номеру дня в году.

Судя по всему 15 апреля 105 день. Все правильно.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen