[Помогите написать советник, я новичок в MQL и плохо все понимаю. Буду очень признателен. Советник на основании RSI. ] Советник - страница 3

 

"Посмотрите лог. Что там пишется"? - я не понял, простите...

вот я поменял, но изменений нет.

 if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)
 
  if ( iRSI( NULL , 0, 5, PRICE_CLOSE,0)<30) 
  
  {
     OrderSend(Symbol(),OP_BUY,0.1,Ask,3, NormalizeDouble (Bid-StopLoss*Point, Digits), NormalizeDouble (Ask+TakeProfit*Point, Digits));
     
     
     return;

  }  
     if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)
     if ( iRSI( NULL , 0, 5, PRICE_CLOSE,0)>70)
      {
        OrderSend(Symbol(),OP_SELL,0.1,Bid,3, NormalizeDouble (Ask+StopLoss*Point, Digits), NormalizeDouble (Bid-TakeProfit*Point, Digits));
     
      
      
      return(0);

      
       } 


   return(0);
  }


 
PAVEL10:

"Посмотрите лог. Что там пишется"? - я не понял, простите...

вот я поменял, но изменений нет.



Помоч некому, нуу... попробую, предупреждаю програмист я не очень.

(уровень первокласнка (который на линейке 1 сентебря))..

вот на ваш СУД.

//+------------------------------------------------------------------+
//|                                                        e_RSI.mq4 |
//|                      Copyright © 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


extern double TakeProfit=200;
extern double StopLoss = 300;
extern int    Periud   = 11;
int total;                                                // Крличество открытых ордеров 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  
    total=OrdersTotal();                                  // Общее количество ордеров
   if (total==2)return;                                  // Уже открыты оба ордера
//----
 double RSI_0= iRSI( NULL , 0, Periud, PRICE_CLOSE,0);
 double RSI_1= iRSI( NULL , 0, Periud, PRICE_CLOSE,1);
  
 if(RSI_0>30&&RSI_1<30)
     {
      if (total==1)
      {
      OrderSelect(0, SELECT_BY_POS);                     // Выделим ордер
      if (OrderType()==0)return;                         // Если он buy, то не открываемся
      }                                                  // Открываемся
    OrderSend(Symbol(),OP_BUY,0.1,Ask,3, NormalizeDouble (Bid-StopLoss*Point, Digits), NormalizeDouble (Ask+TakeProfit*Point, Digits));
    }
 if(RSI_0<70&&RSI_1>70)
    {
      if (total==1)
      {
      OrderSelect(0, SELECT_BY_POS);                     // Выделим ордер
      if (OrderType()==1)return;                         // Если он sell, то не открываемся
      }                                                  // Открываемся
    OrderSend(Symbol(),OP_SELL,0.1,Bid,3, NormalizeDouble (Ask+StopLoss*Point, Digits), NormalizeDouble (Bid-TakeProfit*Point, Digits));
    }  
//----
   return(0);
  }
//+------------------------------------------------------------------+

даже прогнал в тестере

 
r772ra:

даже прогнал в тестере

Ну и как результаты? Поделитесь опытом оптимизации "неоптимизируемого". Какие уровни лучше 70/30 или 66/33? Какое соотношение сдвиг индикатора/период индикатора лучше? И вообще: как вам?
Самое главное - сделать выводы.

 
e_RSI
Alpari-Demo (Build 229)


СимволEURUSD (Euro vs US Dollar)
Период1 Час (H1) 2012.03.13 00:00 - 2012.03.14 23:00 (2012.03.13 - 2012.03.15)
МодельВсе тики (наиболее точный метод на основе всех наименьших доступных таймфреймов)
ПараметрыTakeProfit=200; StopLoss=300; Periud=11;
Баров в истории1049Смоделировано тиков117816Качество моделирования90.00%
Ошибки рассогласования графиков4
Начальный депозит100.00
Чистая прибыль40.00Общая прибыль40.00Общий убыток-0.00
ПрибыльностьМатожидание выигрыша20.00
Абсолютная просадка1.30Максимальная просадка8.90 (8.27%)Относительная просадка8.27% (8.90)
Всего сделок2Короткие позиции (% выигравших)1 (100.00%)Длинные позиции (% выигравших)1 (100.00%)
Прибыльные сделки (% от всех)2 (100.00%)Убыточные сделки (% от всех)0 (0.00%)
Самая большаяприбыльная сделка20.00убыточная сделка-0.00
Средняяприбыльная сделка20.00убыточная сделка-0.00
Максимальное количествонепрерывных выигрышей (прибыль)2 (40.00)непрерывных проигрышей (убыток)0 (-0.00)
Максимальнаянепрерывная прибыль (число выигрышей)40.00 (2)непрерывный убыток (число проигрышей)-0.00 (0)
Среднийнепрерывный выигрыш2непрерывный проигрыш0

ВремяТипОрдерОбъёмЦенаS / LT / PПрибыльБаланс
12012.03.13 06:04sell10.101.318151.321261.31615
22012.03.13 07:16t/p10.101.316151.321261.3161520.00120.00
32012.03.13 16:04buy20.101.307211.304101.30921
42012.03.13 17:09t/p20.101.309211.304101.3092120.00140.00
 
DmitriyN:

Ну и как результаты? Поделитесь опытом оптимизации "неоптимизируемого". Какие уровни лучше 70/30 или 66/33? Какое соотношение сдвиг индикатора/период индикатора лучше? И вообще: как вам?

Самое главное - сделать выводы.


Это не мне, а PAVEL10:

Какие уровни лучше 70/30 или 66/33?

пусть подбирает.

 
r772ra:

Это не мне, а PAVEL10:

Тогда, совет Павлу 10-му и его начинающим сторонникам. Когда сделаете советник, прогоните его в тестере с разными периодами (например, от 5 до 50) индикатора, разными сдвигами индикатора, постоянным лотом (0,1) и разными уровнями покупок\продаж (например, от 2 до 98). И сделайте соответствующие выводы. Сделать выводы на оснований десятков-сотен тысяч вариантов - очень важно.

 
DmitriyN:

Тогда, совет Павлу 10-му и его начинающим сторонникам. Когда сделаете советник, прогоните его в тестере с разными периодами (например, от 5 до 50) индикатора, разными сдвигами индикатора, постоянным лотом (0,1) и разными уровнями покупок\продаж (например, от 2 до 98). И сделайте соответствующие выводы. Сделать выводы на оснований десятков-сотен тысяч вариантов - очень важно.

разными сдвигами индикатора

это как?

 
r772ra:

разными сдвигами индикатора
это как?

Имел ввиду shift - индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад). Обратите внимание на подчёркнутое слово - "периодов".
https://docs.mql4.com/ru/indicators/iRSI
С TakeProfit и StopLoss тоже можно поиграть. Стратегия неработоспособна, но важны выводы.

 
DmitriyN:

Имел ввиду shift - индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад). Обратите внимание на подчёркнутое слово - "периодов".
https://docs.mql4.com/ru/indicators/iRSI
С TakeProfit и StopLoss тоже можно поиграть. Стратегия неработоспособна, но важны выводы.


Да, я понял, спасибо, просто я подумал как в машке, период: ..... сдвиг: .....
 

Да если использовать iMAOnArray. то и этот сдвиг получится..


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