如何编码? - 页 335

 
mladen:
这一部分

如果(newbar==Time[0])返回(0)。

否则newbar=Time[0]。

int ticket, total;

如果(Bars<100)

{

Print("小于100的条数")。

return(0);

}

如果(TakeProfit<10)

{

Print("TakeProfit小于10")。

return(0); // 检查TakeProfit

}

如果不是一个新条形图的第一个刻度,并且如果利润不超过10点,是否可以阻止EA在特定时间关闭订单?

嗨,mladen,我已经删除了 这部分代码,但我的EA仍然没有在我期望的时间内关闭。

你知道是什么原因吗?谢谢。

谢谢。

阮文华

 
tkuan77:
你好,我已经删除了这部分代码,但我的EA仍然没有在我想要的时间关闭。

你有什么想法,可能是什么原因?谢谢。

注意事项

睿恩

它的写法是,只有当经纪人时间正好是07:00:00时,它才会关闭订单。

 
mladen:
它的写法是,只有当经纪人时间正好是07:00:00时,它才会关闭订单。

嗨,mladen,是否有其他的办法,因为它在这里似乎不起作用。

谢谢

瑞安

 
tkuan77:
嗨,mladen,有什么其他的办法吗,因为它在这里似乎不起作用。

注意事项

睿恩

尝试使用

如果(TimeCurrent()>= StringToTime("07:00:00"))

来代替

 
mladen:
尝试使用

如果(TimeCurrent()>= StringToTime("07:00:00"))

来代替

嗨,mladen,它仍然不能工作。我在想,是否可能是由于这里的这几行......无论是OrdersTotal还是OrderSelect都可能导致这个问题?

for (int i=OrdersTotal()-1; i>=0; i--)

{

如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

问候

阮先生

 
tkuan77:
嗨,mladen,它仍然不能工作。我想知道是否由于这几行......无论是OrdersTotal还是OrderSelect都可能导致这个问题?

for (int i=OrdersTotal()-1; i>=0; i--)

{

如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

请注意

阮文华

不,这些行是正确的

 
mladen:
不,这些行是正确的

嗨,mladen,因为我把我的EA设置为在任何时间点只有1笔交易,我注意到OrdersTotal把我的int i计数设置为1-1的负0,i>=0;i--会使我的i=-1

所以我想知道这是否是错误的。

else if(total > 1) //根据时间来关闭订单......还没有解决。

{

if (Hour()==7 &&Minute()==30)

{

for (int i=OrdersTotal()-1; i>=0; i--)

{

如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

如果(!UseCurrSymbol || OrderSymbol()==Symbol())

{

如果(OrderType()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID)。

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue)。

}

如果(OrderType()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK)。

OrderClose(OrderTicket(),OrderLots(),pAsk,1,Red)。

}

}

}

}//

}

return(0);

}

 
tkuan77:
嗨,mladen,因为我设置我的EA在任何时间点只有1笔交易,我注意到OrdersTotal将我的int i计数设置为负0,由1-1,i>=0;i--将使我的i=-1

所以我想知道这是否可能是错误。

else if(total > 1) //根据时机关闭订单...尚未解决。

{

如果(Hour()==7 &&Minute()==30)

{

for (int i=OrdersTotal()-1; i>=0; i--)

{

如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

如果(!UseCurrSymbol || OrderSymbol()==Symbol()

{

如果(OrderType()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID)。

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue)。

}

如果(OrderType()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK)。

OrderClose(OrderTicket(),OrderLots(),pAsk,1,Red)。

}

}

}

}//

}

return(0);

}

请用我发给你的行来替换这个:f (Hour()==7 &&Minute()==30),然后试试

OrdersTotal()如果有一个已开的订单,将返回1。当使用OrderSelect()时,0(OrdersTotal()-1)将选择正确的订单。如果OrdersTotal()返回0,那么活动订单池中就没有已开订单。

 
mladen:
请用我发给你的行来替换这个:f (Hour()==7 &&Minute()==30),然后试试,如果有一个开仓订单,OrdersTotal()将返回1。当使用OrderSelect()时,0(OrdersTotal()-1)将选择正确的订单。如果OrdersTotal()返回0,那么活动订单池中就没有已开订单。

嗨,mladen,很遗憾,我刚刚又重试了一次,还是不行。

是否有其他方法可以让我根据特定的时间来关闭我的交易?

请注意

睿恩

 
mladen:
请用我发给你的行来替换这个:f (Hour()==7 &&Minute()==30),然后试试,如果有一个已开的订单,OrdersTotal()将返回1。当使用OrderSelect()时,0(OrdersTotal()-1)将选择正确的订单。如果OrdersTotal()返回0,那么活动订单池中就没有已开订单。

嗨,mladen,我已经成功地解决了这个问题。似乎是这个衬垫导致了这个问题,在我删除 它之后,代码就正常了。

else if(total > 1)

谢谢你的帮助...

请注意

阮文华