+ Ответить в теме
Показано с 1 по 10 из 10

Тема: Индикатор на основе ClusterDeltra volume

  1. #1
    Пользователь
    Регистрация
    18.07.2017
    Сообщений
    7
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    Индикатор на основе ClusterDeltra volume

    Добрый день!
    Пытаюсь задействовать индикатор обьема cluster delta в своем индикаторе. Вызываю его таким способом: iCustom(NULL, 0, "ClusterDelta_PremiumVolume_3.9", 0, i)
    Индикатор компилится без ошибок, но при добавлении на график дает ошибку:
    "ClusterDelta_PremiumVolume_3.9 GBPUSD,H4: cannot set millisecond timer (100)"

    Не подскажите, что не так?

    Заранее благодарю

  2. #2
    ClusterDelta.com Team
    Регистрация
    27.10.2011
    Сообщений
    4,258
    Сказал(а) спасибо
    473
    Поблагодарили 2,158 раз(а) в 1,129 сообщениях
    Цитата Сообщение от kamalligator Посмотреть сообщение
    Добрый день!
    Пытаюсь задействовать индикатор обьема cluster delta в своем индикаторе. Вызываю его таким способом: iCustom(NULL, 0, "ClusterDelta_PremiumVolume_3.9", 0, i)
    Индикатор компилится без ошибок, но при добавлении на график дает ошибку:
    "ClusterDelta_PremiumVolume_3.9 GBPUSD,H4: cannot set millisecond timer (100)"
    Не подскажите, что не так?
    Заранее благодарю
    Хм, хороший вопрос. Для изменения данных индикатора должно произойти какое-то событие (входящий тик), но по опыту было замечено, что активность фьючерса выше чем форекса (или ДЦ), по этому для постоянного обновления индикатора используется таймер с частотой 100 мс для регулярной проверки входящих буферов. Формально, его можно отключить, в коде надо найти где устанавливается EventSetMilisecondTimer и закомментировать эту строку. Глобально это никак не повлияет на показания индикатора.

  3. #3
    Участник
    Регистрация
    19.01.2013
    Сообщений
    257
    Сказал(а) спасибо
    32
    Поблагодарили 161 раз(а) в 104 сообщениях
    cannot set millisecond timer это ошибка терминала, которую никак не могут пофиксить. ее по идее вообще быть не должно никогда. с нескольких попыток таймер запустить обычно получается.
    НО. при вызове индикатора через iCustom таймеры в нем все равно не работают. Поэтому в этом случае их можно даже не делать
    Индикаторы ClusterX | Индикаторы OandaX

  4. #4
    ClusterDelta.com Team
    Регистрация
    27.10.2011
    Сообщений
    4,258
    Сказал(а) спасибо
    473
    Поблагодарили 2,158 раз(а) в 1,129 сообщениях
    Цитата Сообщение от TheXpert Посмотреть сообщение
    cannot set millisecond timer это ошибка терминала, которую никак не могут пофиксить. ее по идее вообще быть не должно никогда. с нескольких попыток таймер запустить обычно получается.
    НО. при вызове индикатора через iCustom таймеры в нем все равно не работают. Поэтому в этом случае их можно даже не делать
    Тут момент в том, что обновление индикаторов премиум висит на двух событиях - по тику и по времени, и при iCustom таймер инициализируется непосредственно в вызываемом индикаторе, а соответственно лучше править код.

  5. #5
    Пользователь
    Регистрация
    18.07.2017
    Сообщений
    7
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Что собственно хочу сделать - индикатор силы Елдера.
    Взял стандартный индикатор МТ4 ForceIndex и заменил Volume[i] на iCustom(NULL, 0, "ClusterDelta_PremiumVolume_3.9", 0, i).
    Не работает, ошибку указанную в первом посте дает не всегда, но вот что выводит: http://prntscr.com/hnr1r3

    Помоги разобраться, плиз!

    //+------------------------------------------------------------------+
    //| Force Index indicator |
    //+------------------------------------------------------------------+
    int start()
    {
    int nLimit;
    int nCountedBars=IndicatorCounted();
    //---- insufficient data
    if(Bars<=ExtForcePeriod) return(0);
    //---- last counted bar will be recounted
    if(nCountedBars>ExtForcePeriod) nCountedBars--;
    nLimit=Bars-nCountedBars;
    //---- Force Index counted
    for(int i=0; i<nLimit; i++)
    ExtForceBuffer[i]=iCustom(NULL, 0, "ClusterDelta_PremiumVolume_3.9", 0, i)*
    (iMA(NULL,0,ExtForcePeriod,0,ExtForceMAMethod,ExtF orceAppliedPrice,i)-
    iMA(NULL,0,ExtForcePeriod,0,ExtForceMAMethod,ExtFo rceAppliedPrice,i+1));
    //---- done
    return(0);
    }

  6. #6
    ClusterDelta.com Team
    Регистрация
    27.10.2011
    Сообщений
    4,258
    Сказал(а) спасибо
    473
    Поблагодарили 2,158 раз(а) в 1,129 сообщениях
    Цитата Сообщение от kamalligator Посмотреть сообщение
    Что собственно хочу сделать - индикатор силы Елдера.
    Взял стандартный индикатор МТ4 ForceIndex и заменил Volume[i] на iCustom(NULL, 0, "ClusterDelta_PremiumVolume_3.9", 0, i).
    Не работает, ошибку указанную в первом посте дает не всегда, но вот что выводит: http://prntscr.com/hnr1r3

    Помоги разобраться, плиз!

    //+------------------------------------------------------------------+
    //| Force Index indicator |
    //+------------------------------------------------------------------+
    int start()
    {
    int nLimit;
    int nCountedBars=IndicatorCounted();
    //---- insufficient data
    if(Bars<=ExtForcePeriod) return(0);
    //---- last counted bar will be recounted
    if(nCountedBars>ExtForcePeriod) nCountedBars--;
    nLimit=Bars-nCountedBars;
    //---- Force Index counted
    for(int i=0; i<nLimit; i++)
    ExtForceBuffer[i]=iCustom(NULL, 0, "ClusterDelta_PremiumVolume_3.9", 0, i)*
    (iMA(NULL,0,ExtForcePeriod,0,ExtForceMAMethod,ExtF orceAppliedPrice,i)-
    iMA(NULL,0,ExtForcePeriod,0,ExtForceMAMethod,ExtFo rceAppliedPrice,i+1));
    //---- done
    return(0);
    }
    попробуйте поменять цикл в этой строке таким образом:

    for(int i=0; i<Bars; i++)

+ Ответить в теме

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
           

 


(C) 2009-2023 ClusterDelta.com.