Доработка ботов (советников, индикаторов) vol. 2

закинул в Deepseek. пишет что это особенность расчета ))))). Сейчас там же пробую убрать это. Но думаю ребята профи сделают это быстрее и качественнее
Я там же этот код и сварганил.
Там где то плюс на минус поменяла нейросеть.
Всего то дел RoC через объем пересчитать. Может кто вручную сделает
 
К сожалению, нейросеть допустила ошибку в коде и он неадекватно сигналит.
Да и там чуть выше он выложен
То что сигналит не правильно - не беда. Выше выложен без линий похожих на болинджер.
Выложите пожалуйста свою версию🙏
 
Ребята кодеры, посмотрите, пожалуйста, RoC Volume что там за ошибка в коде, что он на величину периода отстает. Может исправить можно?
Ваш индикатор рассчитывается с конца, то есть с самого старого бара к новому (с индексом 0).
При расчете каждого бара учитывается цена бара, у которого индекс равен минус 12 баров от рассчитываемого , то есть учитывается цена более нового бара. (Например, если рассчитывается 20, то обращается к бару с индексом 8. Если 19, то к обращается к бару 7, и т. д.)
Поэтому индикатор может рассчитать бар с индексом 12, потому что обращается к бару с индексом ноль. А бар с индексом 11 уже не может посчитать, потому что бара с индексом -1 не существует и отсутствуют данные для расчета.

Иными словами индикатор как бы заглядывает вперёд на некоторое количество баров, которое указано в "Период RoC" (По умолчанию 12).

Это если объяснять максимально простым языком.
 

Вложения

  • 1768839095619.png
    1768839095619.png
    97,5 КБ · Просмотры: 144
То что сигналит не правильно - не беда. Выше выложен без линий похожих на болинджер.
Выложите пожалуйста свою версию🙏
Там тот же самый кривой индюк с накинутым на него боллинжером из терминала
 
  • Like
Реакции: lori
Ваш индикатор рассчитывается с конца, то есть с самого старого бара к новому (с индексом 0).
При расчете каждого бара учитывается цена бара, у которого индекс равен минус 12 баров от рассчитываемого , то есть учитывается цена более нового бара. (Например, если рассчитывается 20, то обращается к бару с индексом 8. Если 19, то к обращается к бару 7, и т. д.)
Поэтому индикатор может рассчитать бар с индексом 12, потому что обращается к бару с индексом ноль. А бар с индексом 11 уже не может посчитать, потому что бара с индексом -1 не существует и отсутствуют данные для расчета.

Иными словами индикатор как бы заглядывает вперёд на некоторое количество баров, которое указано в "Период RoC" (По умолчанию 12).

Это если объяснять максимально простым языком.
Хотел свой скрин выложить, но здесь то же самое: данные видно при загрузке индикатора, после индикатор себя никак не показывает.
 

Вложения

Я в RoC_Volume.mq4
эти все недоумения :
---------------------------------------------------
//--- Если данных недостаточно для расчета
if(rates_total < InpRoCPeriod + 1)
return(0);

//--- Определяем начальный индекс для расчета
int start;
if(prev_calculated == 0)
start = InpRoCPeriod;
else
start = prev_calculated - 1;

//--- Основной цикл расчета
for(int i = start; i < rates_total && !IsStopped(); i++)
{
//--- Проверка наличия достаточного количества баров
if(i >= InpRoCPeriod)
{
//--- Получаем цену текущего и прошлого периода
double currentPrice = GetPrice(InpPriceType, open, high, low, close);
double pastPrice = GetPrice(InpPriceType, open[i-InpRoCPeriod], high[i-InpRoCPeriod],
low[i-InpRoCPeriod], close[i-InpRoCPeriod]);
--------------------------------------------------------------------------------------------------------
убрал и поставил все по дефолту )))
--------------------------------------------------------------------------------------------------------
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit=Bars-1-counted_bars;
for(int i=0;i<limit;i++)
{
//--- Проверка наличия достаточного количества баров
if(i >= 0)
// if(i >= MaPeriud)
{
//--- Получаем цену текущего и прошлого периода
double currentPrice = iMA(NULL,0,MaPeriud,0,MaMode,InpPriceType,i);
double pastPrice = GetPrice(InpPriceType, open, high, low, close);
---------------------------------------------------------------------------------------------
И все хорошо работает зачем эти -10 баров вычислений ))))
Моя версия чуток отличается .Добавил параболик и High+Low.
Таймфрейм старший .Вобщето стал сам на себе непожожь все для того чтобы нормально отображал старшие таймфреймы , изменился но суть осталось одна почти )))
 

Вложения

Последнее редактирование:
В тестере запустил его, почему то не меняет цвет он, когда старший тайм выставляешь. Только после обновления. Ну да ладно). В режиме MTF пока свеча не закроется старшего тайма, будет цвет менять туда сюда
 
Последнее редактирование:
Как я понял, там изначально хотелось как RoC только не по Close а по Volume ). Вот такое можно посмотреть... Определить в чем отличие, накинув там 3 индикатора в разном режиме ).
 

Вложения

  • RoCV.ex4
    RoCV.ex4
    8,9 КБ · Просмотры: 41
Последнее редактирование:

Посмотрели (2160) Посмотреть

Смотрят сейчас (1) Посмотреть

Отслеживают (1856) Посмотреть

Назад
Верх