Сделал я как-то такую штуку ... - страница 8

 
Candid:
  Чаще всего причиной остановки расчёта является деление на ноль, нужно просто набраться терпения (если код длинный), зарядить поиск "/" и тупо везде вставить проверку делителя на ноль и печать сообщения об ошибке если 0....  

именно на 0, да есть деление, ты сразу это определил (я ж говорю ты программист, а я так подмастерье), я долго ковырялся, но тоже нашел почему, пробовал подставлять минимальное значение, индикатор взрывается (типа курс евродолар через 5 минут работы шестизначная цифра) алгоритм то итерационный, начал сверять с маткадом, а там не 0, там мнимое число, маткад это переваривает ему до лампочки, а на MQL писать библиотеку, которая вращает матрицы из мнимых чисел, я сдался сразу, гори это синим пламенем, не стоит он того, поэтому я и писал, что доделал его до разумного предела, мне хватает,  понимаю как он работает, как его запустить, и интерпретировать...

для ручной торговли достаточно, есть еще куча идей которые хочется проверить, посмотреть, протестировать, на этом калмане свет клином не сошелся.

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

З.Ы. перестанут работать уровни, начну снова что то искать,  и так по кругу, пока работают, надеюсь если алексей (математик) внимательно следил за сообщениями, не даст соврать. пока работают

 
Prival:

именно на 0, да есть деление, ты сразу это определил (я ж говорю ты программист, а я так подмастерье), я долго ковырялся, но тоже нашел почему, пробовал подставлять минимальное значение, индикатор взрывается (типа курс евродолар через 5 минут работы шестизначная цифра) алгоритм то итерационный, начал сверять с маткадом, а там не 0, там мнимое число, маткад это переваривает ему до лампочки, а на MQL писать библиотеку, которая вращает матрицы из мнимых чисел, я сдался сразу, гори это синим пламенем, не стоит он того, поэтому я и писал, что доделал его до разумного предела, мне хватает, понимаю как он работает, как его запустить, и интерпретировать...

для ручной торговли достаточно, есть еще куча идей которые хочется проверить, посмотреть, протестировать, на этом калмане свет клином не сошелся.

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

З.Ы. перестанут работать уровни, начну снова что то искать, и так по кругу, пока работают, надеюсь если алексей (математик) внимательно следил за сообщениями, не даст соврать. пока работают

Иногда в потоке цен мусор.

Я лично рекомендую слепо не доверяться таймсериям.

В Мт5 эта проблема еще серьезней.

Потому и возникает "деление на ноль" в немысленном месте...

;)

 
Prival:

именно на 0, да есть деление, ... пробовал подставлять минимальное значение, индикатор взрывается (типа курс евродолар через 5 минут работы шестизначная цифра) алгоритм то итерационный,

Я конечно всей специфики индикатора не знаю, но логичнее всего в такой ситуации просто пропускать шаг, то есть восстанавливать состояние на начало неудачной итерации и начинать следующую с него.
 
Prival:

именно на 0, да есть деление, ты сразу это определил (я ж говорю ты программист, а я так подмастерье), я долго ковырялся, но тоже нашел почему, пробовал подставлять минимальное значение, индикатор взрывается (типа курс евродолар через 5 минут работы шестизначная цифра) алгоритм то итерационный, начал сверять с маткадом, а там не 0, там мнимое число, маткад это переваривает ему до лампочки, а на MQL писать библиотеку, которая вращает матрицы из мнимых чисел, я сдался сразу, гори это синим пламенем, не стоит он того

А почему не поступить проще - просто импортировать котировки в маткад и написать там простейший тестер для подсчета статистики шоб не заморачиваться зря с MQL?

Если алгоритм заработает на более-менее длинной истории - то переписать всё в MQL с чей-то помощью не составит проблемы.

 
Candid:
Я согласен что зигзаг не совсем прямая проверка "круглых" уровней. На самом деле не так просто придумать, как такую статистику правильно набрать. Тем не менее эффект уровней 00 зигзаг чувствует, поэтому можно согласиться, что эффект есть, а вопрос о его силе остаётся открытым.

Шпилька в 00 конечно имеет место, но и проседание в последующих 6 значениях по-моему вполне очевидно. А провал для 99 вообще компенсирует эту шпильку практически полностью. ИМХО, подвинуть рынок на 1 пункт для того, чтобы достигнуть круглого уровня, повидимому вполне по силам маркетмейкерам. Вопрос в том, стоит ли это внимания ?
 

Кстати да, я как-то механически дал рисунок, а ведь ситуация с 99, 00 и 01 демонстрирует явную асимметрию по отношению к вверх-вниз, это странно. Более тщательное построение даёт немного другую диаграмму.


Увы, никаких следов эффекта.

 
Candid:

Кстати да, я как-то механически дал рисунок, а ведь ситуация с 99, 00 и 01 демонстрирует явную асимметрию по отношению к вверх-вниз, это странно. Более тщательное построение даёт немного другую диаграмму.


Увы, никаких следов эффекта.


можно по подробнее, что это за график и как он построен ?
 
Prival:

можно по подробнее, что это за график и как он построен ?

Данные в момент фиксации вершины ЗЗ записывются так:

              IExt = CurMax*100;
              CExt = MathRound(CurMax*10000);
              FileWrite(h,Time[Bars-CurMaxBar],CExt-IExt*100);

              ...

              IExt = CurMin*100;
              CExt = MathRound(CurMin*10000);
              FileWrite(h,Time[Bars-CurMinBar],CExt-IExt*100);

После этого я импортировал файл в матлаб и построил распределение. Наверное его и в маткаде можно построить.

Кстати, можно построить и в терминале, индюк в аттаче


P.S. Неплохо ещё в шапку эту строчку добавить

#property indicator_minimum 0.0
Файлы:
 

Как я понял, эта проверка показывает, где чаще ломается зигзаг. Рядом с уровнем или нет. Но это проверка зигзага, но не работоспособности (значимости) круглых уровней.

Зигзаг тут вообще не причем. Мне кажется, нужно проверять с точки зрения эффективности  входа в рынок, есть такой показатель https://www.mql5.com/ru/forum/126953/page10

  Поясню здесь на рисунке


Взял для примера круглый уровень 1.29

  1. берем самый простейший случай. Без каких либо фильтров. Цена пробила уровень вверх – входим в бай. На рисунке это точка №1 и точка №2 (их больше, выбрал две что бы не загромождать рисунок)
  2. выход через 1 час, не принципиально, можно взять и другую цифру. Главное что бы была одинаковая для всех, этот параметр должен быть зафиксирован иначе будет неоднозначность при анализе статистики результатов.
  3. за время существования сделки в рынке, от точки 1 до точки 1-1 фиксируем (запоминаем) точки максимума и минимума цены, а также саму величину сделки, все в пунктах.
  4. прогоняем по истории все эти данные запоминаем. По ним рассчитываем эффективность входа, выхода, эффективность сделки. Вычисляем среднее.
  5. тоже самое п.1-4 повторяем для селл.

  Теперь берем другие уровни 00+10, 00+20…. и т.д. получаем по каждому уровню статистику и уже сравниваем эти статистики с нулевым =круглым уровнем.

  Для выдранных точек. 

№1 просадка 10 пунктов = точка входа -  минимум,

Эффективность выхода (максимум – точка выхода=8 пунктов)

Величина прибыли (выход – вход =22 пункта)

Размах движения (мах-мин=38 пунктов)

У точки №2 просадка будет =0, т.к. (вход=минимуму), это и есть идеальный вход, лучше не бывает, цена ни одного пипса, не шла против тебя.

 

З.Ы. как то так нужно проверять, + количество точек входа должно быть большим, что бы можно было получить статистически значимый результат.

           

 

Ну можно как-то так, потом можно с вариантами без лишних входов на болтанке вокруг уровня. Интересно, найдутся добровольцы написать эксперта? :)

Кстати, возвращаясь к вот этой теме, это может быть как раз алгоритм базового множества входов-выходов. Надо обдумать, может и правда стоит глянуть.

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