ea在同一点位重复做单怎么办? - 页 2

 
加一个时间限制就行的啦。限制一根K线 只交易一次哦。
 

我遇到过这种问题,一个是程序代码的问题,一个是点差放大的问题:

1.比如加仓间距是100,但如果都用Close[0]来参考的话,当点差大于了100的时候,多单一入场订单就是在现价上方100多微点了,程序检测到现价离上一个多单距离大于100微点,就会继续加仓。(解决办法,多单应该以Ask计算开仓,而不能用Bid或者Close[0]计算)

2.代码问题,如果你只想开一单,就要检测订单数量,或者通过程序来控制开仓。

有什么不懂的,可以问我

 
最简单的就是加入sleep限制在间隔多少时间内暂停开仓
 

如果EA在设计上没有问题,可以查看一下是否是网络连接质量不好而引起的。

EA发出建仓指令,系统已经建仓,但是因为网络问题,EA没有得到反馈。这时候EA会再次建仓,网络问题恢复,EA的二次建仓指令发送给服务器了,结果出现重复建仓。

使用网络延迟小的vps,基本上不会出现这类问题。

 
Xiaoyu Du:

如果EA在设计上没有问题,可以查看一下是否是网络连接质量不好而引起的。

EA发出建仓指令,系统已经建仓,但是因为网络问题,EA没有得到反馈。这时候EA会再次建仓,网络问题恢复,EA的二次建仓指令发送给服务器了,结果出现重复建仓。

使用网络延迟小的vps,基本上不会出现这类问题。

用循环也可以搞定,满足条件只开一次单,不管断网还是重新加载ea都不会重复开单。
 

这是编程没处理好,

你找谁写的就谁处理,写这样有问题的EA,实盘有问题的就是开发没处理好,

 
Shaofei Chen:

我遇到过这种问题,一个是程序代码的问题,一个是点差放大的问题:

1.比如加仓间距是100,但如果都用Close[0]来参考的话,当点差大于了100的时候,多单一入场订单就是在现价上方100多微点了,程序检测到现价离上一个多单距离大于100微点,就会继续加仓。(解决办法,多单应该以Ask计算开仓,而不能用Bid或者Close[0]计算)

2.代码问题,如果你只想开一单,就要检测订单数量,或者通过程序来控制开仓。

有什么不懂的,可以问我

大大,小弟也遇到這個問題,我發現好像是價格波動大時就會發生,除了重複下單,而且重複開倉的單卻沒有依條件設置止損,不知道大大有何建議?
 
weyghj:
大大,小弟也遇到這個問題,我發現好像是價格波動大時就會發生,除了重複下單,而且重複開倉的單卻沒有依條件設置止損,不知道大大有何建議?

写EA是一个细致的活, 如,跳空,点差扩大,滑点等等细节和特殊情况的处理,要考虑周全,不然重复开仓必然会出现的

 
int bar=0;
void OnTick()
  {
int i;
double lot=0.1;
int ticket;
int huadian=10;
int peri= PERIOD_CURRENT;
int mag=1333;
int check;
double bandlow=iBands(sym,peri,20,2,0,PRICE_CLOSE,2,1);

if(bar==Bars)
{
return;
}
bar= Bars;

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

开仓***

 
fuzhou an #:

有一种可能是出现在编程的上面,对交易的请求结果没有考虑周全。

比如发出开单请求后,由于交易环境的原因没有马上成交,或是延迟1s到几s,EA没考虑到延迟的情况,认为当前仍然是空仓,当没有得到确切的开单结果时,就又发出开单请求,如此反复,聚集了很多开单请求,当交易环境正常了以后,会对以前的开单请求全部返回成交,造成几秒内成交很多单,这种情况是有可能存在的。

这个要怎么规避呢