簡體   English   中英

如何在MQL4中獲得最近2小時的標准偏差的最大值?

[英]How to get the highest value of a standard deviation for last 2 hours in MQL4?

我正在嘗試開發一個EA交易,到目前為止,我仍然可以理解和編寫它,當新的欄打開時,它將下訂單。

int BarsCount = 0;

int start()
{   if ( Bars >  BarsCount )
    {    OrderSend( Symbol(), OP_BUY, 0.01, Ask, 2, NULL, NULL );                            
         BarsCount = Bars;
    }
    return( 0 );
}

如何獲得最近2小時的標准偏差的最大值到一個變量?

例如:假設EA在30分鍾圖表中運行,bar1的標准偏差值為0.003,bar2的閾值為0.001,bar3的為0.004,bar4的為0.001。 因此,過去4小時的最高值是bar3,其值為0.004,那么如何將該值用作變量?

當此公式為真時,我正在嘗試制作EA下單:

 ( ( current_value_of_standard_deviation
   / highest_value_of_standard_deviation_for_last_2_hours
     )
   * 100
   ) > 10

使用內置工具:

input  int    MA_period = 27;
       int    BarsCount = 0;
       int    nCells2CMP= ( PERIOD_H1 * 2 / PERIOD_CURRENT ) - 1;
       double Sig2H[100];

void OnInit(){
     ...
}

void OnTick(){
     if ( Bars >  BarsCount ){
          if (    BarsCount == 0 ){
                  for ( int i = MA_period; i >  0; i-- ){
                        Sig2H[i] = iStdDev( _Symbol,
                                            PERIOD_CURRENT,
                                            0,
                                            MODE_SMA,
                                            PRICE_CLOSE,
                                            i
                                            );
                  }
          }
          for ( int i = MA_period; i > 1; i-- )  Sig2H[i] = Sig2H[i-1];
          Sig2H[1] = iStdDev( _Symbol,           // symbol 
                              PERIOD_CURRENT,    // timeframe 
                              MA_period,         // MA averaging period 
                              0,                 // MA shift 
                              MODE_SMA,          // MA averaging method 
                              PRICE_CLOSE,       // applied price 
                              1                  // shift 
                              );
     }
     Sig2H[0] = iStdDev( _Symbol,           // symbol 
                         PERIOD_CURRENT,    // timeframe 
                         MA_period,         // MA averaging period 
                         0,                 // MA shift 
                         MODE_SMA,          // MA averaging method 
                         PRICE_CLOSE,       // applied price 
                         0                  // shift 
                         );
     if ( 0.1 < ( Sig2H[0]
                / Sig2H[ArrayMaximum( Sig2H,
                                      nCells2CMP,
                                      1
                                      )
                        ]
                  )
          ){...}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM