Мысль понял, не могу пока сообразить как написать.
Допустим;
level_0 = 0,7147
level_100 = 0,7502
Тогда 100proc = level_100 - level_0 (0.0355)
Тогда 23,6proc = (100proc*23.6)/100
и.т.д ?
Мысль понял, не могу пока сообразить как написать.
Допустим;
level_0 = 0,7147
level_100 = 0,7502
Тогда 100proc = level_100 - level_0 (0.0355)
Тогда 23,6proc = (100proc*23.6)/100
и.т.д ?
Тогда:
Уровень 23,6 будет 0.7147 + 0.0355*0.236
Уровень 161.8 будет 0.7147 + 0.0355*1.618
Для восходящего графика нулевой уровень будет с низу а сотый в верху, для нисходящего наоборот. Возникает вопрос как лучше и правильней описать ? Использовать отрицательные величины ?
А что мешает?
Переверни свои тестовые значения
Допустим;
level_0 = 0,7502
level_100 = 0,7147
Тогда 100proc = level_100 - level_0 (-0.0355)
и уровень 161.8 будет 0.7502 + (-0.0355*1.618)if(time_fractal_min < time_fractal_max) { fibo_level_0 = min_fractal; fibo_level_100 = max_fractal; } if(time_fractal_min > time_fractal_max) { fibo_level_0 = max_fractal; fibo_level_100 = min_fractal; } sto_proc = fibo_level_100-fibo_level_0; fibo_level_23 = fibo_level_0 + (sto_proc*0.236); fibo_level_38 = fibo_level_0 + (sto_proc*0.382); fibo_level_50 = fibo_level_0 + (sto_proc*0.5); fibo_level_61 = fibo_level_0 + (sto_proc*0.618); fibo_level_161 = fibo_level_0 + (sto_proc*1.618); Alert("Фибо 23=",fibo_level_23, " sto_proc=",sto_proc, " max_fractal=",max_fractal," min_fractal=",min_fractal, " time_fractal_max=",time_fractal_max," time_fractal_min=",time_fractal_min);
Не могу понять в чем дело. Делаю проверку, смотрю какие данные вытаскивает. Получается что значения fibo_level_0 и fibo_level_100 вытаскивает правильно а вот расчет sto_proc делает не верно . В чем дело ?
А как в таком варианте учесть восходящий и нисходящий тренд ? Прописывать для одного тренда +(fibo_level_0*0.236) а для другого -(fibo_level_0*0.236) ? Или как то по другому можно ? Интересуют варианты где меньше кода.(почему кстати расчет sto_proc неверный ?)
А как в таком варианте учесть восходящий и нисходящий тренд ? Прописывать для одного тренда +(fibo_level_0*0.236) а для другого -(fibo_level_0*0.236) ? Или как то по другому можно ? Интересуют варианты где меньше кода.(почему кстати расчет sto_proc неверный ?)
Это я ошибся, позор на мои седины, извиняюсь.
Приведите выписку с журнала, строки алерта.
А может там ошибка где-то выше по коду вообще.
Не могу понять в чем дело. Делаю проверку, смотрю какие данные вытаскивает. Получается что значения fibo_level_0 и fibo_level_100 вытаскивает правильно а вот расчет sto_proc делает не верно . В чем дело ?
void start() { if(New_Time==Time[0]) return; // Определяем новый бар { New_Time=Time[0]; //--- //Определяем минимальный и максимальный фракталы для FIbo чисел double fractal_d = 0.0, fractal_u = 0.0, min_fractal = 0.0, max_fractal = 0.0, new_min_fractal, new_max_fractal; for(int i=3; i<=bars; i++) { fractal_d = iFractals(NULL, 0, MODE_LOWER, i); if(fractal_d > 0) { if(min_fractal == 0.0) { min_fractal = iLow(NULL, 0, i); time_fractal_min = iTime(NULL, 0, i); } if(min_fractal > 0) { new_min_fractal = iLow(NULL, 0, i); new_time_fractal_min = iTime(NULL, 0, i); if(new_min_fractal < min_fractal) { min_fractal = new_min_fractal; time_fractal_min = new_time_fractal_min; } } } } for(int i=3; i<=bars; i++) { fractal_u = iFractals(NULL, 0, MODE_UPPER, i); if(fractal_u > 0) { if(max_fractal == 0.0) { max_fractal = iHigh(NULL, 0, i); time_fractal_max = iTime(NULL, 0, i); } if(max_fractal > 0) { new_max_fractal = iHigh(NULL, 0, i); new_time_fractal_max = iTime(NULL, 0, i); if(new_max_fractal > max_fractal) { max_fractal = new_max_fractal; time_fractal_max = new_time_fractal_max; } } } } if(time_fractal_min < time_fractal_max) { fibo_level_0 = min_fractal; fibo_level_100 = max_fractal; } if(time_fractal_min > time_fractal_max) { fibo_level_0 = max_fractal; fibo_level_100 = min_fractal; } sto_proc = fibo_level_100 - fibo_level_0; fibo_level_23 = fibo_level_0 + (sto_proc*0.236); fibo_level_38 = fibo_level_0 + (sto_proc*0.382); fibo_level_50 = fibo_level_0 + (sto_proc*0.5); fibo_level_61 = fibo_level_0 + (sto_proc*0.618); fibo_level_161 = fibo_level_0 + (sto_proc*1.618); Alert("Фибо 23=",fibo_level_23, " sto_proc=",sto_proc, " max_fractal=",max_fractal," min_fractal=",min_fractal, " time_fractal_max=",time_fractal_max," time_fractal_min=",time_fractal_min); } }
Проверку делал через алерт. вытягивал с начало sto_proc = -fibo_level_0 потом sto_proc = fibo_level_100
(результат был правильным) ну и затем sto_proc = fibo_level_100 - fibo_level_0 результат выше (
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Собственно вопрос в названии темы. Требуется сначало его выводить объектом на график или можно сразу рассчитать значения ?