全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
设置除权换月后当日换月,当日不能平仓,如何规避
2024-07-19 22:52

   //=========除权换月相关设置==============

   AddDataFlag(Enum_Data_RolloverBackWard());    //设置后复权

   AddDataFlag(Enum_Data_RolloverRealPrice());    //设置映射真实价格

   AddDataFlag(Enum_Data_AutoSwapPosition());    //设置自动换仓

   AddDataFlag(Enum_Data_IgnoreSwapSignalCalc());    //设置忽略换仓信号计算

同时又设置了当日如果有交易了,不能平仓,   if( Date>LastEntryDate) //当日不能平仓

那么除权换月当天,早上开盘就自动进行了换月,但当天又出现了交易信号,因为早盘有过交易了,不能再平仓操作,这个如何规避?

kyover

如果用了自动换月信号,那么开仓价格开仓日期开仓bar等相关数据就只能自己定义一个状态容器来记录了,系统函数不要用

2024-07-22 08:52
shenjinjin

说的有道理,自己水平还没有到达,搞不定。这是简单四周交易策略,如何修改?

Params

   Numeric length1(45);

   Numeric length2(45);

   Numeric lots(3);

Vars

   Numeric highline;

   Numeric lowline;

Events

OnInit()

{

   //=========除权换月相关设置==============

   AddDataFlag(Enum_Data_RolloverBackWard());    //设置后复权

   AddDataFlag(Enum_Data_RolloverRealPrice());    //设置映射真实价格

   AddDataFlag(Enum_Data_AutoSwapPosition());    //设置自动换仓

   AddDataFlag(Enum_Data_IgnoreSwapSignalCalc());    //设置忽略换仓信号计算

   }  

    onBar(ArrayRef<Integer> indexs)

   {    

             highline=Highest(High[1],length1);

   lowline=Lowest(Low[1],length2);

   PlotNumeric(\"highline\",highline);

   PlotNumeric(\"lowline\",lowline);

   If(CurrentBar >=0)//

     {

      If(MarketPosition<>1 And High>=highline)

       if( Date>LastEntryDate) //当日不能平仓

{

Buy(lots,Max(Open,highline));//开多单

                           Return;

                        }

          If(MarketPosition<>-1 And Low<=lowline)

                if( Date>LastEntryDate) //当日不能平仓

                {

                           SellShort(lots,Min(Open,lowline));//买入空单

                           Return;

                       }

     }

   }

2024-07-27 10:38
您未登录,请先 登录注册 后发表评论
顶部