各位,为什么这段代码用函数封装不起来? 新评论 f800814 2020.12.17 12:02 这段代码的意思是查询下单后的N次均线下穿时的价格。没有用函数封起来的时候很正常,想查第几次就可以查第几次,查到小于订单的开盘时间时就结束。但是用函数封起来之后会跳到订单前面一个莫名其妙的时间段的价格。 datetime a=0; datetime b=0; int count=0; double c=0; for(int n=0;n<OrdersTotal();n++) { if(OrderSelect(n,SELECT_BY_POS,MODE_TRADES)&&OrderSymbol()==Symbol()) { a=OrderOpenTime(); } } for(int i=1;i<2000;i++) { double ma5=iMA(Symbol(),PERIOD_CURRENT,5,0,MODE_SMA,PRICE_CLOSE,i); double ma5s=iMA(Symbol(),PERIOD_CURRENT,5,0,MODE_SMA,PRICE_CLOSE,i+1); double ma10=iMA(Symbol(),PERIOD_CURRENT,10,0,MODE_SMA,PRICE_CLOSE,i); double ma10s=iMA(Symbol(),PERIOD_CURRENT,10,0,MODE_SMA,PRICE_CLOSE,i+1); if(ma5<ma10&&ma5s>ma10s) { b=Time[i]; c=Close[i]; if(a<b) { count++; } if(count==2) { Print("c=",c); break; } } } Basic questions ... How to code? MQL4 - Need Help Creating/Coding Simple Exit Rule 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这段代码的意思是查询下单后的N次均线下穿时的价格。没有用函数封起来的时候很正常,想查第几次就可以查第几次,查到小于订单的开盘时间时就结束。但是用函数封起来之后会跳到订单前面一个莫名其妙的时间段的价格。
datetime a=0;
datetime b=0;
int count=0;
double c=0;
for(int n=0;n<OrdersTotal();n++)
{
if(OrderSelect(n,SELECT_BY_POS,MODE_TRADES)&&OrderSymbol()==Symbol())
{
a=OrderOpenTime();
}
}
for(int i=1;i<2000;i++)
{ double ma5=iMA(Symbol(),PERIOD_CURRENT,5,0,MODE_SMA,PRICE_CLOSE,i);
double ma5s=iMA(Symbol(),PERIOD_CURRENT,5,0,MODE_SMA,PRICE_CLOSE,i+1);
double ma10=iMA(Symbol(),PERIOD_CURRENT,10,0,MODE_SMA,PRICE_CLOSE,i);
double ma10s=iMA(Symbol(),PERIOD_CURRENT,10,0,MODE_SMA,PRICE_CLOSE,i+1);
if(ma5<ma10&&ma5s>ma10s)
{
b=Time[i];
c=Close[i];
if(a<b)
{
count++;
}
if(count==2)
{
Print("c=",c);
break;
}
}
}