Советники: iRSI rule

 

iRSI rule:

Сравнивается значение RSI на баре #1 и (максимальное или минимальное) значение RSI в пределах 'RSI windows' баров

iRSI rule

Автор: Vladimir Karputov

 
Автоматизированная торговля :

Правило iRSI :

Автор: Владимир Карпутов

***потрясающе!

результаты в моих тестах очень хорошие!


Пожалуйста, не прекращайте улучшать этот советник, я думаю, он заслуживает трейлинг-стопа, безубыточности. Это потрясающе!

 
Да, работает действительно не плохо.
 
My friend,
Could you add stop/take/breakeven etc in this code? I tried to do this, but I didn't understand the code very well, it's at a higher level of knowledge. I think it would be really cool and complete, as the code has been working beautifully.
 
diegotfcastro:
My friend,
Could you add stop/take/*** etc in this code? I tried to do this, but I didn't understand the code very well, it's at a higher level of knowledge. I think it would be really cool and complete, as the code has been working beautifully.

Я добавлю все функции из торгового движка и опубликую 'Full' версию ...

 
Vladimir Karputov:

Я добавлю все функции из торгового движка и опубликую 'Full' версию ...

Люблю вас

 

Владимир, здравствуйте! Гоняю две недели советник на демке и возник ряд вопросов касательно логики его работы.

На сколько я понял согласно представленному описанию, логика работы у него следующая:

Если в рынке нет открытых позиций и значение RSI на баре 1 меньше самого минимального значения RSI на протяжении последних дести баров (при RSI Window 10) - советник покупает.

Если в рынке нет открытых позиций и значение RSI на баре 1 больше самого максимального значения RSI на протяжении последних дести баров (при RSI Window 10) - советник продает.

При наличии открытых позиций и поступлении сигнала, советник закрывает имеющиеся позиции и открывает вновь согласно сигнала. Так?

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

В этом может быть проблема?

 
Urinform:

Владимир, здравствуйте! Гоняю две недели советник на демке и возник ряд вопросов касательно логики его работы.

На сколько я понял согласно представленному описанию, логика работы у него следующая:

Если в рынке нет открытых позиций и значение RSI на баре 1 меньше самого минимального значения RSI на протяжении последних дести баров (при RSI Window 10) - советник покупает.

Если в рынке нет открытых позиций и значение RSI на баре 1 больше самого максимального значения RSI на протяжении последних дести баров (при RSI Window 10) - советник продает.

При наличии открытых позиций и поступлении сигнала, советник закрывает имеющиеся позиции и открывает вновь согласно сигнала. Так?

***

Вроде Вы правильно всё поняли ...

Urinform:

***

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

В этом может быть проблема?

Вероятно причина во внешнем вмешательстве (меняется Magic number у позиции)

 
Vladimir Karputov:

Вроде Вы правильно всё поняли ...

Вероятно причина во внешнем вмешательстве (меняется Magic number у позиции)

А чтобы этого не происходило magic должен какое иметь значение на Вашем эксперте? 0?

Просто дело в том, что на закрывающем боте я вообще не могу задать magic.

 
Urinform:

А чтобы этого не происходило magic должен какое иметь значение на Вашем эксперте? 0?

Просто дело в том, что на закрывающем боте я вообще не могу задать magic.

Проверьте - у Вас точно версия 1.001?

В блоке SearchTradingSignals не должно быть заблокированных строк:

//+------------------------------------------------------------------+
//| Search trading signals                                           |
//+------------------------------------------------------------------+
bool SearchTradingSignals(void)
  {
   double rsi[];
   ArraySetAsSeries(rsi,true);
   int start_pos=0,count=(InpRSIWindow==0)?3:2+InpRSIWindow;
   if(!iGetArray(handle_iRSI,0,start_pos,count,rsi))
     {
      return(false);
     }
   int size_need_position=ArraySize(SPosition);
   if(size_need_position>0)
      return(true);
//---
   int max=ArrayMaximum(rsi,2,WHOLE_ARRAY);
   int min=ArrayMinimum(rsi,2,WHOLE_ARRAY);
   double rsi_max=rsi[max];
   double rsi_min=rsi[min];
//--- BUY Signal
   if(rsi[1]<rsi_min)
     {
      ArrayResize(SPosition,size_need_position+1);
      SPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
      if(InpPrintLog)
         Print(__FILE__," ",__FUNCTION__,", OK: ","Signal BUY");
      return(true);
     }
//--- SELL Signal
   if(rsi[1]>rsi_max)
     {
      ArrayResize(SPosition,size_need_position+1);
      SPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
      if(InpPrintLog)
         Print(__FILE__," ",__FUNCTION__,", OK: ","Signal SELL");
      return(true);
     }
//---
   return(true);
  }
 
Vladimir Karputov:

Проверьте - у Вас точно версия 1.001?

В блоке SearchTradingSignals не должно быть заблокированных строк:

1.000 у меня

заблокированных строк нет