내 EA가 이중 항목을 수행합니다. - 페이지 11

 

첫 번째 스레드로 표시되는 이 스레드에 대한 업데이트가 있다고 생각했습니다.

그래서 아직 서비스 데스크에서 업데이트가 없다고 생각합니까?

 

안녕. 이중 입력에 문제가 있습니다(예기치 않게 :)). 제 문제를 도와주시겠습니까? 이 주제에서 종종 sleep() 함수 를 볼 수 있지만 어디에서 사용해야 하는지 모르겠습니다.

그게 내 프로그램입니다.

 //+------------------------------------------------------------------+
//| Externí vstupní parametry strategie                              |
//+------------------------------------------------------------------+
extern double Stoploss_v_pipech = 1000 ; // definice stop lossu
extern double Profit_target_v_pipech = 2000 ; // definice profit targetu
extern double Velikost_pozice = 0.01 ; // definice velikosti pozice pro obchodování
extern double ADXP = 14 ;
extern double LMAP = 21 ;
extern double SMAP = 5 ;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  { return ( 0 );}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  { return ( 0 );}
//+------------------------------------------------------------------+
//| Expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//+------------------------------------------------------------------+
//| Definice proměnných                                              |
//+------------------------------------------------------------------+
   int D = DayOfWeek();                       // zjistí den v týdnu (neděle=0 … pátek=5)
   int m = TimeMinute( TimeCurrent ());         // zjistí aktuální minutu
   int h = TimeHour( TimeCurrent ());           // zjistí aktuální hodinu
   int ticket, q, p, close;                   // proměnná pro zadání příkazu, počítadlo
   int maxDuration = 5 * 60 ;
   int duration = TimeCurrent () - OrderOpenTime();
   double aLMA = iMA ( Symbol (), PERIOD_M1 ,LMAP, 0 , MODE_LWMA , PRICE_CLOSE , 2 );
   double bLMA = iMA ( Symbol (), PERIOD_M1 ,LMAP, 0 , MODE_LWMA , PRICE_CLOSE , 1 );
   double aSMA = iMA ( Symbol (), PERIOD_M1 ,SMAP, 0 , MODE_LWMA , PRICE_CLOSE , 2 );
   double bSMA = iMA ( Symbol (), PERIOD_M1 ,SMAP, 0 , MODE_LWMA , PRICE_CLOSE , 1 );
   double ADX = iADX ( Symbol (), PERIOD_M1 ,ADXP, PRICE_CLOSE , 0 , 1 );
   double SL = Stoploss_v_pipech* Point ;       // převod pipového stoplossu na cenové vyjádření
   double PT = Profit_target_v_pipech* Point ;   // převod pipového profitu na cenové vyjádření
   int Magic_number = 1001 ;                   // identifikační číslo strategie
   string Text = "Moje první strategie" ;       // komentář  

//+------------------------------------------------------------------+
//| Výstup kontraktů                                                 |
//+------------------------------------------------------------------+
for (p = 0 ;p < OrdersTotal ();p++)
{ if ( OrderSelect (p, SELECT_BY_POS, MODE_TRADES)== true && OrderMagicNumber()==Magic_number && duration > maxDuration)   //&& duration > maxDuration)
   { if (OrderType()==OP_BUY) {close=OrderClose(OrderTicket(),Velikost_pozice,Bid, 2 ,Yellow);}
     if (OrderType()==OP_SELL) {close=OrderClose(OrderTicket(),Velikost_pozice,Ask, 2 ,Yellow);}}}

//+------------------------------------------------------------------+
//| Omezovač počtu vstupů                                            |
//+------------------------------------------------------------------+
for (q = 0 ; q < OrdersTotal (); q++)
    { if ( OrderSelect (q, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber()==Magic_number)
    { return ( 0 );}}
//+------------------------------------------------------------------+
//| Podmínka pro prodej (SELL/SHORT)                                 |
//+------------------------------------------------------------------+
if (D >= 1 && D < 5 && aLMA < aSMA && bLMA > bSMA && ADX > 25 )
   {ticket = OrderSend ( Symbol (),OP_SELL,Velikost_pozice,Bid, 0 ,Bid+SL,Bid-PT,Text, Magic_number, 0 ,Red);}
   

//+------------------------------------------------------------------+
//| Podmínka pro nákup (BUY/LONG)                                    |
//+------------------------------------------------------------------+
if (D >= 1 && D < 5 && aLMA > aSMA && bLMA < bSMA && ADX > 25 )
   {ticket = OrderSend ( Symbol (),OP_BUY,Velikost_pozice,Ask, 0 ,Ask-SL,Ask+PT,Text, Magic_number, 0 ,Blue);}
  

return ( 0 );}
 
topas :

안녕. 이중 입력에 문제가 있습니다(예기치 않게 :)). 제 문제를 도와주시겠습니까? 이 주제에서 종종 sleep() 함수를 볼 수 있지만 어디에서 사용해야 하는지 모르겠습니다.

그게 내 프로그램입니다 :

이 주제는 mql4 와 관련이 없는 mql5에 관한 것입니다.
 
topas :

안녕. 이중 입력에 문제가 있습니다(예기치 않게 :)). 제 문제를 도와주시겠습니까? 이 주제에서 종종 sleep() 함수를 볼 수 있지만 어디에서 사용해야 하는지 모르겠습니다.

그게 내 프로그램입니다 :

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

2개 주문 열기

와후 , 2014.11.18 15:38

 //+------------------------------------------------------------------+

//| Externí vstupní parametry strategie                              |

//+------------------------------------------------------------------+

   extern double Stoploss_v_pipech= 1000 ; // definice stop lossu

   extern double Profit_target_v_pipech= 2000 ; // definice profit targetu

   extern double Velikost_pozice= 0.01 ; // definice velikosti pozice pro obchodování

   extern double ADXP= 14 ;

   extern double LMAP= 21 ;

   extern double SMAP= 5 ;

//+------------------------------------------------------------------+

//| Expert initialization function                                      |

//+------------------------------------------------------------------+

   int init()

     { return ( 0 );}

//+------------------------------------------------------------------+

//| Expert deinitialization function                                 |

//+------------------------------------------------------------------+

   int deinit()

     { return ( 0 );}
//+------------------------------------------------------------------+

//| Expert start function                                            |

//+------------------------------------------------------------------+

   int start()

     {

       //+------------------------------------------------------------------+

       //| Definice proměnných                                              |

       //+------------------------------------------------------------------+

       int D=DayOfWeek();                       // zjistí den v týdnu (neděle=0 … pátek=5)

       int m=TimeMinute( TimeCurrent ());         // zjistí aktuální minutu

       int h=TimeHour( TimeCurrent ());           // zjistí aktuální hodinu

       int ticket,q,p,close;                   // proměnná pro zadání příkazu, počítadlo

       int maxDuration= 5 * 60 ;

       double aLMA= iMA ( Symbol (), PERIOD_M1 ,LMAP, 0 , MODE_LWMA , PRICE_CLOSE , 2 );

       double bLMA= iMA ( Symbol (), PERIOD_M1 ,LMAP, 0 , MODE_LWMA , PRICE_CLOSE , 1 );

       double aSMA= iMA ( Symbol (), PERIOD_M1 ,SMAP, 0 , MODE_LWMA , PRICE_CLOSE , 2 );

       double bSMA= iMA ( Symbol (), PERIOD_M1 ,SMAP, 0 , MODE_LWMA , PRICE_CLOSE , 1 );

       double ADX= iADX ( Symbol (), PERIOD_M1 ,ADXP, PRICE_CLOSE , 0 , 1 );

       double SL=Stoploss_v_pipech* Point ;       // převod pipového stoplossu na cenové vyjádření

       double PT=Profit_target_v_pipech* Point ;   // převod pipového profitu na cenové vyjádření

       int Magic_number= 1001 ;                   // identifikační číslo strategie

       string Text= "5 minutes EA" ;       // komentář  

       //+------------------------------------------------------------------+

       //| Výstup kontraktů                                                 |

       //+------------------------------------------------------------------+

       for (p= 0 ;p< OrdersTotal ();p++)

        {
         if ( OrderSelect (p,SELECT_BY_POS,MODE_TRADES)== true && OrderMagicNumber()==Magic_number)
           {
             int duration= TimeCurrent ()-OrderOpenTime();
             if (duration>maxDuration)
              {
                 {
                   if (OrderType()==OP_BUY) {close=OrderClose(OrderTicket(),Velikost_pozice,Bid, 2 ,Yellow);}

                   if (OrderType()==OP_SELL) {close=OrderClose(OrderTicket(),Velikost_pozice,Ask, 2 ,Yellow);}
                 }
              }
           }
        }

       //+------------------------------------------------------------------+

       //| Omezovač počtu vstupů                                            |

       //+------------------------------------------------------------------+

       for (q= 0 ; q< OrdersTotal (); q++)

        {
         if ( OrderSelect (q,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==Magic_number)

           { return ( 0 );}
        }

       //+------------------------------------------------------------------+

       //| Podmínka pro prodej (SELL/SHORT)                                 |

       //+------------------------------------------------------------------+

       if (D>= 1 && D< 5 && aLMA<aSMA && bLMA>bSMA && ADX> 25 )

        {ticket= OrderSend ( Symbol (),OP_SELL,Velikost_pozice,Bid, 0 ,Bid+SL,Bid-PT,Text,Magic_number, 0 ,Red);}


       //+------------------------------------------------------------------+

       //| Podmínka pro nákup (BUY/LONG)                                    |

       //+------------------------------------------------------------------+

       if (D>= 1 && D< 5 && aLMA>aSMA && bLMA<bSMA && ADX> 25 )

        {ticket= OrderSend ( Symbol (),OP_BUY,Velikost_pozice,Ask, 0 ,Ask-SL,Ask+PT,Text,Magic_number, 0 ,Blue);}

       return ( 0 );
     }