收盘提前N秒发单的通用方法
经典场景:双均线策略,收盘提前N秒执行交易信号。特别注意:1、未经严格验证,未知风险概不负责。2、只需要在源代码中添加onbaropen的那段代码,其余交易代码注意使用收盘价做判断和交易。Params Numeric FastLength(5);// 短期指数平均线参数 Numeric SlowLength(20);// 长期指数平均线参数 Vars Series<Numeric> AvgValue1; Series<Numeric> AvgValue2; Events //每根BAR开始的时候设置触发时间点 OnBarOpen(ArrayRef<Integer> indexes) { Numeric advancesec(5); //提前多少秒 Array<Numeric> timePoint; Numeric ret = DateTimeAdd(RealEndDateTime, -1*advancesec); ret = StringToTime(TimeToString(ret)); Print(\"endtime=\"+text(RealEndDateTime)+\" SetTriggerBarClose:\" + Text(ret)); ArrayPushBack(timePoint, ret); SetTriggerBarClose(timePoint); } OnBarClose(ArrayRef<Integer> indexs) { AvgValue1 = AverageFC(Close,FastLength); AvgValue2 = AverageFC(Close,SlowLength); PlotNumeric(\"MA1\",AvgValue1); PlotNumeric(\"MA2\",AvgValue2); If(MarketPosition <>1 && AvgValue1 > AvgValue2) { Buy(0,Close); } If(MarketPosition <>-1 && AvgValue1 < AvgValue2) { SellShort(0,Close); } }