Автор |
Сообщение |
Avante
Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны
|
Примите новенького, но не пинайте сильно.
Подскажите пожалуйста, что в коде сделано неправильно.
Я ввиду недостаточных знаний все голову себе сломал
Торговля только лонговая. Код робота Олега и Меха.
Когда в формулу вставляешь код робота: сканер запускаться отказывается.
Код: |
///////// Установки ///////////
TimeFrame = 300; // таймфрейм в секундах.
Account = "123456"; // аккаунт на бирже
Client = "SPBFUT12345"; // код клиента
Lots = 1; // сколько лотов желаете торговать
Otstup = 1; // в процентах. Заявка будет выставлена хуже текущей цены на столько процентов
FileName = "C:/Quik5/Quikdata/input.tri"; // слэши прямые!!! имя файла с транзакциями для квика
dir = 0;
////////// Правила системы ///////////////
SL=(HHV(H,26)+LLV(L,26))/2;
TL=(HHV(H,9)+LLV(L,9))/2;
DL=Ref(C,25);
Sp1=Ref((SL+TL)/2,-25);
Sp2=Ref((HHV(H,52)+LLV(L,52))/2,-25);
Sell = Cross(SL, TL);
Buy = Cross(TL, SL);
Short = 0;
Cover = 0;
//////////////////////////////////////////
Equity(1, 0);
Buy = LastValue(Ref(Buy, -1));
Sell = LastValue(Ref(Sell, -1));
Short = LastValue(Ref(Short, -1));
Cover = LastValue(Ref(Cover, -1));
//////////// Формируем транзакцию.//////////////
////////////////////////////////////////////////
//////// !!!!СЮДА РУКАМИ НЕ ЛАЗИТЬ!!!! /////////
////////////////////////////////////////////////
Classcode = GroupID(1);
if(TickSize == 0)
{
PopupWindow( "Не задан размер тика значение TickSize", "ошибка", timeout = 5, left = -1, top = -1 );
}
else
{
Otstup = round(LastValue(C)*Otstup/100/TickSize)*TickSize;
form = (1 + 0.1 * abs(floor(IIf(log10(TickSize)>0, 0, log10(TickSize)))));
}
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 (NOT found)
{
f = fopen(FileName, "a");
if(f)
{
fputs(sstr+"\n",f);
fclose(f);
}
}
}
function makeandsave(sOper, sprice)
{
CCS="";
if (Client != "") CCS="CLIENT_CODE="+Client+";";
transid = "TRANS_ID=" +FullName()+LastValue(TimeNum())+dir+"; ";
str = transid +
"PRICE=" +NumToStr(sprice, format = form, separator=False)+"; " +
"QUANTITY=" +NumToStr(Lots, format = 1.0, separator=False)+"; "+
"OPERATION=" +sOper+"; "+
"CLASSCODE=" +Classcode+"; "+
"ACTION=" +"NEW_ORDER; "+
"TYPE=" +"L; "+
"SECCODE=" +Name()+"; "+
"ACCOUNT=" +Account+"; "+
CCS;
savetrifile(transid, str);
}
if (TimeFrame == Interval() & FullName() != "")
{
if(Buy)
{
price = Close[BarCount-1] + Otstup;
dir = "1";
makeandsave("B", price);
}
if(Sell)
{
price = Close[BarCount-1] - Otstup;
dir = "2";
makeandsave("S", price);
}
if(Short)
{
price = Close[BarCount-1] - Otstup;
dir = "3";
makeandsave("S", price);
}
if(Cover)
{
price = Close[BarCount-1] + Otstup;
dir = "4";
makeandsave("B", price);
}
}
else if (TimeFrame != Interval())
PopupWindow( "Не соответствует временной интервал в настройках АА и в коде",
"ошибка", timeout = 5, left = -1, top = -1 );
else
PopupWindow( "Не задан двузначный номер в поле FullName", "ошибка", timeout = 15, left = -1, top = -1 );
//// mehanizator (c) 2004, http://www.russian-trader.ru
//// 000 (c) 2008, http://www.amisite.ru
[code][/code] |
|
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Teema
Зарегистрирован: 01.04.2009
Сообщения: 184
|
Не вдаваясь в систему, советую - проверь все настройки с главной страницы.
Лично у меня был косяк в п.11
Исправил-заработало. |
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Avante
Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны
|
Teema писал(а): |
Не вдаваясь в систему, советую - проверь все настройки с главной страницы.
Лично у меня был косяк в п.11
Исправил-заработало. |
В том то и дело, что уже все пересмотрел.
Но, к сожалению, я сам не могу найти ошибку. Увы. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А как он отазывается запускаться? Что говорит?
Проверил, у меня вроде запустился... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Avante
Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны
|
000 писал(а): |
А как он отазывается запускаться? Что говорит?
Проверил, у меня вроде запустился... |
Ну, один раз все же запустился, я просто мышкой случайно ткнул куда-то. А куда - хоть убейте, не помню. Повторить сей фокус я не смог.
А так, ничего не говорит: просто сканер и бэктест не запускается.
Если убрать самого робота торговли, оставив только условия совершения сделок,
Код: |
SL=(HHV(H,26)+LLV(L,26))/2;
TL=(HHV(H,9)+LLV(L,9))/2;
DL=Ref(C,25);
Sp1=Ref((SL+TL)/2,-25);
Sp2=Ref((HHV(H,52)+LLV(L,52))/2,-25);
Buy = Cross(TL, SL);
Sell = Cross(SL, TL);
Short = Sell;
Cover = Buy; |
то показывает сделки, а вместе что-то так в королевстве...
Олег, а можно скриншоты настроек вам в личку скину? |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Можно.
Но если сигналов в данный момент нет, то особо и не заметишь, что он запустился. Ты его в тестовом режиме погоняй. Отключи в квике обработку импорта транзакций и погоняй его несколько часов. Потом посмотришь писал ли он что нибудь в .tri |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Avante
Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны
|
вот в том то и дело, что сигналы есть, но они не отображаются.
сообщение и скриншоты в личку отправил. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Получил. Только не знаю как он отнесется ко стопам которые в настройках... По идее функция Equity() должна их активировать. А где не отображаются сигналы? Где они должны отображаться? В tri робот записи делает? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Avante
Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны
|
000 писал(а): |
Получил. Только не знаю как он отнесется ко стопам которые в настройках... По идее функция Equity() должна их активировать.
|
Вот и мне не терпится это узнать. Только не выходит каменный цветок.
000 писал(а): |
А где не отображаются сигналы? Где они должны отображаться? |
В окошке Back Test разве не отображаются сделки?
000 писал(а): |
В tri робот записи делает? |
Нет, файлик чист. Один раз делал, но я нажал куда-то. Знать бы куда... |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А поробуй в настройках снять галку с Futures mode и соответственно дать ему больше денег. Рублей 200 дай. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Avante
Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны
|
я пробовал. ничего не меняется. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ща у себя погоняю на симуляторе. Подробности отпишу. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Попробовал. Работает.
Вот что пишет в tri
Код: |
TRANS_ID=011729591; PRICE=62095; QUANTITY=1; OPERATION=B; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.RTS; ACCOUNT=123456; CLIENT_CODE=SPBFUT12345;
TRANS_ID=011059592; PRICE=59202; QUANTITY=1; OPERATION=S; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.RTS; ACCOUNT=123456; CLIENT_CODE=SPBFUT12345;
TRANS_ID=011714591; PRICE=60666; QUANTITY=1; OPERATION=B; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.RTS; ACCOUNT=123456; CLIENT_CODE=SPBFUT12345;
TRANS_ID=011459592; PRICE=59544; QUANTITY=1; OPERATION=S; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.RTS; ACCOUNT=123456; CLIENT_CODE=SPBFUT12345;
TRANS_ID=011659591; PRICE=61565; QUANTITY=1; OPERATION=B; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.RTS; ACCOUNT=123456; CLIENT_CODE=SPBFUT12345;
TRANS_ID=011714592; PRICE=60464; QUANTITY=1; OPERATION=S; CLASSCODE=Group 0; ACTION=NEW_ORDER; TYPE=L; SECCODE=SPFB.RTS; ACCOUNT=123456; CLIENT_CODE=SPBFUT12345; |
Только я гонял на 15 мин и немного изменил настройки поэтому (нет у меня 5 мин.) Настройки тестера все видны на картинке. Остальные не так важны.
Гонял только на РТС |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Avante
Зарегистрирован: 07.05.2009
Сообщения: 55
Откуда: с Луны
|
ясно что нмчего не понятно.
а что за чебокс стоит на "Use Quick AFL"?
у меня нет такого: не знаю, влияет сие или нет.
может у меня гранаты не той системы? |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Это не влияет.
У тебя какая весия? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|