СТРАТЕГИЯ ИШИМОКУ - страница 2

 

Я немного "упростил" кодирование и начал тестирование стратегии.

//+------------------------------------------------------------------+
//|                                              ICHIMOKU_SIMPLE.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 Lots = 1.0;
extern double Tenkan = 9;
extern double Kijun = 26;   
//----
int start()
   {
   double tenkan_sen;
   double kijun_sen;
   int ticket;
  
// check for long position (BUY) possibility
      if(tenkan_sen>kijun_sen)
         {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+Point,"ichimoku",16384,0,Green);
         if(ticket>0)
            {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
            }
         else Print("Error opening BUY order : ",GetLastError()); 
         return(0); 
         
         }   //  added by RaptorUK
            
   // SELL 
     {
      OrderSelect(SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL && // check for opened position 
         OrderSymbol()==Symbol()) // check for symbol
         {
         if(OrderType()==OP_BUY) // long position is opened
            {
            // should it be closed?
            if(tenkan_sen<kijun_sen)   //  removed surplus (  RaptorUK
               {
               OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
               return(0); // exit
               }
            }
         }
      }
  return(0);
   }

Тест стратегии показывает, что качество моделирования составляет 90% и в журнале нет ошибок.

В журнале написано: 2012.01.18 20:29:44 ICHIMOKU_F1 GBPCHF,H1: загружено успешно
2012.01.18 20:29:47 ICHIMOKU_F1 входы: Lots=1; Tenkan=9; Kijun=26;

Однако никаких сделок не было совершено, а значит, не было и результатов.

Может ли быть проблема с кодом?

 
RaptorUK:

Вы инициализируете эти переменные, но не даете им никаких значений. . .

... поэтому тест всегда будет ложным. Этот советник никогда не разместит ордер.

Вы пропустили мое предыдущее сообщение?
 
Думаю, да, мои извинения. Но не является ли это немного необычным, в данном случае, поскольку тенкан-сен и киджун-сен будут иметь разные значения при каждом открытом ордере. Так что это, конечно, означает, что значения не могут быть заданы. Единственное свойство, которое будет одинаковым для каждого открытого ордера - это то, что значение tenkan-sen будет выше, чем значение kijun-sen.
 
ToBa:
Думаю, да, мои извинения. Но разве это не немного необычно, в данном случае, так как tenkan-sen и kijun-sen будут иметь разные значения при каждом открытом ордере.

Но вы не получаете значения, которые меняются с каждым новым баром... Вы объявляете переменные и никогда не устанавливаете их... поэтому они никогда не меняются, вы ожидали, что они изменятся по волшебству?

 
ToBa:

Я немного "упростил" кодирование и начал тестирование стратегии.

Тест стратегии показывает, что качество моделирования составляет 90% и в журнале нет ошибок.

В журнале написано: 2012.01.18 20:29:44 ICHIMOKU_F1 GBPCHF,H1: загружено успешно
2012.01.18 20:29:47 ICHIMOKU_F1 входы: Lots=1; Tenkan=9; Kijun=26;

Однако никаких сделок не было совершено, а значит, не было и результатов.

Может ли быть проблема в коде?


"упрощенный" Почему так....

Если вы задали tenkan-sen и kijun-sen правильную кодировку для получения их значения и поместили ее в этот код

тогда вы будете получать каждый тик tenkan_sen>kijun_sen новую сделку.

Сколько сделок вы хотите открыть?

 
deVries:


"упрощенно" Почему именно так....

Если вы задали tenkan-sen и kijun-sen правильную кодировку, чтобы получить их значение, и поместили ее сюда

тогда вы будете получать каждый тик tenkan_sen>kijun_sen новую сделку.

Сколько сделок вы хотите открыть?


Цель - разместить один открытый ордер (1,0 лот), как только тенкан-сен станет больше киджун-сен, и удерживать позицию до тех пор, пока тенкан-сен не станет меньше киджун-сен.
 
ToBa:

Цель - разместить один открытый ордер (1,0 лот), как только тенкан-сен станет больше киджун-сен, и удерживать позицию до тех пор, пока тенкан-сен не станет меньше киджун-сен.
Откуда вы берете эти значения?
 
RaptorUK:
Откуда вы берете эти значения?
Я не совсем понимаю, что вы имеете в виду. Из примера с MACD следует, что можно использовать следующее: if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious &&
.

MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious) и никаких значений не дается.

 
Хорошо, я наконец понял, что вы имеете в виду. Хотя я не знаю, как получить значения.
 
ToBa:
Хорошо, я наконец понял, что вы имеете в виду. Хотя я не знаю, как получить значения.
Хорошо, это уже прогресс :-)
Причина обращения: