3月20日 | 线上培训 - TBQuant3图表开平仓信号管理-2

3月13日 | 线上培训 - TBQuant3图表开平仓信号管理-1
6月19日 | 线上培训 - TBQuant3 - A函数调试2
3月27日 | 线上培训 - TBQuant3线上答疑
4月3日 | 线上培训 - TBQuant3线上答疑
4月17日 | 线上培训 - TBQuant3线上答疑
4月24日 | 线上培训 - TBQuant3线上答疑
5月8日 | 线上培训 - TBQuant3线上答疑
5月29日 | 线上培训 - TBQuant3线上答疑
6月5日 | 线上培训 - TBQuant3线上答疑
2月14日 | 智大领峰线上培训 - 网格交易操作演练
//------------------------------------------------------------------------
// 简称: ttlesson_0313_2025
// 名称: 
// 类别: 策略应用
// 类型: 用户应用
// 输出: Void
//------------------------------------------------------------------------
Params
    //此处添加参数
    Numeric cishu(25);
Vars
    //此处添加变量
    Global Numeric aa;
    Series<Numeric> ma1;
    Series<Numeric> ma1_1;
    Series<Numeric> ma2;
    Series<Numeric> ma3;
    Series<Numeric> enter_con(0);//策略状态变量
    Series<Numeric> my_cishu(0);//当前交易次数
    
    Series<Numeric> again_con(0);// 再次加入一些头寸
    Series<Numeric> again_h;
    Series<Numeric> now_afterentryh;
    Series<Numeric> now_h1;
    Series<Numeric> now_h2;
Defs
    //此处添加策略函数
    
Events
    //此处实现事件函数
    
    //初始化事件函数,策略运行期间,首先运行且只有一次
    OnInit()
    {
        
    }
    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
    OnBar(ArrayRef<Integer> indexs)
    {
         ma1 = Average(close,5);
        ma1_1 = Average(close,10);
         ma2 = Average(close,60);
         ma3 = Average(close,180);
        now_afterentryh = highest(h,BarsSinceEntry+1);
        now_h1 = highest(h,55);
        now_h2 = highest(h,20);
        //////
        Commentary("MarketPosition="+text(MarketPosition));
        if( CrossOver(ma2[1],ma3[1]) and enter_con==0 ) // 0 没仓 => 1 建立底仓
        {
            Buy(1,open);
            enter_con = 1;
            again_con = 0;
        }
        /////1 -> 2提前离场
        if( CrossUnder(ma1[1],ma1_1[1]) and enter_con ==1 and my_cishu < cishu) //当前的交易次数<限制次数
        {
            Buy(1,open);
            my_cishu = my_cishu +1;
        }
        if(enter_con ==1 and CrossUnder(ma1_1[1],ma2[1]) )// 停止加仓,并减半仓
        {
            sell(CurrentContracts/2,open);
            PlotAuto("平半","平半",close);
            enter_con = 2;//  2的路径 要想一想 2->0 2->1
            again_con = 1;
            again_h = (now_afterentryh + now_h1 +now_h2)/3;
        }
        if(CrossUnder(ma2[1],ma3[1]) and (enter_con ==1 or enter_con==2) )// 1状态并不是最终, 1和2共同点是大于0
        {
            sell(0,open);
            enter_con = 0;
            my_cishu = 0;
        }
        ///////////again_con==1的情况
        if(again_con ==1 )
        {
            PlotAuto("hhhhh",again_h);
            if(h > again_h)
                again_con = 2;
        }
        else if(again_con ==2)
        {
            enter_con = 1;
            again_con = 3;
        }

        Commentary("enter_con="+text(enter_con));
        Commentary("my_cishu="+text(my_cishu));
        PlotAuto("ma1",ma1);
        PlotAuto("ma1_1",ma1_1);
        PlotAuto("ma2",ma2);
        PlotAuto("ma3",ma3);
    }
    

//------------------------------------------------------------------------
// 编译版本    2025/3/13 153550
// 版权所有    wangkaiming
// 更改声明    TradeBlazer Software保留对TradeBlazer平台
//            每一版本的TradeBlazer策略修改和重写的权利
//------------------------------------------------------------------------