有时会重复开单 于是就想用bars判定一下 但是不行 用itime也不行 我记得mt4用time[0]就可以 不知道错在哪里 请高手指点一下啊 谢谢
int dd=0;
int bars=Bars(_Symbol,_Period);
if(PositionsTotal()==0)
{
if(dd!=bars && ....................... )
{
buy();
dd=bars;
}
简单看了一下,括号是(中文括号),少了一个 }
简单看了一下,括号是(中文括号),少了一个 }
不是我的意思是 怎么防止ea在同一个k线上重复开单
不是我的意思是 怎么防止ea在同一个k线上重复开单
个人是用时间。如果当前持仓订单中的最大开仓时间大于了当前柱的开盘时间, 返回;当然,用小于来判断进入也可。
个人是用时间。如果当前持仓订单中的最大开仓时间大于了当前柱的开盘时间, 返回;当然,用小于来判断进入也可。
我是用close[1]开单的,close[1]>close[2] 就开单 随后止损后 ,由于close[1]>close[2]条件还成立,于是就又开单了。
我是用close[1]开单的,close[1]>close[2] 就开单 随后止损后 ,由于close[1]>close[2]条件还成立,于是就又开单了。
我说的是“ 当前持仓订单中的最大开仓时间 ”,不是 close[1], close[1]不是“ 当前持仓订单中的最大开仓时间 ” ,得遍历订单,从订单中找到这个最大的时间(即订单的OrderOpenTime())再来比较。
如果是止损后不想再开单,得从历史订单中去找平仓订单中的最大开仓时间。
我说的是“ 当前持仓订单中的最大开仓时间 ”,不是 close[1], close[1]不是“ 当前持仓订单中的最大开仓时间 ” ,得遍历订单,从订单中找到这个最大的时间(即订单的OrderOpenTime())再来比较。
如果是止损后不想再开单,得从历史订单中去找平仓订单中的最大开仓时间。
哦 谢谢哈 我好像明白您表达的意思了 就是用开仓时间和现在这根k线时间比较一下 如果相等表示还在这跟k线 嗯嗯 好的 谢谢 我发现如果获取最后一单的时间是不用遍历的 直接用函数获取就是最后一个
建議你print時間的值出來就知道如何處理
time[0] 和itime 我都print了 一模一样
用K线的开盘时间iTime(),同一K线开盘时间只开一次就可以了。
有时会重复开单 于是就想用bars判定一下 但是不行 用itime也不行 我记得mt4用time[0]就可以 不知道错在哪里 请高手指点一下啊 谢谢
int dd=0;
int bars=Bars(_Symbol,_Period);
if(PositionsTotal()==0)
{
if(dd!=bars && ....................... )
{
buy();
dd=bars;
}