晚早中盘时间切割
老师,你好,我想做日内策略,把晚早中盘时间切割以下。在 ypxz /bpxz(开盘设置的等待区间形成的时间条件) 有这两个条件下没有买卖信号?整体编辑的感觉这个写法好累赘,有其他的编写方法么?本来想用BarsSinceToday 的,但是这个只能过滤夜盘等待的时间,白盘不知道能怎么过滤 Params Numeric t1(30); Numeric t2(15); Vars Series<Numeric> my_H30; Series<Numeric> my_L30; Series<Numeric> my_RANGRH30; Series<Numeric> my_RANGRL30; Series<Numeric> my_H15; Series<Numeric> my_L15; Series<Numeric> range30mH; Series<Numeric> range30mL; Series<Numeric> range15mH; Series<Numeric> range15mL; Series<Bool> ypxz(False); //夜盘交易时间限制 Series<Bool> bpxz(False); //白盘交易时间限制 Events OnBar(ArrayRef<Integer> indexs) { range30mH = Highest(H[1],t1); range30mL = Lowest(L[1],t1); range15mH = Highest(H[1],t2); range15mL = Lowest(L[1],t2); If(Time>=0.210000 && time<=0.230000) //夜盘 { my_H15 = range15mH; my_L15 = range15mL; PlotNumeric ("my_H15",my_H15); PlotNumeric ("my_L15",my_L15); If(Time>=0.210000 && time<=0.213000) ypxz ==true; //该时段不交易 If(Time>=0.210000 && time<=0.213000) //锁定夜盘t1周期内高点 { my_RANGRH30 = range30mH; my_RANGRL30 = range30mL; } my_H30 = my_RANGRH30; my_L30 = my_RANGRL30; PlotNumeric ("my_H30",my_H30); PlotNumeric ("my_L30",my_L30); //Entry 夜盘开仓 If(C>my_H15 && MarketPosition ==0 && ypxz <>true) { Buy(1,Max(Open,my_H15)); } If(c<my_L15 && MarketPosition ==0 && ypxz <>true) { SellShort(1,min(O,my_L15)); } //Exit 夜盘离场 If(MarketPosition>0) //持有多单情况下 { If(Time == 0.2259) { Sell(0,Open); Commentary("限时平多"); } } Else If (MarketPosition<0) //持有空单情况下 { If(Time == 0.2259) { BuyToCover(0,Open); Commentary("限时平空"); } } } If(Time>=0.090000 && time<=0.150000) //白盘 { my_H15 = range15mH; my_L15 = range15mL; PlotNumeric ("my_H15",my_H15); PlotNumeric ("my_L15",my_L15); If(Time>=0.090000 && time<=0.093000) bpxz ==true;//该时段不交易 If(Time>=0.090000 && time<=0.093000) //锁定t1周期高点 { my_RANGRH30 = range30mH; my_RANGRL30 = range30mL; } my_H30 = my_RANGRH30; my_L30 = my_RANGRL30; PlotNumeric ("my_H30",my_H30); PlotNumeric ("my_L30",my_L30); //Entry If(C>my_H15 && MarketPosition ==0 && bpxz <>true) { Buy(1,Max(Open,my_H15)); } If(c<my_L15 && MarketPosition ==0 && bpxz <>true ) { SellShort(1,min(O,my_L15)); } //Exit If(MarketPosition>0) //持有多单情况下 { If(Time == 0.1459) { Sell(0,Open); Commentary("限时平多"); } } Else If (MarketPosition<0) //持有空单情况下 { If(Time == 0.1459) { BuyToCover(0,Open); Commentary("限时平空"); } } } }