任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 348

 
Link_x:
我认为是对技术指标中的功能缺乏了解。如果我不明白,那么我应该明白,通过使用从你那里传递给我的链接的 "另一边 "发现的信息,通过互联网网络的打字和发送。
"学习,学习,再学习!" - 我喜欢这句话。)))

在元编辑器中打开CCI,把你不理解的东西都放到参考书中(点击你不理解的函数或表达式,然后按F1键)。这样一来,学习将变得更加有趣。
 

extern int MartinStep = 2;
extern double LOT = 0.01;


double GetLot(){

int time = 0;double profit = 0; double lots = 0; double Lot = 0;
for(int i = OrdersHistoryTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){
if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic){
if(time<OrderCloseTime()){
time=OrderCloseTime();
profit=OrderProfit();
lots = OrderLots();
}
}
}
}


if(profit == 0 &&time == 0)
{
Lot = LOT;
}
if(profit >= 0)
{
Lot = LOT;
}
if(profit < 0 )
{
Lot = NormalizeDouble (lots*MartinStep,2);
}

return(Lot);
}
请帮助纠正功能上的错误。EA正确地打开了几个订单,然后日志显示一个错误 "无效的手数"。我不明白什么是错的。
 
Trader7777:


lots = OrderLots();

Lot = NormalizeDouble (lots*MartinStep,2);

请帮助纠正功能上的错误。EA正确地打开了几个订单,然后日志显示一个错误 "无效的手数"。我不明白什么是错的。

要么我从来没有到过操作者lot = OrderLots(); 和lot仍然保持=0。或者lot*MartinStep超过了最大允许的lot大小。
 

我想明白了,错误在这里

if(profit >= 0)


我应该加一个等号,因为在一个以0点收盘的订单之后,EA不知道该怎么做)
 

大家好!你能告诉我如何在一天结束时实现EA的重新初始化吗?那么,在init()中,有一些动作需要在某个时间重复进行。我不想在start()中重写它们。我对重新启动EA的理论可能性更感兴趣。预先感谢你。

 
Pyro:

大家好!你能告诉我如何在一天结束时实现EA的重新初始化吗?那么,在init()中,有一些动作需要在某个时间重复进行。我不想在start()中重写它们。我对重新启动EA的理论可能性更感兴趣。预先感谢你。

你有没有试过在某个时间调用init()?
 
是的,我没有想到:( 谢谢你!!!)。
 
请您告诉我,当重新启动EA时(从图表中删除,然后再放回),标志和静态变量 是被重置还是保留在EA的内存中?
 
Forexman77:
请您告诉我,当重新启动EA时(从图表中删除,然后再放回),标志和静态变量是被重置还是保留在EA的内存中?

在初始化过程中,除了全局变量外,一切都被重置。
 
Pyro:

在初始化过程中,除了全局变量外,所有的东西都被重置。
这里需要澄清的是,GV是终端变量,而不是EA变量。
原因: