Проблема с советником. - страница 2

 
mt1002:

нет

А так попробуйте

datetime TM;

int OnInit()
{
  TM = 0;
}

void OnTick()
{
 if (TM!=Time[0])
 {  
   TM = Time[0];
   double a=iCustom(NULL,PERIOD_CURRENT,"TEST_1",1,2,50,0,1);
   double b=iCustom(NULL,PERIOD_CURRENT,"TEST_2",1,3,50,0,1);
   if (a<b)
   {
      ObjectCreate(0,"h_"+TimeToString(Time[1]),OBJ_ARROW,0,0,0,0,0);          
      ObjectSetInteger(0,"h_"+TimeToString(Time[1]),OBJPROP_ARROWCODE,159);    
      ObjectSetInteger(0,"h_"+TimeToString(Time[1]),OBJPROP_TIME,Time[1]);       
      ObjectSetDouble(0,"h_"+TimeToString(Time[1]),OBJPROP_PRICE,Bid);
      ObjectSet("h_"+TimeToString(Time[1]),OBJPROP_COLOR,White);
      ObjectSet("h_"+TimeToString(Time[1]),OBJPROP_WIDTH,3);    
  }
 }
}
 
Vitalii Ananev:

А так попробуйте

Так вообще что то ничего не рисуется(

 
mt1002:

Так вообще что то ничего не рисуется(

Должен рисовать. Когда появится новая свеча и на этой свече будет сигнал от вашего индикатора. Попробуйте в тестере стратегий запустить. Установите галочку "визуализации", а режим тестирования по ценам открытия. Поставьте тестер на паузу и последовательно нажимайте клавишу F12.

 
Vitalii Ananev:

Должен рисовать. Когда появится новая свеча и на этой свече будет сигнал от вашего индикатора. Попробуйте в тестере стратегий запустить. Установите галочку "визуализации", а режим тестирования по ценам открытия. Поставьте тестер на паузу и последовательно нажимайте клавишу F12.

что не то ребята вы советуете, мне кажется какой-то цикл нужно добавлять что бы на истории все это дело оставалось.

 
mt1002:

что не то ребята вы советуете, мне кажется какой-то цикл нужно добавлять что бы на истории все это дело оставалось.

Цикл, нужен для того что бы при первом помещении вашего советника на график он нарисовал стрелки на истории. Если этого не надо то цикл не нужен. При работе если будет сигнал стрелка будет нарисована. Что бы она не удалялась, каждой новой стрелке присваивается уникальное имя. Если вы собираетесь использовать советник для работы в автоматическом режиме то эти стрелки на истории не нужны. Историю же вы торговать не будете.

Кроме того. В вашем первоначальном коде используется сигналы с нулевого бара. Я не знаю какая у вас стратегия, но как правило так не делают, так как нулевой бар еще не сформирован окончательно (параметры его меняются неизменной остается только цена открытия) может появляться много  ложных сигналов.

Если вам нужны стрелки на истории то сделайте индикатор. В советнике на надо делать цикл только ради того что бы нарисовать стрелки, это повлияет на скорость его работы. 

 
Vitalii Ananev:

Цикл, нужен для того что бы при первом помещении вашего советника на график он нарисовал стрелки на истории. Если этого не надо то цикл не нужен. При работе если будет сигнал стрелка будет нарисована. Что бы она не удалялась, каждой новой стрелке присваивается уникальное имя. Если вы собираетесь использовать советник для работы в автоматическом режиме то эти стрелки на истории не нужны. Историю же вы торговать не будете.

Кроме того. В вашем первоначальном коде используется сигналы с нулевого бара. Я не знаю какая у вас стратегия, но как правило так не делают, так как нулевой бар еще не сформирован окончательно (параметры его меняются неизменной остается только цена открытия) может появляться много  ложных сигналов.

Если вам нужны стрелки на истории то сделайте индикатор. В советнике на надо делать цикл только ради того что бы нарисовать стрелки, это повлияет на скорость его работы. 

Мне как раз таки пока нужны данные на истории для анализа пока сделки не планируются. Хотелось бы видеть на истории стрелки, но почему то в советнике они не работают а в индикаторе работают. Странно как-то...

 
mt1002:

Мне как раз таки пока нужны данные на истории для анализа пока сделки не планируются. Хотелось бы видеть на истории стрелки, но почему то в советнике они не работают а в индикаторе работают. Странно как-то...

В советнике тоже должны работать. Просто вы что то не так делаете. Если можно приложите целиком ваш файл, что бы я мог его погонять в тестере.

 

Вот вам пример все работает.

Файлы:
TestArrow.mq4  2 kb
Chart.mqh  15 kb
 

У меня теперь другая проблема у меня почему-то оперативную память жрет после того как я на график кину индикатор(( 

http://joxi.ru/1A5ZvN4CnxLzzr

 

Как я понял дело в этих строках:

double H=NormalizeDouble(iCustom(NULL,PERIOD_CURRENT,"H",5,1,2,30,0,0),5);

double L=NormalizeDouble(iCustom(NULL,PERIOD_CURRENT,"L",5,1,3,30,0,0),5); 

Что тут может быть не так?

Причина обращения: