1. Жене говоришь, что ушёл к любовнице.
2. Любовнице говоришь, что вернулся к жене.
3. И учиться, учиться и еще раз учиться.
ЗЫ Достоверностью называется; только все там совсем не так.
Этот код начал обрастать всё большим количеством правок, пока не стало ясно, что появление "костылей" — признак изначально неправильной реализации :)
Текущая версия сделана прямо по условию и как-то уже позволяет предварительно оценить перспективность такого подхода. График всё равно заметно дёрганый, с разрывами и скачками к нулю / от нуля, очевидно, это вызвано "пороговым" алгоритмом.
To do:
1. придумать какой-нибудь "гладкий" алгоритм и устранить скачки на графике
2. сделать как можно больше зависимостей в функции (а это же функция?) линейными.
_______________________
Пользуясь случаем, хотелось бы спросить совета у знатоков: как вы считаете, как лучше рассчитывать индикаторы -
на основе обратной таймсерии ArraySetAsSeries(array,true), с нумерацией от последнего бара к первому, как в старых версиях MQL4,
или на основе прямой таймсерии ArraySetAsSeries(array,false), с нумерацией от первых баров к последним, как в MQL5?
И так, и так получается много путаницы. Хотя со вторым методом путаницы меньше, но легко выхватить "array index out of range" при обращении типа double cprice=open[rates_total-1].
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В процессе разработки одного хитрого индикатора, который делает кучу вычислений и выдаёт вердикт — Buy или Sell, появилось желание заодно оценить правдивость прогноза в реальном времени. Так сказать, провести самотестирование и узнать, с какой примерно вероятностью он сбудется. Индикатор пытается угадать, куда уйдёт цена - вверх или вниз - на фиксированное количество пунктов.
Суть такова: у нас есть текущая цена, есть горизонтальный коридор, образованный двумя линиями на Х пунктов выше и ниже текущей цены (пусть Х=100), и график её последующего движения. Задача: оценить график одним числом, условно назовём его "вероятностью со знаком": от 1 (вверх) до -1 (вниз).
Как же его можно оценить?
Рассмотрим простые случаи.
Пусть цена идёт от значения 0, возрастает и пробивает линию +100. Тогда результат равен +1.
Пусть цена идёт от значения 0, убывает и пробивает линию -100. Тогда результат, очевидно, равен -1.
Допустим, цена идёт вниз до -20, разворачивается и пробивает +100. Тогда результат будет примерно +0,8.
Если график беспорядочно колеблется то вверх, то вниз, то результат должен быть около 0. Ни туда, ни сюда.
Если вначале падает до -60, а потом растёт до +80, то как считать? Будем считать, что вероятность ухода вниз при падении (down) равна 0,6. Тогда вероятность "не ухода" равна 1-0,6=0,4. После этого вероятность роста равна 0,8, а с учётом условия "не ухода вниз" равна 0,8*0,4=0,32 (up). Вероятность того, что цена не выйдет за границу ни при первом, ни при втором движении, равна (1-0,6)*(1-0,8)=0,08 (none).
В сумме: up + down + none = 1, пока всё вроде правильно.
Как теперь посчитать эту "вероятность со знаком"? Я думаю, так: result = up – down. Это при none, стремящемся к нулю. Линия рано или поздно куда-нибудь уйдёт.
Собственно, то, что получилось — в аттаче. График индикатора очень дёрганый :D
У кого-нибудь есть какие-нибудь мысли по этому поводу? Буду рад замечаниям и предложениям.