[英]Can't make iteration with #property strict
我的这段代码正常工作。 基本上,此代码是每5分钟显示五个前柱上的移动平均线的值。 MA的当前值被忽略。
int TrendMinDurationBar = 5,
SlowPeriod = 14,
FastPeriod = 7;
void OnTick()
{
if ( NewBar( PERIOD_M5 ) == true ) MA( PERIOD_M5 );
}
void MA( int TF )
{
double Slow[], Fast[];
ArrayResize( Slow, TrendMinDurationBar + 1 );
ArrayResize( Fast, TrendMinDurationBar + 1 );
for ( int i = 1; i <= TrendMinDurationBar; i++ )
{ Slow[i] = NormalizeDouble( iMA( Symbol(), TF, SlowPeriod, 0, MODE_EMA, PRICE_OPEN, i ), Digits );
Fast[i] = NormalizeDouble( iMA( Symbol(), TF, FastPeriod, 0, MODE_EMA, PRICE_OPEN, i ), Digits );
Alert( "DataSlow" + ( string )i + ": " + DoubleToStr( Slow[i], Digits ) );
}
}
bool NewBar( int TF )
{
static datetime lastbar = 0;
datetime curbar = iTime( Symbol(), TF, 0 );
if ( lastbar != curbar )
{ lastbar = curbar; return( true );
}
else return( false );
}
当包含#property strict
,代码在编译后仅工作一次。 M5
图表上的新条形存在后,不会进行任何迭代。
如果我坚持使用#property strict
怎么办?
New
MQL4.56789
抓住22 我的求职者来自Help > MQL4 Reference > Updated MQL4
是
这个(列[New MQL4 with #property strict]
)
任何类型的函数都应返回一个值
还有一个需要回顾的问题,即使是static double
替代,代码也只会丢失逻辑,在这种情况下,效率极低:
退出{}块时释放局部数组
在MT4 Build 950中与#property strict
作为EA完美配合使用。
您确定要以EA而非脚本或指标的形式运行它吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.