ZigZaHod - Отмеренный ход от фрактала или ZigZag на массиве .

 

Описание:


Отмеренный ход от фрактала или ZigZag. Советник ищет импульсное движение и выставляет отложки. Пересчитывает и модифицирует TP

как для отложек так и для открытых ордеров. При глубокой коррекции удаляет отложки. Все промежуточные данные ордеров для расчетов хранятся в массиве.

Навеяно статьей  "Учёт ордеров в большой программе" https://www.mql5.com/ru/articles/1390 Спасибо автору.
В советнике использованы куски кода взятые с этого сайта. Авторам респект и уважуха !!!

Внимание код не оптимизирован и содержит очень много ОШИБОК !!!  (Помогите исправить) .

Советнику нужен индикатор фракталов fr.mq4 прикреплен. На график можно не кидать. Если хотите в настройках range..5.

ABminRazmer=100;      //  минимальный размер AB
Otstup=15;            //  отступ пунктов  отложки. (спред)
OtstupProc=0.1;       // отступ отложки от AB (0.1 = 10 %)
MaxOrder=10;          //  мах. кол-во ордеров (не больше 30)
KoefProfit=1.5;       //  Коефициент профита ( типа  fibo ;-)
DelKorStopOrder=0.6;  //  глубина коррекции при которой убирать отложки.  ( типа fibo ;-)
OtmerennyiHod=true;   //  отмеренный ход.
OdnaStor=true;        //  Торговля в одну сторону.
SignalDelOldOtl=false;     //  удаляет предыдущую отложку своего направления при сигнале
SignalDelOldOtlAll=false;  //  удаляет ВСЕ старые отложки при сигнале
StopLos=false;           // выставляет SL за В

Трал= "-=-=-";    тут все стандартно... по фракталам, по теням баров ,по деньгам . 
bTrlinloss = false;   // следует ли тралить на участке лоссов (между курсом стоплосса и открытия)
SLSignal=false;       //  выставляет SL на уровне нового сигнала противоположного направления (если "одна сторона" то не работает)
iTmfrm=240;           // период графика, на котором определяются фракталы или тени (1, 5, 15, 30, 60, 240, 1440, 10080, 43200)
iIndent = 50;         // отступ от тени бара, на котором размещается стоплосс
Frktl_bars = 5;      // кол-во баров во фрактале
Frktl_kol = 0;     // кол-во фракталов по которым тралить
Bars_kol = 19;   // кол-во баров, по теням которых следует тралить
//--------
TargetLoss    = 99999;                // Целевой убыток
TargetProfit  = 99999;                // Целевая прибыль
//--------
Commentariy=true;  // коментарии
SaveMassiv=false;  //  сохранение масива при закрытии советника и загрузка при запуске.  !!! не реализовано (пока не осилил...)
MagicNumber=515000000;
Lot=0.01;
LotProiz=false;   //  ;-) а тут я извратился ...
Slippage=10;




Буду благодарен если кто нить поможет причесать и исправить ошибки.

Сохранение массива при закрытии советника и загрузка при запуске Неработает.  !!!  (не осилил...пока .)

не пинайте сильно... я только учусь...
Учёт ордеров в большой программе
Учёт ордеров в большой программе
  • 2006.06.01
  • Сергей Ковалев
  • www.mql5.com
Рассматриваются общие принципы построения учёта ордеров в сложной программе.
Файлы:
 


Strategy Tester Report
ZigZaHod_v1.0
Alpari-Demo (Build 765)

СимволEURUSD (Euro vs US Dollar)
ПериодДень (D1) 2000.01.03 00:00 - 2015.02.23 00:00 (2000.01.01 - 2015.02.23)
МодельКонтрольные точки (очень грубый метод, результаты нельзя принимать во внимание)
ПараметрыSigFractal=true; ABminRazmer=100; Otstup=15; OtstupProc=10; MaxOrder=100; KoefProfit=1; DelKorStopOrder=0; OtmerennyiHod=false; OdnaStor=false; SignalDelOldOtl=false; SignalDelOldOtlAll=true; StopLos=false; Трал="-=-=-"; bTrlinloss=false; SLSignal=false; iTmfrm=60; iIndent=50; Frktl_bars=0; Frktl_kol=0; Bars_kol=0; TargetLoss=9999; TargetProfit=100; Commentariy=false; SaveMassiv=false; MagicNumber=515000009; Lot=0.1; LotProiz=true; Slippage=10;

Баров в истории4197Смоделировано тиков299382Качество моделированияn/a
Ошибки рассогласования графиков7




Начальный депозит50000.00

Спред10
Чистая прибыль236880.64Общая прибыль284377.47Общий убыток-47496.83
Прибыльность5.99Матожидание выигрыша1117.36

Абсолютная просадка0.00Максимальная просадка19809.91 (17.69%)Относительная просадка17.69% (19809.91)

Всего сделок212Короткие позиции (% выигравших)101 (99.01%)Длинные позиции (% выигравших)111 (97.30%)

Прибыльные сделки (% от всех)208 (98.11%)Убыточные сделки (% от всех)4 (1.89%)
Самая большаяприбыльная сделка6855.27убыточная сделка-14630.33
Среднийприбыльная сделка1367.20убыточная сделка-11874.21
Максимальное количествонепрерывных выигрышей (прибыль)75 (90868.67)непрерывных проигрышей (убыток)1 (-14630.33)
Максимальнаянепрерывная прибыль (число выигрышей)100674.21 (71)непрерывный убыток (число проигрышей)-14630.33 (1)
Среднийнепрерывный выигрыш42непрерывный проигрыш1
 

Хороший результат!

Отложки на пробой ставятся после коррекции, верно?

 
-Aleks-:

Хороший результат!

Отложки на пробой ставятся после коррекции, верно?

Сразу после образования правильного фрактала (начало коррекции), если цена успела уже скоректироваться глубоко (DelKorStopOrder) отложка не выставляется...

Далее если отложку выставил - смотрит глубину коррекции и если глубоко то убирает. DelKorStopOrder

 
ForTorg:
Сразу после образования правильного фрактала, если небыло отмены (DelKorStopOrder)...

Всё ж таки, преодолеваем путь "минимальный размер AB", ставим отложку по направлению хода? Опишите пошагово, если не сложно :)

Идея работы с Зиг-Заг так же обладаю - разработал алгоритм определения трендового отрезка, но к сожалению я не программист и вынужден искать исполнителя идеи во фрилансе...

 
-Aleks-:

Всё ж таки, преодолеваем путь "минимальный размер AB", ставим отложку по направлению хода? Опишите пошагово, если не сложно :)

Идея работы с Зиг-Заг так же обладаю - разработал алгоритм определения трендового отрезка, но к сожалению я не программист и вынужден искать исполнителя идеи во фрилансе...

Есть тоже мысли насчет тренда вот и пытаюсь реализовать... Но сколько еще нужно написать... Это только начало.  Зигзаг рассматриваю просто как импульс-корекция-импульс. А волновое движение как набор зигзагов в направлении тренда. В коррекциях в противоположную сторону тренда . (Лучше там не работать но есть мысли... и я их пока думаю...)

Енто основные настройки.

Otstup=15;            //  отступ пунктов  отложки. (спред)

OtstupProc=0.1;       // отступ отложки от фрактала A (0.1 = 10 %)  Вычисляется от размера AB. Например OtstupProc=0.05 отложка выставляется за фр. A на растояни в 5% от движения AB. Если  AB=1000 отложка выставляется на растоянии 50 пунктов от A + Otstup.)

KoefProfit=1.5;       //  от 0 до ...   Коефициент профита. ( типа  fibo ;-)  Размер AB*KoefProfit ( KoefProfit=1; OtmerennyiHod=true; вот ОН Отмеренный ход.)

DelKorStopOrder=0.6;  //    от 0 до 1 с шагом 0.01.  Глубина коррекции при которой убирать отложки. ( типа fibo ;-) Например  DelKorStopOrder=0.618 означает при глубине коррекции в 38.2% убрать отложки.  Кто-то скажет что фибо перевернуто, но мне так удобней, ближе к моей системе.

OtmerennyiHod=true;   //   Отмеренный ход.   Замеряется размер AB (от фрактала до фрактала) и вычесляется цель: размер AB*KoefProfit от коррекции. Цели постоянно пересчитываются как для отложек так и для открытых ордеров.  ( false - Замеряется размер AB (от фрактала до фрактала) и вычесляется цель: размер AB*KoefProfit от фрактала А. Цели не пересчитываются как для отложек так и для открытых ордеров. )

OdnaStor=true;        //  Торговля в одну сторону. Если открыт ордер на покупку или родажу, работаем в туже сторону (как на скрине) пока есть хоть одна открытая позиция. (не отложка а именно BUY или SELL). Отложки выставляются во все стороны пока не сработает, после чего все отложки удаляются и выставляются по сигналу в том-же направлении что и открытая позиция.

Пояснения на скрине.  Чтоб понятней было фибо тянуть именно так как на скрине.


Я сам нифига не програмист... я учусь.. Все только начинается...

 
Что тут сказать, отличное начало!)
 

Чтоб было продолжение может кто подскажет как исправить. Плиз.


 
ForTorg:

Чтоб было продолжение может кто подскажет как исправить. Плиз.


Скорее всего, Вы пытаетесь модифицировать уровень на то же значение. Дело в логике модификации (код не смотрел, просто по опыту).
 
Хех, про что тема?
 
IvanIvanov:
Хех, про что тема?
Помочь поправить автору ошибки в его детище...