老师,你好,我想做日内策略,把晚早中盘时间切割以下。在 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("限时平空");
}
}
}
}