Математические основы индикаторов

MERFY

Местный житель
ох, грехи мои тяжкие... че ж все так несуразно-то?
по поводу генетических алгоритмов - это обращайся к тем кто придумал их вставить в тестер...
могу предложить только такой вариант - сначала скриптом собираешь статистику, потом пускаешь советник, правда хз как там файлы будут читаться... но это ты знаешь к кому обращаться)
DiffPeriod должны совпадать
Алекс, а как считать дату указаную в тестере стратегий, а не из окна графика?

Код:
   datetime ts=(datetime)SeriesInfoInteger(NULL,0,SERIES_FIRSTDATE),

            te=(datetime)SeriesInfoInteger(NULL,0,SERIES_LASTBAR_DATE);

Есть ли аналог для тестера?
 
Последнее редактирование:

AlexeNP

Гуру форума
Алекс, а как считать дату указаную в тестере стратегий, а не из окна графика?

Код:
   datetime ts=(datetime)SeriesInfoInteger(NULL,0,SERIES_FIRSTDATE),

            te=(datetime)SeriesInfoInteger(NULL,0,SERIES_LASTBAR_DATE);

Есть ли аналог для тестера?
вот тут я думаю как можно сделать - в советнике прописываем время с котоорого начинается торговля (положим это 1 января 2021 года), а сам советник запускаем с более ранней даты (положим с 1 января 2005). Тогда советник вполне себе обучится, и быстро пройдет не торгуемый диапазон... другой вариант - перевести все в MQL5
 

MERFY

Местный житель
Подскажи, плиз, как задать это в функции Init при вызове iCustom? Init вроде как 1 раз при инициализации всех буеферов вызывается.
 

MERFY

Местный житель
Привет! Алекс, интересно, что ты думаешь по этому поводу и можешь ли такое замутить в виде индикатора?


Итак, формулирую основные гипотезы относительно процессов на рынке Forex, которые можно считать доказанными эмпирически и экспериментально.

1. Процесс формирования цен Ask и Bid является немарковским.

На практике - все эксперты, индикаторы и советники, которые не учитывают анализ исторических данных (такие как полосы Боллинджера, быстрое преобразование Фурье и т.п.) можно не рассматривать от слова "совсем".

2. Вероятностное распределение приращений (returns) цены в потоке тиковых котировок является дискретным, асимптотически описываемым распределением Стьюдента с 2 степенями свободы и квантильной функцией Q(p) = 2*s*(p-1/2)*sqrt(2/a), где a=4*p*(1-p), s - непараметрическое стандартное отклонение.

На практике - все эксперты, индикаторы и советники, которые используют в своих расчетах нормальное распределение Гаусса (равно как и другие классические распределения), правило "3 сигм" и т.д., также можно не рассматривать.

3. Вероятностное распределение цены Ask или Bid - это суперпозиция распределений Стьюдента с 2-мя степенями свободы.

На практике - классная задача о выделении конкретных распределений из суперпозиции.

Собственно, на основе анализа исторических тиковых данных, а по-простому, при помощи усреднения статистических параметров при определенных объемах выборки, делается вывод о выходе текущего значения цены за определенные исторические граничные условия. Только после этого анализируются параметры текущего распределения - дисперсия, коэффициенты эксцесса, асимметрии и т.д. и т.п с целью определить - началось ли формирование нового распределения Стьюдента, или уже закончилось.

В первом случае - сделка заключается по тренду, во втором - против тренда.


Также:

Достаточно усвоить, что на рынке господствует т.н. устойчивое распределение (stable distribution) приращений с alpha=0.5.

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

1. Берешь генератор СЧ с распределением Лапласа и считаешь на каждом шаге сумму получаемых случайных величин. Получаешь искусственный ряд типа Laplace motion.

2. Смотришь - дает ли твоя ТС прибыль на таком искусственном ряду. Нет - значит в топку ее!
Да - береги эту ТС, она пригодится.

3. Выделяешь в реальном ВР участки с распределением приращений, близким к Лапласу и, вуаля, - Грааль.

Автор рботает исключительно и только с (Ask+Bid)/2.
 
Последнее редактирование:

kudinoff

Почетный гражданин
На практике - все эксперты, индикаторы и советники, которые используют в своих расчетах нормальное распределение Гаусса (равно как и другие классические распределения), правило "3 сигм" и т.д., также можно не рассматривать.
3 сигмы более чем работают, если смотреть побарно. Только это не говорит в какую сторону будет динамика средней, и можно ли входить на возврат к средней или тренд снесет к стопу.
 

Вложения

  • NonLagMA_StdDev.mq4
    9 КБ · Просмотры: 67

MERFY

Местный житель
3 сигмы более чем работают, если смотреть побарно. Только это не говорит в какую сторону будет динамика средней, и можно ли входить на возврат к средней или тренд снесет к стопу.
Привет! Смысл в том, что нужно распределение брать не нормальное... В этом вся соль. Интересно, что Алекс ответит.
 

kudinoff

Почетный гражданин
AlexeNP, у вас есть какие-то идеи насчет зигзага? Попробовал что-то сделать на основе вашего индикатора.
 

Вложения

  • Kudinoff_2.mq4
    17,4 КБ · Просмотры: 42

kudinoff

Почетный гражданин
Update. Добавил расчет времени и вероятность срабатывания таргета (настраивается коэффициентом, можно ставить отрицательное значение).
1653207744985.png
 

Вложения

  • Kudinoff_2.mq4
    23,4 КБ · Просмотры: 53

MERFY

Местный житель
Update. Добавил расчет времени и вероятность срабатывания таргета (настраивается коэффициентом, можно ставить отрицательное значение).
Посмотреть вложение 474644

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

Вложения

  • ZZ NRP AA TT [x3].mq4
    22,1 КБ · Просмотры: 29
  • ZZ NRP AA TT Trump [x3].mq4
    22,1 КБ · Просмотры: 33
  • Gann ZigZag CB TT.mq4
    46,9 КБ · Просмотры: 31
Последнее редактирование:

MERFY

Местный житель
Update. Добавил расчет времени и вероятность срабатывания таргета (настраивается коэффициентом, можно ставить отрицательное значение).
Посмотреть вложение 474644
И вот еще отрисовка Свинга в виде Зигзага 1-барового по Ганну.
Можно сюда также добавить вероятности достижения таргета.

SwingPoint с Паука, еще Иваныч по недобоям с ним игрался и вроде как успешно.
А второй делал программист Мобидик с данного форуму.
 

Вложения

  • SwingMFT.mq4
    15,9 КБ · Просмотры: 39
  • Swing_Point.mq4
    5,8 КБ · Просмотры: 41

AlexeNP

Гуру форума
чего-то хотел по порядку отвечать, но давайте сегодня с зигзагом поразвлекаемся. Итак, посмотрим сначала чего там с максимумами/минимумами творится. Если подойдем к их строгому определению, то картинка вырисовывается такая.
EURUSDH100.png
Можно конечно использовать среднее Лемера для отбрасывания лишних точек, но мы попробуем другой способ. Тут возникает соблазн - выкинуть те точки, которые не очень-то и максимумы/минимумы. Для этого вычисляем x0 - 2*x1 + x2 - если оно лежит ниже некоторого предела, то максимум/минимум не считается. К примеру та же картинка с параметром Sensitivity=50
EURUSDH50.png
Однако, до сих пор могут попадаться сдвоенные максимумы и прочие ерундовины. Вводим правила: если на одном баре обе точки - оставляем только противоположную предыдущей, если точки повторяются, то между ними принудительно рисуем противоположную. Смотрим
EURUSDH1.png
Параметр Sensitivity - допустимые значения 0 - 100
 

Вложения

  • AIS ZigZag Point.mq4
    4,6 КБ · Просмотры: 50
  • AIS ZigZag.mq4
    5,2 КБ · Просмотры: 49
  • AIS ZigZag Point.mq5
    4,5 КБ · Просмотры: 24
  • AIS ZigZag.mq5
    5,1 КБ · Просмотры: 26

MERFY

Местный житель
чего-то хотел по порядку отвечать, но давайте сегодня с зигзагом поразвлекаемся. Итак, посмотрим сначала чего там с максимумами/минимумами творится. Если подойдем к их строгому определению, то картинка вырисовывается такая.
Посмотреть вложение 474654
Можно конечно использовать среднее Лемера для отбрасывания лишних точек, но мы попробуем другой способ. Тут возникает соблазн - выкинуть те точки, которые не очень-то и максимумы/минимумы. Для этого вычисляем x0 - 2*x1 + x2 - если оно лежит ниже некоторого предела, то максимум/минимум не считается. К примеру та же картинка с параметром Sensitivity=50
Посмотреть вложение 474655
Однако, до сих пор могут попадаться сдвоенные максимумы и прочие ерундовины. Вводим правила: если на одном баре обе точки - оставляем только противоположную предыдущей, если точки повторяются, то между ними принудительно рисуем противоположную. Смотрим
Посмотреть вложение 474656
Параметр Sensitivity - допустимые значения 0 - 100

Прикольно, но в паттерн 1-2-3 не получается поиграть )) очень много ложных входов.
 

kudinoff

Почетный гражданин
У Танка были неплохие решения по нерисующему зигзагу, можно в его индикаторы засунуть расчеты по верояности таргета
Тут интереснее не сама зига. Понятно, что алгоритмы могут отличаться.
Пока эти таргеты просто средние значения на истории. Можно улучшить встроенной оптмизацией периода, поиском паттернов по длине нескольких последних волн зигзага.
 

MERFY

Местный житель
Тут интереснее не сама зига. Понятно, что алгоритмы могут отличаться.
Пока эти таргеты просто средние значения на истории. Можно улучшить встроенной оптмизацией периода, поиском паттернов по длине нескольких последних волн зигзага.
Понял, ну и лучше оценивать за какой-то период вероятность, к примеру за последний час или сутки, чтобы перерисовки небыло на каждом новом баре текущего таймфрейма.
Истории брать побольше. 1 паттерн = 1 волна зига? ну тогда волн на Бай и Селл по стате должно быть от 100 штук. Тогда хоть какае-то значимость появится. Мне кажется все это превратится в некую среднюю зону в итоге похожую на ATR среднего хода цены за сутки, неделю, месяц.

Может лучше брать не зиг, а обычный паттетрн, к примеру поглощение, только интервал от Н1 и выше, и по ним собирать эту статистику с прогнозами, там будет четкий Hi, Low, Open, Close. Его можно прямо интерпретировать, а по зигу все зависит будет от параметров, которые в него заложишь....

И статистики будет больше и значимей она будет, особенно последняя стата.
 
Последнее редактирование:

kudinoff

Почетный гражданин
Мне кажется все это превратится в некую среднюю зону в итоге похожую на ATR среднего хода цены за сутки, неделю, месяц.
Если присмотреться, там формируется дуга. Если отложить по времени по половине стандартного отклонения вперед и назад, получится такой дуговой веер (накидал от руки). Возможно, тут упор надо делать больше как на графический паттерн.
1653223081232.png
 

MERFY

Местный житель
Если присмотреться, там формируется дуга. Если отложить по времени по половине стандартного отклонения вперед и назад, получится такой дуговой веер (накидал от руки). Возможно, тут упор надо делать больше как на графический паттерн.
Посмотреть вложение 474666
Больше аллигатор напоминает от Билла Вильямса, раскрытый на долгосрочную Бай тенденцию. С откатом конечно, но сумма вероятностей по синим отклонениям больше чем сумма вероятностей по красным отклонениям, значит Бай
 

kudinoff

Почетный гражданин
Больше аллигатор напоминает от Билла Вильямса, раскрытый на долгосрочную Бай тенденцию. С откатом конечно, но сумма вероятностей по синим отклонениям больше чем сумма вероятностей по красным отклонениям, значит Бай
Расхождения заметнее на старших таймах. Если пара котируется меньше 1 - перекос в селл и наоборот.
 

Genry_05

Отдыхает
Как это не прискорбно, но с угловыми величинами бывает полный затык и неясность. А именно - даже расчет среднего угла может стать серьезной проблемой. Для примера, будем строить трендовую линию за N отсчетов. Для чего будем определять средний угол по всем парам точек, заодно посчитаем и среднее отклонение. В этом нам поможет свернутое нормальное распределение. А для работы с угловыми величинами нам потребуются синус, косинус, пытливый ум и шаловливые ручки.
В данном случае, я беру строго заданное значение начальной точки и начиная с нее нахожу средний угол по всем парам точек, которые находятся между началом и концом. В итоге получается примерно такая красота.
Посмотреть вложение 453416
Для еще большей красивости можно использовать оценку Тейла-Сена, и конечно же сделать расчет начальной точки.
Алексей, еще раз - спасибо, полезный индикатор!
1653245074498.png
 
Последнее редактирование:

AlexeNP

Гуру форума
Так, совсем бесполезный индикатор, который рассчитывает оптимальные уровни тейк-профита и стоп-лосса.
Length - длина прогноза, Shift - может сдвинуть на столько баров назад, чтобы посмотреть чего индикатор в прошлом показывал. Info - если включена, то печатает значения во вкладке эксперты.
Также, эти уровни можно использовать как своеобразные уровни поддержки/сопротивления (особенно, если несколько индикаторов использовать)
EURUSDM1.png
 

Вложения

  • AIS Optimal Take Profit & Stop Loss.ex4
    21 КБ · Просмотры: 45
  • AIS Optimal Take Profit & Stop Loss.ex5
    21,9 КБ · Просмотры: 27

AlexeNP

Гуру форума
Еще один простенький индикатор, построен на гипергеометрическом ряде. Вполне может заменить простую скользящую среднюю - ведет себя почти так же, но запаздывание у него поменьше. iPeriod - период индикатора (от 2 до 149)
EURUSDH1.png
 

Вложения

  • AIS Hypergeometric Filter.ex4
    11 КБ · Просмотры: 56
  • AIS Hypergeometric Filter.ex5
    7,1 КБ · Просмотры: 33
Верх