int OpenTradesOnThisCandle( )
{
int op =0;
for(int i = OrdersTotal() - 1;i >= 0; i-- ) // scan all orders and positions...
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == true // if order select is true ...
&& OrderMagicNumber() != MagicNumber // ... and magic number is our magic number ...
&& OrderSymbol() == Symbol() ) // ... and symbol is chart symbol
{
if (OrderOpenTime() > Time[0]) op++;
if (OrderOpenTime() > Time[0]) op++;
}
}
return(op);
}
megamixx。
如果你还在外面,我可以建议你修改一些代码,以达到你所要的目的。如果你仍然感兴趣,请告诉我。
然后重新编译,以确保它没有错误。当你有了这个,请告诉我,我会把下一步的修改粘贴出来。得到了,并且编译成功了,谢谢sn。
得到了,并且编译成功了,谢谢sn。
好的,很好。
接下来,有一个这样的代码块
复制整个代码块,紧接着粘贴,并将其重命名为OpenTradesOnThisCandle。
然后,重新编译,确保它没有错误。
我现在要去工作了,所以你要晚点才会收到我的消息。 如果你被卡住了,请把修改的内容贴出来。
复制了这个块并重新命名,现在它看起来像这样。
int OpenTradesOnThisCandle( )
{ int op =0;
for(int i=OrdersTotal()-1;i>=0;i-)// 扫描所有订单和头寸...
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() != MagicNumber) continue;
if ( OrderSymbol() ==Symbol() )
{
if ( OrderType() == OP_BUY ) op++;
if ( OrderType() == OP_SELL ) op++;
}
}
return(op);
}
希望我做得对sn。我编译了,没有错误,但有警告。
函数"OpenTradesOnThisCandle "没有被引用,将被从exp-file中删除
0个错误,1个警告
很好。这条信息只是一个警告,很快就会消失。
现在,在你创建的新子程序中,将看到MODE_TRADES的那一行改为MODE_HISTORY。
现在将两个if语句中的OrderType()替换成这样
当你有了这个(你会得到同样的警告),编译它以确保它没有错误。
这就是该块现在的样子。
int OpenTradesOnThisCandle( )
{ int op =0;
for(int i=OrdersTotal()-1;i>=0;i--) // 扫描所有订单和头寸...
{
OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)。
如果(OrderMagicNumber()!=MagicNumber)继续。
如果 ( OrderSymbol()==Symbol() )
{
如果 (OrderOpenTime() > Time[0]) op++;
如果 (OrderOpenTime() > Time[0]) op++;
}
}
return(op)。
}
已编译,0个错误,1个警告
嗨,Megamix。
我没有从头读过这个主题,但是......
1.在发布代码时使用SRC按钮
2.OrderSelect()的返回值是真或假,所以这是OrderSelect()的正确写法。
:D
嗨,Megamix。
我没有从头读过这个主题,但是......
1.在发布代码时使用SRC按钮
2.OrderSelect()的返回值是真或假,所以这是OrderSelect()的正确写法。
:D
谢谢你关于发布代码的提示。这很有意义。至于第2点,我会听从sn的意见,因为他正在指导我完成这些步骤,我不想搞砸他的过程。非常感谢!
谢谢你关于发布代码的提示。这很有意义。至于第2点,我会听从sn的意见,因为他正在指导我完成这些步骤,我不想搞砸他的过程。非常感谢!
onewithzacky是正确的,检查 返回代码是一个好习惯。
if (OrderOpenTime() > Time[0]) op++; <<==这只需要出现一次。所以要去掉一个。
接下来要做的是找到这段代码,并将其复制到下面。
然后改变
(TradesInThisSymbol > 0)
改为
(OpenTradesOnThisCandle() > MaxTradesPerCandle)
然后编译 - 错误应该消失。
我们现在将保持简单。onewithzacky是正确的,检查返回代码是一个好习惯。
if (OrderOpenTime() > Time[0]) op++; <<==这只需要在那里出现一次。 所以拿掉一个。
接下来要做的是找到这段代码并将其复制到下面。
然后改变
(TradesInThisSymbol > 0)
改为
(OpenTradesOnThisCandle() > MaxTradesPerCandle)
然后编译 - 错误应该消失。
完成了。
删除重复的如果(OrderOpenTime() > Time[0]) op++。
并发现和改变了
(TradesInThisSymbol > 0)
改为
(OpenTradesOnThisCandle() > MaxTradesPerCandle)
非常感谢您在这方面的帮助。