В тестере работает, а в реале на графике нет. В чем беда? ПОМОГИТЕ пожалуйста

 

Добрый день, пытаюсь создать помощника в виде советника, и дело в том что всё создание "как работает", я опробывал на тестере стратегий.

В тестере стратегий всё работает, но в реале кидаю на график и не работает. Не работает именно МЕНЮ!
в чем проблема помогите пожалуйста

//вывожу BOX
//вывожу check
----
//+------------------------------------------------------------------+
int OnInit()
  { 
  
if(ObjectFind(0,"BOX")!=0)
ButtonPicture(0,"BOX",0,330,8,"::BOX.bmp","::BOX.bmp",76,16,0,0,false,CORNER_LEFT_UPPER,ANCHOR_CENTER,clrBlack,STYLE_SOLID,1,false,false,true,1);
ButtonPicture(0,"check",0,7000,7000,"::check.bmp","::check.bmp",77,16,0,0,false,CORNER_LEFT_UPPER,ANCHOR_CENTER,clrBlack,STYLE_SOLID,1,false,false,true,1);

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {

 
      if(ObjectFind(0,"BOX")==0) //нажимаем кнопку МЕНЮ
         if(GetState("BOX"))
           {
            ObjectSetInteger(ChartID(),"check",OBJPROP_XDISTANCE,330); отображается кнопка вкл/откл. чего либо
            ObjectSetInteger(ChartID(),"check",OBJPROP_YDISTANCE,24); 

      if(ObjectFind(0,"check")==0) //нажимаем кнопку check
         if(GetState("check"))
           {
           тут показ
           }
           else
           {
           тут скрытие      
           }
      //--- Панель 1
           }
           else
           {
          тут скрытие всего при нажатии повторно кнопки МЕНЮ
           }

  }

//+------------------------------------------------------------------+
bool GetState(string aName)
  {
   long value=0;
   ObjectGetInteger(0,aName,OBJPROP_STATE,0,value);
   return  (bool)value;
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
 
Ребят, не работает само меню, хотя в индикаторе всё работает. да и в тестере стратегий всё нормально работает, почему же когда кидаю на график не работает оно? Могли бы помочь мне понять в чем беда? Так же если не получится помочЬ, попросил бы вас кинуть рабочее меню в виде советника. Спасибо всем кто дочитал
 
Уверены, что конструкция должна быть именно void OnChartEvent()?
 
Vitaly Murlenko:
Уверены, что конструкция должна быть именно void OnChartEvent()?

нет, не уверен, но я пробывал в другие места вставлять код, тоже самое.
Где он должен быть?
В void OnChartEvent() у меня в индикаторе стоит, и только в нем корректно работает. Как в советнике? как правильно?

 
ares96:

Добрый день, пытаюсь создать помощника в виде советника, и дело в том что всё создание "как работает", я опробывал на тестере стратегий.

В тестере стратегий всё работает, но в реале кидаю на график и не работает. Не работает именно МЕНЮ!
в чем проблема помогите пожалуйста

Посмотрите в этой ветке, думаю, найдете решение:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

OnChartEvent: Взаимоотношение пользователя с графической панелью в тестере стратегий

Vladislav Andruschenko, 2018.02.21 18:21

Всем привет!

ни для кого ни секрет, что в тестере не работает функция OnChartEvent() 

поэтому приходится пользоваться такой конструкцией:

   if(((id==CHARTEVENT_OBJECT_CLICK && (sparam=="SAMPLE"))
      || ObjectGetInteger(0,"SAMPLE",OBJPROP_STATE)==true))


Первая строка для реального графика, а вторая для тестера! 

НО есть большое но! 

Для того, чтобы интерфейс "не страдал", приходится читать состояние кнопок каждый тик.

Это влияет на скорость работы панели в тестере! 


Есть ли какой-то способ выйти из этих тормозов? может я чего-то пропустил? 


 
Vasiliy Pushkaryov:
Посмотрите в этой ветке, думаю, найдете решение:

Спасибо, но у меня наоборот в тестере всё работает. Как быть в данном случае?

 
ares96:

Добрый день, пытаюсь создать помощника в виде советника, и дело в том что всё создание "как работает", я опробывал на тестере стратегий.

В тестере стратегий всё работает, но в реале кидаю на график и не работает. Не работает именно МЕНЮ!
в чем проблема помогите пожалуйста

а так:

.... ObjectFind(ChartId(), ...


все нули поменяйте 

тут: ObjectGetInteger(0

и тут: ObjectFind(0

или тут на 0: ObjectSetInteger(ChartId()

или напишите функцию так: ChartId() вместо ChartID()

творите и все будет

 
Renat Akhtyamov:

а так:


все нули поменяйте 

тут: ObjectGetInteger(0

и тут: ObjectFind(0

или тут на 0: ObjectSetInteger(ChartID()

не помогло, спасибо((

 
ares96:

не помогло, спасибо((

это?

или напишите функцию так: ChartId() вместо ChartID()

 
Renat Akhtyamov:

это?

или напишите функцию так: ChartId() вместо ChartID()

не в этом дело) не помогло(

 
Что-то тихо шифером шурша едет крыша не спеша. Используется функция OnChartEvent(), но в тестере работает. И никого это не смущает.