Я не волшебник, я только учусь! - страница 2

 
sivanik:

Уважаемые господа!

Черезнесколько лет торговли на форексе, решил таки попробовать написать советника для последнего варианта собственной торговой системы. Начал с простого - при достижении ценой некоторого сигнального (контрольного) уровня - выставляется отложенный ордер. Код то я написал, и советник компелируется, только не работает! Буду признателен тем, кто укажет на ошибки в программе и подскажет как их исправить.

Валерий

Написание собственного советника — большое достижение в трейдинге. Я считаю, что вверх мастерства трейдера — это разработка собственно торговой системы и написания помощников для работы на рынке Форекс.
 
sivanik:

Уважаемые господа!

Блин! ник неразглядел, сначала прочитал - сливальник -:))
 
Tantrik:
Блин! ник неразглядел, сначала прочитал - сливальник -:))


это инициалы - Сидоров Валерий Николаевич, а в простанародье ded :)

но вы всё равно правильно прочитали ;)

 
Tantrik:
Блин! ник неразглядел, сначала прочитал - сливальник -:))
Первое впечатление обычно самое верное :))
 
sivanik:

Уважаемые господа!

Черезнесколько лет торговли на форексе, решил таки попробовать написать советника для последнего варианта собственной торговой системы. Начал с простого - при достижении ценой некоторого сигнального (контрольного) уровня - выставляется отложенный ордер. Код то я написал, и советник компелируется, только не работает! Буду признателен тем, кто укажет на ошибки в программе и подскажет как их исправить.

Валерий


Надо бы вначале попробовать словами ТС сформулировать
 
Vinin:

Надо бы вначале попробовать словами ТС сформулировать


Я попробую, но только первую, самую простую часть, потому что в полном советнике заложено мое ноу-хау, там придется дорабатывать видимо чисто самому, без посторонней помощи.

Итак. Простейшая идея. Есть исходный уровень КУ0. По сути это последняя котировка предыдущей недели торговли, ну или цена закрытия фин.инструмента в пятницу. Советник начинает торговлю с первым тиком новой недели и сразу же должен "считать" КУ0. Возможно два вариант развития событий. Цена откатывается от КУ0 на "юг" на заданный минимум пунктов, либо на север. Если цена достигла одного из заданных минимумов отката, то на уровне КУ0 выставляется отложенный ордер, соответственно при откате на север - sellstop а при откате на юг - buystop. При этом важно, что если изначально выполняется одно из условий по откату, то второй откат уже должен игнорироваться. Здесь у меня пока заминка. Полный текст советника пока выкладывать не буду, уже выкладывал с ошибками. Но кусочек, как мне представляется следующий.

Кроме того - здесь нужно что-то добавить, потому что советник компелируется и даже тестер работает, но зацикливается гад, а точнее видимо на каждом тике превышающем минимальный уровент отката выставляет отложенник. Как-то нужно это убирать!?

int start()
{
double KU0; //Сигнальный уровень
double Level_1; //Сигнальный уровень
double Level_2; //Сигнальный уровень
OrderSend(Symbol(),OP_SELLSTOP,0.1,KU0,3,KU0+300*Point,KU0-300*Point);
OrderSend(Symbol(),OP_BUYSTOP,0.1,KU0,3,KU0-300*Point,KU0+300*Point);
KU0 = iClose(0,PERIOD_W1,1); //Цена закрытие предыдущей недели
Level_1 = KU0 + 50*Point; //Откат цены вверх от КУ0
Level_2 = KU0 - 50*Point; //Откат цены вниз от КУ0

//----
if (Bid>=Level_1 || Bid<=Level_2 )
{
OrderSend(Symbol(),OP_SELLSTOP,0.1,KU0,3,KU0+300*Point,KU0-300*Point);
}
else
{
OrderSend(Symbol(),OP_BUYSTOP,0.1,KU0,3,KU0-300*Point,KU0+300*Point);
}
//----
return(0);
}

 

Так-с! Просмотрел отчетец с тестера за прошлую неделю. Что вижу? Вижу, что условие (Bid>=Level_1 || Bid<=Level_2 ) не выполнялось ни разу! В частности сессия открылась гэпом вниз (может здесь еще проблема?) и советник выставил сразу аж 100 штук отложенных ордеров на покупку, причем по цене Bid а не Ask, при этом минимум цены явно не дошел до Level_2. Далее цена дошла до уровня открытия. Открылось 60 позиций а остальные ордера были удалены. Ну я это так понимаю, что существует общее ограничение по количеству открываемых позиций. В данном случае скорее всего просто не хватило денег на депо. Хотя и не факт, потому что практически сразу после удаления "лишних" ордеров, советник начал вновь их выставлять и удалять. Короче почти 400 раз выставлялись ордера на покупку. далее наступил черед ордеров на продажу. Причем в этот раз условие Bid>=Level_1 выполнилось четко и, собственно только сейчас советник заработал, а все предыдущее было полной лажой! Правда здесь его также подвигло на выставление отложенников на каждом новом тике, но уже с более скромным размахом.

В общем ищу вариант исправления явных ошибок.

 
sivanik:


В общем ищу вариант исправления явных ошибок.

Лучший вариант - учебник и поиск по форуму. Кавалерийским наскоком тут до профита не продавить. Либо вы вкатываете в тему всерьез и на долго - тогда учится, либо вы занимаетесь ерундой - тогда и так сойдет. Пересказывать одни и теже ответы по 10500му разу уже похоже никому неинтересно.
 
sivanik:....
Кроме того - здесь нужно что-то добавить, потому что советник компелируется и даже тестер работает, но зацикливается гад, а точнее видимо на каждом тике превышающем минимальный уровент отката выставляет отложенник. Как-то нужно это убирать!?

У тебя так и написано. Если условие выполняется- послать ордер. Каждый тик и будет.
Причина обращения: