如何编码? - 页 150

 

你好,我有一个专家,他需要能够重新发送一个买入或卖出订单,如果在服务器断开连接、繁忙或其他情况下出现问题。 今天早上,它本应打开一个订单,但由于平台断开连接而无法打开。 在现在的代码中,它被设置为等待3秒,然后再试一次,它做到了,但它只试了3次,然后就不再试图发送订单了。我的EA没有剥头皮,但更多的是中期交易,所以我每周每对交易只有1-3次。 我怎样才能让它的代码在再次尝试前等待10秒,然后继续尝试发送订单,直到它通过,我想在代码中调整它等待多少秒再次尝试,然后也调整它将继续尝试多少次。

我附上了一个代码片段,以便有人能看到可以改变的地方。 谢谢你的帮助。

迈克

RefreshRates()。

int ticket=OrderSend(Symbol(),OP_BUY,ManagedLotSize(),Ask,Slippage,sl,tp, "Expert" + " - " + Period(),MagicNumber,0,Lime)。

如果(ticket<0)

{

Print("错误打开买入订单。",GetLastError())。

Sleep(3000); //----,等待3秒。

}

否则

{

休息。

}

}

如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))

{

Print("BUY订单打开 : ",OrderOpenPrice());

}

否则

{

Print("打开BUY订单的错误。",GetLastError())。

}

}

空白管理卖出()

{

双重tp,sl;

if (TakeProfit==0) { tp=0; } else { tp=Bid-TakeProfit*Point; }

if (StopLoss==0) { sl=0; } else { sl=Bid+StopLoss*Point; }

for (int i = 1; i <=5; i++) //---- Loop if requote

{

RefreshRates()。

int ticket=OrderSend(Symbol(),OP_SELL,ManagedLotSize(),Bid,Slippage,sl,tp, "Expert" + " - " + Period(),MagicNumber,0,Red);

如果(ticket<0)

{

Print("错误打开卖出订单。",GetLastError())。

Sleep(3000); //----,等待3秒。

}

否则

{

休息。

}

}

如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))

{

Print("卖出订单打开:",OrderOpenPrice())。

}

否则

{

Print("打开卖出订单出错。",GetLastError())。

}

 

使用OrderReliable包含文件。

拉克斯

附加的文件:
 

嗨,kevin07。

我将在周日开市时测试新版本的nonlagzigzag警报信号。再次感谢您的工作。你和这里其他无偿提供时间和专业知识的人是使我们许多人更成功的交易者。我会让你知道我使用新indi的结果。

最好的问候,汤姆。

 

帮助修复这个指标

大家好,当我试图编译这个指标的时候,出现了这个错误,能不能解决这个问题呢?

谢谢

附加的文件:
 
zombie333:
大家好,当我试图编译这个指标时,出现了这个错误,能否解决这个问题,谢谢。

别担心,这不是错误,只是警告。他们把整个库放在指标中,但只用了其中的一部分。

 
Roger09:
别担心,这不是错误,这只是警告。他们把整个库放在指标中,但只用了其中的一部分。

谢谢罗杰告诉我这是什么意思,,。

但是为什么当我把它放在图表上时,它没有出现呢?

你能检查一下 吗?

 

如果你把它放在/experts/indicators目录下,然后进行编译,重新启动你的终端,看看Navigator/Custom Indicators。

 
Roger09:
如果你把它放在/experts/indicators目录下,然后进行编译,重新启动你的终端,看看Navigator/Custom Indicators。

不,罗杰,这就是我的意思,。

附加的文件:
 

当你启动你的指标时,应该允许DLL导入

 
Roger09:
当你启动你的指标时,应该允许DLL导入。

谢谢你,Roger,,现在可以了,。