想写一个 止损后,重新下单的EA
信号出现后进场,如果本单止损,但是信号还没有消失的情况下,止损的当前K线结束后,再次下单,如果再次止损,但是信号依然保持,那么下跟K线开盘价再下单,最多就重新下2单。有几个问题:
1.如何判断止损条件
多单:if(Bid<=OrderOpenPrice()-止损点数*Point){}
空单: if(Ask>=OrderOpenPrice()+止损点数*Point){}
不知道这种判断是否正确?
2.当一个信号出现一直不中断,如果里面有出现止损情况,那么需要计数的,当新的信号出现的时候需要重新计数。这个计数该如何写?
3.在止损后不马上进场,要等止损的K线走完后,再判断一次信号是否发生变化,没有变化重新进场
k线走完如何定义?if(close){}是这样吗?还是if(Timecurrent()==Time){}?
4.我有一个开仓的函数,这个止损后继续进场的共功能是否要糅合在开仓函数里
5.我是遍历所有在场的订单,还是遍历出最近刚完成的订单,从中找到止损单?
外层是一个所有订单的遍历
if(OrderType() ==OP_SELL)
{
if(Ask>=OrderOpenPrice()+止损点数*Point)//当前的价格扫掉了止损可以走到这,但是后面的价格来的时候,由于这个订单已经是历史订单了,代码是否还会执行到这里是个问题
{
if(Timecurrent()==Time)
{
if(信号没改变)//计数是否放在这个位置,如果信号改变计数要清零
{
开仓(这块会写)
}
}
}
}
我在想是不是要把这个功能加在我的开仓函数里
刚开始遍历所有历史订单,找到当前货币兑的最近一个订单(预加载的时候可能还要看一下前面单子的情况),判断是正常走完还是止损的,如果是正常走完的,那么不执行重新下单,属于首次下单。
页:
[1]