Расчетная часть одинакова. В этой Вы видите еще сигналы на вход по правилу совпадения всех линий на текущем баре и по истории тоже (глубина истории регулируется). Можно выбирать цену для которой строится прогноз. Версия по умолчанию настроена на работу по ценам открытия, потому сигнал появляется с открытием бара и потом уже не изменяется. Вроде, все отличия.
Причем, в связи стем, что с каждым новым баром прогноз меняется, то этот прогноз должен касаться только следующего бара, а не далекого или близкого будущего.
Из наблюдений за индикатором в тестере я бы не сказал, что это так.
Mudreishii:
А если запустить тестер то он будет в нём роботать?
да, правда я ничего в этом индикаторе не разглядел перерисовывает почти на каждом баре .
Чтобы уменьшить эффект перерисовки, используйте, так называемый "следящий режим". Например, Вы хотите следить за трендом, который образовался, по Вашему мнению, за последние 3 бара (или любое другое число баров) на ТФ М5 (или другой ТФ). Устанавливаете в настройках ретроспективу 3 и смотрите прогноз. По истечении 5 минут появляется новый прогноз за последние 3 бара, естественно, уже другой прогноз, поскольку из ретроспективы исключен первый бар и Вам кажется, что прогноз перерисован, хотя на самом деле так и есть, поскльку это уже другой прогноз. Чтобы иметь предыдущий, но уточненный прогноз, Вы должны в настройках поменять ретроспективу 3 на 4 и тогда получите прежний прогноз без особых изминений. Впредь добавляя по одному бару в ретроспективу Вы будете иметь возможность следить за первоначальным трендом. Я скоро попробую автоматизировать этот процесс, хотя каждый из Вас может это осуществить, зайдя в код. Прошу того, кто это осуществит первым, выложить код здесь или мне в личку, поскольку я в программировании не разбираюсь, заранее благодарю.
void Fun_New_Bar() // Ф-ия обнаружения нового бара
{
New_Bar=false; // Нового бара нетif(New_Time!=Time[0]) // Сравниваем время
{
New_Time=Time[0]; // Теперь время такое
New_Bar=true; // Поймался новый бар
}
}
Вставляем в код эту (выше) функцию.
Во входные переменные добавляем две строки:
bool New_Bar=false; // Флаг нового бара static datetime New_Time;
В начале функции Start() добавляем эти строки:
Fun_New_Bar();
if (New_Bar) {
SIZE_KYPC++;
SIZE_P++;
}
Mudreishii:
А если запустить тестер то он будет в нём роботать?
да, правда я ничего в этом индикаторе не разглядел перерисовывает почти на каждом баре .
Чтобы уменьшить эффект перерисовки, используйте, так называемый "следящий режим". Например, Вы хотите следить за трендом, который образовался, по Вашему мнению, за последние 3 бара (или любое другое число баров) на ТФ М5 (или другой ТФ). Устанавливаете в настройках ретроспективу 3 и смотрите прогноз. По истечении 5 минут появляется новый прогноз за последние 3 бара, естественно, уже другой прогноз, поскольку из ретроспективы исключен первый бар и Вам кажется, что прогноз перерисован, хотя на самом деле так и есть, поскльку это уже другой прогноз. Чтобы иметь предыдущий, но уточненный прогноз, Вы должны в настройках поменять ретроспективу 3 на 4 и тогда получите прежний прогноз без особых изминений. Впредь добавляя по одному бару в ретроспективу Вы будете иметь возможность следить за первоначальным трендом. Я скоро попробую автоматизировать этот процесс, хотя каждый из Вас может это осуществить, зайдя в код. Прошу того, кто это осуществит первым, выложить код здесь или мне в личку, поскольку я в программировании не разбираюсь, заранее благодарю.
void Fun_New_Bar() // Ф-ия обнаружения нового бара
{
New_Bar=false; // Нового бара нетif(New_Time!=Time[0]) // Сравниваем время
{
New_Time=Time[0]; // Теперь время такое
New_Bar=true; // Поймался новый бар
}
}
Вставляем в код эту (выше) функцию.
Во входные переменные добавляем две строки:
bool New_Bar=false; // Флаг нового бара static datetime New_Time;
В начале функции Start() добавляем эти строки:
Fun_New_Bar();
if (New_Bar) {
SIZE_KYPC++;
SIZE_P++;
}
Теперь не перерисовывает. Но радости мало... Скиньте, пожалуйста, полностью скомпонованный код.
В 3-ем варианте индикатора реализован "следящий" режим.
void Fun_New_Bar() // Ф-ия обнаружения нового бара
{
New_Bar=false; // Нового бара нетif(New_Time!=Time[0]) // Сравниваем время
{
New_Time=Time[0]; // Теперь время такое
New_Bar=true; // Поймался новый бар
}
}
Тут не правильно, измените таймфрейм измениться и Time[0], и ваш код скажет что появился новый бар
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Спасибо, уважаемый Юсуф
Стрелочки добавлены...
Стрелочки добавлены...
визуально код отсюда https://www.mql5.com/ru/forum и этот ivgf_SultonovPrediction 2.mq4 идентичны
все забываю сказать спасибо обоим: автору идеи и разработчику индикатора.
СПАСИБО !
Разработчик комментирует (https://www.mql5.com/ru/forum):
Расчетная часть одинакова. В этой Вы видите еще сигналы на вход по правилу совпадения всех линий на текущем баре и по истории тоже (глубина истории регулируется). Можно выбирать цену для которой строится прогноз. Версия по умолчанию настроена на работу по ценам открытия, потому сигнал появляется с открытием бара и потом уже не изменяется. Вроде, все отличия.
И еще здесь https://www.mql5.com/ru/forum
Он прогнозирует предполагаемый ход цены в будущем (цитата из описания).
Наверно имелось в виду, что индикатор сообщает буквально следующее:
1) цена будет расти (со скоростью ~= наклону объединенных трех линий)
2) цена будет падать (со скоростью ~= наклону объединенных трех линий)
3) неопределенное состояние рынка (линии не объединены)
4) возможное время смены тренда (желтая почти вертикальная линия)
Причем, в связи стем, что с каждым новым баром прогноз меняется, то этот прогноз должен касаться только следующего бара, а не далекого или близкого будущего.
Из наблюдений за индикатором в тестере я бы не сказал, что это так.
А если запустить тестер то он будет в нём роботать?
Вставляем в код эту (выше) функцию.
Во входные переменные добавляем две строки:
В начале функции Start() добавляем эти строки:
Fun_New_Bar(); if (New_Bar) { SIZE_KYPC++; SIZE_P++; }Теперь не перерисовывает. Но радости мало...А если запустить тестер то он будет в нём роботать?
Вставляем в код эту (выше) функцию.
Во входные переменные добавляем две строки:
В начале функции Start() добавляем эти строки:
Fun_New_Bar(); if (New_Bar) { SIZE_KYPC++; SIZE_P++; }Теперь не перерисовывает. Но радости мало... Скиньте, пожалуйста, полностью скомпонованный код.Тут не правильно, измените таймфрейм измениться и Time[0], и ваш код скажет что появился новый бар