【问题标题】:How to add close_above_open for a buy indicator in MQL4?如何在 MQL4 中为买入指标添加 close_above_open?
【发布时间】:2022-01-04 14:43:14
【问题描述】:

是否也可以在iHigh() && iClose() && iLow() 的模式中添加close_above_open 条件?

即我想在下面的代码中添加close_above_open。你能帮我知道方法吗?

  const int timePeriodD1=PERIOD_D1;

  if(iHigh(symbol,timePeriodD1,1)>iHigh(symbol,timePeriodD1,2) && iClose(symbol,timePeriodD1,1) >iClose(symbol,timePeriodD1,2) &&
     iLow(symbol,timePeriodD1,1)>iLow(symbol,timePeriodD1,2)){
           //ObjectSetText(d1label,"UP",11, "Verdana", Aqua);
           d1result="UP";
  }else if(iHigh(symbol,timePeriodD1,1)<iHigh(symbol,timePeriodD1,2) && iClose(symbol,timePeriodD1,1) < iClose(symbol,timePeriodD1,2) &&
     iLow(symbol,timePeriodD1,1)< iLow(symbol,timePeriodD1,2)){
           //ObjectSetText(d1label,"DOWN",11, "Verdana", Yellow);
           d1result="DOWN";
        }else{
           //ObjectSetText(d1label,"MIXED",11, "Verdana", White);
           d1result="MIXED";
        }

请问有没有办法写成如下:

if(iHigh(symbol,timePeriodD1,1)>iHigh(symbol,timePeriodD1,2) && iClose(symbol,timePeriodD1,1) >iClose(symbol,timePeriodD1,2) &&
iLow(symbol,timePeriodD1,1)>iLow(symbol,timePeriodD1,2) &&
CloseAboveOpen(symbol,timePeriodD1,1)>CloseAboveOpen(symbol,timePeriodD1,2)

【问题讨论】:

    标签: algorithmic-trading trading mql4 forex technical-indicator


    【解决方案1】:

    Q1是否也可以在iHigh() &amp;&amp; iClose() &amp;&amp; iLow()的模式中添加close_above_open条件?

    是的,它是:

    ...
    if (           iHigh( symbol, timePeriodD1, 1 ) >          iHigh( symbol, timePeriodD1, 2 )
       &&         iClose( symbol, timePeriodD1, 1 ) >         iClose( symbol, timePeriodD1, 2 )
       &&           iLow( symbol, timePeriodD1, 1 ) >           iLow( symbol, timePeriodD1, 2 )
       && CloseAboveOpen( symbol, timePeriodD1, 1 ) > CloseAboveOpen( symbol, timePeriodD1, 2 )
          ){ ... }
    ...
    

    Q2 : 请问有没有办法写成如下...?

    是的,有。
    可以尝试自定义此模板以满足您的进一步需求:

    int CloseAboveOpen( string aSymbolNAME,       /// [DOC-me] Ret-s {+|-}n-pts above Open
                           int aTimeFRAME,
                           int nOffsetBARs ) {
        
        return( (int)( ( iClose( aSymbolNAME, aTimeFRAME, nOffsetBARs )
                       -  iOpen( aSymbolNAME, aTimeFRAME, nOffsetBARs )
                         )
                       * MathPow( 10, (int)MarketInfo( aSymbolNAME, MODE_DIGITS ) )
                       )
                );
                     
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多