Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2238

 
Ivan Butko #:
Подскажите, пожалуйста, в чём ошибка? Пытаюсь посчитать размер линий ЗигЗага. Индикатор правильно считает размеры только при первом запуске. Дальше, онлайн, начинает переписывать значения, накладывать друг на друга, предыдущие не удалять. А на истории всё хорошо

Не знаю как правильно объяснить, но попробую:

при старте создаешь

if(ObjectFind(0,"textUP")!=0) ObjectCreate(0,"textUP",OBJ_TEXT,0,0,0);
if(ObjectFind(0,"textDN")!=0) ObjectCreate(0,"textDN",OBJ_TEXT,0,0,0);

при появлении нового максимума

ObjectSetString(0,"textDN",OBJPROP_NAME,"textDN"+IntegerToString(i));
t = iTime(_Symbol, PERIOD_CURRENT, i);
string text = DoubleToString((lasthigh - lastlow) * pow(10, _Digits), 0);
ObjectCreate(0,"textUP",OBJ_TEXT,0, t, lasthigh);
ObjectSetString(0,"textUP",OBJPROP_TEXT,text);
ObjectSetInteger(0,"textUP",OBJPROP_ANCHOR,ANCHOR_LOWER);

при изменении максимума

t = iTime(_Symbol, PERIOD_CURRENT, i);
string text = DoubleToString((lasthigh - lastlow) * pow(10, _Digits), 0);
ObjectSetString(0,"textUP",OBJPROP_TEXT,text);
ObjectSetInteger(0,"textUP",OBJPROP_TIME,t);

при появлении нового минимума

ObjectSetString(0,"textUP",OBJPROP_NAME,"textUP"+IntegerToString(i));
t = iTime(_Symbol, PERIOD_CURRENT, i);
string text = DoubleToString((lasthigh - lastlow) * pow(10, _Digits), 0);
ObjectCreate(0,"textDN",OBJ_TEXT,0, t, lasthigh);
ObjectSetString(0,"textDN",OBJPROP_TEXT,text);
ObjectSetInteger(0,"textDN",OBJPROP_ANCHOR,ANCHOR_LOWER);

при изменении минимума

t = iTime(_Symbol, PERIOD_CURRENT, i);
string text = DoubleToString((lasthigh - lastlow) * pow(10, _Digits), 0);
ObjectSetString(0,"textDN",OBJPROP_TEXT,text);
ObjectSetInteger(0,"textDN",OBJPROP_TIME,t);
 
Artyom Trishkin #:
Просадка по средствам не считается от открытия до закрытия. А именно между. Хай, Лоу, опен, клоуз бара не дадут всей картины - там аск нужен. Просто расширение спреда может слить всë. 

Согласен. НО, если нельзя, а хочется аж зубы сводит, то можно и не обращать внимание на небольшие неточности в расчётах. А если депозит не слит, значит такого критического расширения спреда не было… Ну пусть люди потешатся, зачем сразу отбивать хотелку…

 
Tretyakov Rostyslav #:
Ищите...мне лень.

Скажем так. Смотрел очень много продуктов, тысячами. И нигде не было расчёта просадки по истории. Хотя вроде на МТ5 видел, подымал кто-то тему.

Отправлять искать человека того, чего нет... Эх. Ладно. Мне это нужно было для того, что когда меня спросят о подобном функционале в моём продукте, то я просто сошлюсь на то, что ни в одном продукте такого нет и приведу довод, почему это не просто реализовать правильно.


Чтобы посчитать правильно просадку, а точнее, приближенно правильно, можно чекать её по минутам. И по каждой минуте смотреть все сделки. Вдруг это мультивалютная торговля.


 
Alexey Viktorov #:

Согласен. НО, если нельзя, а хочется аж зубы сводит, то можно и не обращать внимание на небольшие неточности в расчётах. А если депозит не слит, значит такого критического расширения спреда не было… Ну пусть люди потешатся, зачем сразу отбивать хотелку…

А как же "открыть глаза на суровую реальность"? 
 
Vitaliy Kuznetsov #:

Скажем так. Смотрел очень много продуктов, тысячами. И нигде не было расчёта просадки по истории. Хотя вроде на МТ5 видел, подымал кто-то тему.

Отправлять искать человека того, чего нет... Эх. Ладно. Мне это нужно было для того, что когда меня спросят о подобном функционале в моём продукте, то я просто сошлюсь на то, что ни в одном продукте такого нет и приведу довод, почему это не просто реализовать правильно.

Просто сошлитесь на авторитет Тришкина

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам

Artyom Trishkin, 2023.08.09 08:44

Просадка по средствам не считается от открытия до закрытия. А именно между. Хай, Лоу, опен, клоуз бара не дадут всей картины - там аск нужен. Просто расширение спреда может слить всë. 

 
Vitaliy Kuznetsov #:

Скажем так. Смотрел очень много продуктов, тысячами. И нигде не было расчёта просадки по истории. Хотя вроде на МТ5 видел, подымал кто-то тему.

Отправлять искать человека того, чего нет... Эх. Ладно. Мне это нужно было для того, что когда меня спросят о подобном функционале в моём продукте, то я просто сошлюсь на то, что ни в одном продукте такого нет и приведу довод, почему это не просто реализовать правильно.


Чтобы посчитать правильно просадку, а точнее, приближенно правильно, можно чекать её по минутам. И по каждой минуте смотреть все сделки. Вдруг это мультивалютная торговля.


https://www.mql5.com/ru/code/9702

https://www.mql5.com/ru/code/13242

 
Artyom Trishkin #:
А как же "открыть глаза на суровую реальность"? 

Строить в двух разных окнах бары по аск и бид должно быть выходом. Спреда в 4ке в истории нет, но эта возможность есть.

 
Tretyakov Rostyslav #:

Не знаю как правильно объяснить, но попробую:

при старте создаешь

при появлении нового максимума

при изменении максимума

при появлении нового минимума

при изменении минимума

К сожалению, строит странно

Файлы:
beo0t2od5a2.png  23 kb
 
Ivan Butko #:

К сожалению, строит странно

Не вдавался подробно, но судя по большим значениям считает разницу между самым старым экстремумом и текущим. Обычно принтую или алерчу в момент нахождения экстремума значения номера бара экстремума и предыдущего. Возможно переприсвоение где-то в коде. Частая ошибка.

Tretyakov Rostyslav #:

Не знаю как правильно объяснить, но попробую:


Там ошибка  в данных,  а не в рисовании, судя по выводимым значениям. Рисуются то они на правильных местах.

 
Valeriy Yastremskiy #:

Не вдавался подробно, но судя по большим значениям считает разницу между самым старым экстремумом и текущим. Обычно принтую или алерчу в момент нахождения экстремума значения номера бара экстремума и предыдущего. Возможно переприсвоение где-то в коде. Частая ошибка.

Видите ли, ЗигЗаг какой-то мудрёный, вот у машки прошёл цикл перебора всех баров, следующий тик - проверяем текущий или предпоследний бар. У ЗигЗага же целый блок расчёта, обособленный специально для последующих расчётов после полного первого. И буфер сам как бы работает, ломаная линия онлайн у всех рисуется. Но, если добавить графический объект с привязкой к вершинам/низинам, то при первом расчёте - на истории всё хорошо! Ставится где надо, считает всё верно. Но, стоит коду перейти на этот блок последующих расчётов - всё рушится. Не понимаю, почему. 

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