Стратегия на базе индикатора "ZigZag" - "Last ZZ50" - страница 5

 

Вы не учитываете, то точка А появляется при небольшом откате и с продолжением отката будет двигаться за ним. логичнее было бы взять точки которые уже сформировались. В нашем случае это точки BCD. И то точка B может стать точкой А и перерисоваться дальше.

Советника я выложил для экспериментов. Идея показалась интересной. Сам много чего в нем доприкручивал. Пробовал разные варианты. 

 
Dmitiry Ananiev:

Вы не учитываете, то точка А появляется при небольшом откате и с продолжением отката будет двигаться за ним. логичнее было бы взять точки которые уже сформировались. В нашем случае это точки BCD. И то точка B может стать точкой А и перерисоваться дальше.

Советника я выложил для экспериментов. Идея показалась интересной. Сам много чего в нем доприкручивал. Пробовал разные варианты. 

Всё уже учтено, и это видно на предыдущем видео.

Тот советник что вы выложили - работать по стратегии не будет!

 
Vladimir Karputov:

В глобальную переменную корректно можно сохранить цену (то есть тип данных double). Но это очень опасно: можно ошибиться с округлением, пользователь может несанкционированно модифицировать ордер (намеренно и непреднамеренно).

А вот сохранение тикета (тип ulong) более защищённый метод - даже при модификации тикет остаётся прежним (конечно исключая ролловеры и клиринг (хотя в случае клиринга я на 100% не уверен)).

В нашем случае, нужно сохранять цены пиков ZZ

 

Last ZZ50 version   "1.005"

В общем пока сам код, описание будет позже в этом же посте.


Описание

  • работа по выставлению отложенных ордеров идёт только в момент рождения нового бара
  • каждый раз ищем точки "A", "B" и "C"
  • чтобы отличать отложенный ордер на луче "AB" и на "BC" - производится сохранение в глобальные переменные терминала тикете ордера - тикет хранится в имени переменной. Формат такой:

//|  format: "Last ZZ50ABnnnnnnnn"                                   |
//|          "Last ZZ50BCnnnnnnnn"                                   |
//|          nnnnnnnn - ticket                                       |

  • при изменении луча "AB" двигаем соответствующий отложенный ордер
  • когда появляется новый луч - удаляем все отложенные ордера

Файлы:
Last_ZZ50.mq5  45 kb
 
Vladimir Karputov:

Last ZZ50 version   "1.005"

В общем пока сам код, описание будет позже в этом же посте.

Отлично, процесс пошёл)

Что нужно:

На одном луче - одна(1) сделка, сейчас их несколько, что портит статистику.

Если сработал ордер, то всё, больше его не ставим на этом луче, а ждём следующий.

 
Vladimir Karputov:

Last ZZ50 version   "1.005"

Описание

  • работа по выставлению отложенных ордеров идёт только в момент рождения нового бара
  • каждый раз ищем точки "A", "B" и "C"
  • чтобы отличать отложенный ордер на луче "AB" и на "BC" - производится сохранение в глобальные переменные терминала тикете ордера - тикет хранится в имени переменной. Формат такой:

  • при изменении луча "AB" двигаем соответствующий отложенный ордер
  • когда появляется новый луч - удаляем все отложенные ордера

Рассказал в видео о недочёте стратегии


 

Last ZZ50 version   "1.006"

Из нового: на каждом текущем луче "AB" или "BC" теперь может быть открытой (не открыта, а БЫТЬ ОТКРЫТОЙ) одна позиция - то есть пока луч текущий и на нём уже сработал отложенный ордер и соответственно есть открытая позиция, то новый отложенный ордер на этом текущем луче не выставляется.

"Текущий луч" -

  • луч "BC" у которого точки "B" и "C" не изменились
  • луч "AB" у которого точка "B" не изменилась

Файлы:
Last_ZZ50.mq5  49 kb
 
Vladimir Karputov:

Last ZZ50 version   "1.006"

Из нового: на каждом текущем луче "AB" или "BC" теперь может быть открытой (не открыта, а БЫТЬ ОТКРЫТОЙ) одна позиция - то есть пока луч текущий и на нём уже сработал отложенный ордер и соответственно есть открытая позиция, то новый отложенный ордер на этом текущем луче не выставляется.

"Текущий луч" -

  • луч "BC" у которого точки "B" и "C" не изменились
  • луч "AB" у которого точка "B" не изменилась

Вроде всё по логике в этой версии. Остался момент с закрытием, нужно выяснить максимально правильный под ТС.

Может для начала прикрутить трал, но трал портфельный(сеточный), то есть бай отдельно, селл отдельно?

Потом попробуем со стопами

 
Vitaly Muzichenko:

Вроде всё по логике в этой версии. Остался момент с закрытием, нужно выяснить максимально правильный под ТС.

Может для начала прикрутить трал, но трал портфельный(сеточный), то есть бай отдельно, селл отдельно?

Потом попробуем со стопами

Отдельно для коротких и длинных - это уже интересно.
 
Vladimir Karputov:
Отдельно для коротких и длинных - это уже интересно.

Вроде как должен работать без особых просадок, но сейчас это выявить крайне сложно, так-как их набирается очень много, и режет глаз)

Причина обращения: