Нашёл индюка на задворках интернета. Не разбираюсь в кодах вообще ни как. Через короткий промежуток времени после нанесения его на терминал индикатор перестаёт работать. Что с ним не так ?
22минуты работал. Из вкладки Эксперты:
2018.07.02 11:58:07.801 Trend_Angle EURUSD,M1: zero divide in 'Trend_Angle.mq4' (108,39)
Ошибка деления на 0 и прекратил работу строка 108 поз 39 Angle=90-MathArctan((0.+x1-x2)/(0.+y2-y1))*180./Pi; Самое простое (а верно ли будет?)
if(y2>y1) Angle=90-MathArctan((0.+x1-x2)/(0.+y2-y1))*180./Pi;
Angle=90-MathArctan((0.01+x1-x2)/(0.01+y2-y1)*180./Pi
Может так?
Angle=90-MathArctan((0.01+x1-x2)/(0.01+y2-y1)*180./Pi
Может так?
Не самое лучшее решение. Сдаётся мне, функция ChartTimePriceToXY не выполняется, и соответственно, возникает этот косяк т.к. x и y из неё возвращаются. Проще сделать как-то так:
if (ChartTimePriceToXY(0, 0, Time[10], 10 * price1 - 9 * price2, x1, y1) && ChartTimePriceToXY(0, 0, time2, price2, x2, y2)) { angle = 90 - MathArctan((0 + x1 - x2) / (0 + y2 - y1)) * 180 / Pi; angleStr = DoubleToString(angle, 2); if (ObjectFind(0, objName + "T") == -1) { ObjectCreate(0, objName + "T", OBJ_TEXT, 0, time2, price2); } else { if (ObjectGet(objName + "T", OBJPROP_TIME1) != time2) ObjectSet(objName + "T", OBJPROP_TIME1, time2); if (ObjectGet(objName + "T", OBJPROP_PRICE1) != price2) ObjectSet(objName + "T", OBJPROP_PRICE1, price2); } ObjectSetText(objName + "T", angleStr, Font_Size, NULL, TrendColor); }
Держи. Я переделал чутка. Привёл код в порядок. Но угол он показывает какой-то конченый, если честно.
Не самое лучшее решение. Сдаётся мне, функция ChartTimePriceToXY не выполняется, и соответственно, возникает этот косяк т.к. x и y из неё возвращаются. Проще сделать как-то так:
Держи. Я переделал чутка. Привёл код в порядок. Но угол он показывает какой-то конченый, если честно.
Да, угол-загадка. Благодарю за улучшенную визуализацию угла и починку индюшки.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Нашёл индюка на задворках интернета. Не разбираюсь в кодах вообще ни как. Через короткий промежуток времени после нанесения его на терминал индикатор перестаёт работать. Что с ним не так ?