Общие вопросы по разработке > Не работает индикатор после обновления терминала

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
Scalpel
Сообщения: 2
Зарегистрирован: 15 мар 2018, 11:49

Не работает индикатор после обновления терминала

Непрочитанное сообщение Scalpel » 15 мар 2018, 12:19

Добрый день,

пользовался собственным индикатором, который выводит сообщение с помощью функции ShowMessage(), и подает звуковой сигнал с помощью PlaySound при выходе цены за пороговые значения (PriceLow, PriceHigh - в коде).

После обновления терминала до версии 4.0.1890.1424, в участке кода, где переменным AlertHigh и AlertLow присваиваются текущие значения цены, почему-то переменные не изменяют своего значения.

Не могу понять почему так происходит, может быть не совпадение типов переменных AlertHigh и Input.Close[0]?

Помогите пожалуйста. Код прикладываю.


Код: Выделить всё


function Initialize()
{
  IndicatorName = "PriceInformer";
  AddParameter("PriceLow", 50);
  AddParameter("PriceHigh", 60);   
  AddParameter("TicksDelay", 10);   
  AddParameter("isShowMessage", 1);   
  AddParameter("isPlaySound", 1);   


  PriceStudy = true;
  AddInput("Input", Inputs.Candle);         
  AddSeries("A", DrawAs.Custom, Color.Red, AxisType.Default, true, Axes.Parent);
  AddGlobalVariable("Tick", Types.Int);          
  AddGlobalVariable("AlertLow", Types.Double);          
  AddGlobalVariable("AlertHigh", Types.Double);          
 
}

function Evaluate()
{
   
   // Последнее значение цены
   if (CurrentIndex == MaxIndex)
   {
      if ( Input.Close[0] > PriceHigh)
      {
            AlertHigh = Input.Close[0];      //Здесь переменная AlertHigh не принимает значение Input.Close[0]
      }
         
      if ( Input.Close[0] < PriceLow)
      {
          AlertLow = Input.Close[0];       //Здесь переменная AlertLow не принимает значение Input.Close[0]
      }
      
      Tick = Tick+1;
      //ShowMessage( BarTime().Seconds); //BarTime().Seconds
      if (Tick >= TicksDelay )
      {
         Tick = 0;
         if (AlertHigh>0){
            if (isShowMessage == 1){
               ShowMessage("Цена ВЫШЕ:" + AlertHigh);
            }
            
            if (isPlaySound == 1){
               PlaySound( InnerSystemSounds.Exclamation );
            }
            AlertHigh = 0;
         }
         
         if (AlertLow>0){
            if (isShowMessage == 1){
               ShowMessage("Цена НИЖЕ:" + AlertLow);
            }
            
            if (isPlaySound == 1){
               PlaySound( InnerSystemSounds.Asterisk );
            }
            AlertLow = 0;
         }
      }
      
   //   InnerSystemSounds.Exclamation – восклицание
   //   InnerSystemSounds.Asterisk – внимание
   //   InnerSystemSounds.Beep – Сирена
   //   InnerSystemSounds.Hand – Стоп
   //   InnerSystemSounds.Question – Вопрос

   }

}





Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

Re: Не работает индикатор после обновления терминала

Непрочитанное сообщение evge » 15 мар 2018, 16:13

Вроде бы работает в версии АД 4.0.1890.1424

PriceInformer-01.png
PriceInformer-01.png (5.04 КБ) 9109 просмотров
никогда такого не было и вот опять

Scalpel
Сообщения: 2
Зарегистрирован: 15 мар 2018, 11:49

Re: Не работает индикатор после обновления терминала

Непрочитанное сообщение Scalpel » 15 мар 2018, 17:49

Спасибо Вам за быстрый ответ!!

Удалил свой индикатор и скомпилировал заново (что-то сразу в голову не пришло это сделать) и заработало.

Очень рад, а то без него тяжело, запускаю его и занимаюсь своими делами, а когда цены уходят - мне сообщение, даже поверх окон и плюс звук.


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей