在集合竞价阶段以开盘价平掉昨天持有的股指期货多仓与空仓
能帮我编辑一个代码么:在集合竞价阶段以开盘价平掉昨天持有的股指期货多仓与空仓
Params
   Numeric Offset(5);       // 滑点基数(按最小变动单位)  
Vars
   Numeric buyPosition(0);  // 多头持仓量
   Numeric sellPosition(0); // 空头持仓量
   Numeric currentTime(0);  // 当前时间(HHMM格式)
   Numeric tickSize(0);     // 实际滑点金额
   Numeric openPrice(0);    // 开盘价
   Bool condition1(False);  // 触发条件  
Events
   // 初始化参数
   OnInit()
   {
       tickSize = MinMove * PriceScale; // 计算实际滑点金额
       SetGlobalVar(0,0); // 初始化全局变量
   }
   // 每根K线结束触发
   OnBar()
   {
       // 时间转换:将0.HHMMSS转为HHMM整数(如9:30:00→930)
       currentTime = IntPart(Time * 10000);
       
       // 严格限定执行条件(9点30分)
       If(currentTime == 930 And GetGlobalVar(0) == 0)
       {
           // 获取当前持仓量(含今昨仓)
           buyPosition = A_BuyPosition();  // 获取多头持仓量
           sellPosition = A_SellPosition(); // 获取空头持仓量
           
           // 获取开盘价
           openPrice = Open;
           
           // ========== 调试信息输出 ========== //
           Commentary(
               "时间:" + Text(currentTime) +
               "\n多单持仓:" + Text(buyPosition) +
               "\n空单持仓:" + Text(sellPosition) +
               "\n开盘价:" + Text(openPrice)
           );
           
           // ========== 平仓逻辑 ========== //
           // 平多单(限价单方式,以开盘价为基础)
           If(buyPosition > 0)
           {
               // 限价平仓:以开盘价减去滑点作为平仓价
               Numeric limitPrice = openPrice - Offset * tickSize;
               A_SendOrder(Enum_Sell, Enum_Entry, limitPrice, buyPosition);
               Commentary("已发送限价平多单:" + Text(buyPosition) + "手,价格:" + Text(limitPrice));
           }
           
           // 平空单(限价单方式,以开盘价为基础)
           If(sellPosition > 0)
           {
               // 限价平仓:以开盘价加上滑点作为平仓价
               Numeric limitPrice = openPrice + Offset * tickSize;
               A_SendOrder(Enum_Buy, Enum_Exit, limitPrice, sellPosition);
               Commentary("已发送限价平空单:" + Text(sellPosition) + "手,价格:" + Text(limitPrice));
           }
           
           // 记录交易状态
           SetGlobalVar(0, 1); // 标记已发单
       }
   }但不发单,请大神修改
股指期货的平仓
股指期货移仓换月回测
麻烦老师把文字部分(先平掉所有空单再开多单,先平掉所有多单再开空单)
请问大师股指期货当日锁仓怎么写?
【发单】平多的指令成了开空单
针对股指期货日内交易,有没有锁仓命令
如何使用策略代码平掉之前手动开的仓位
股指期货平仓
为什么平不掉仓呢?
关于股指期货限制开仓手数的功能的疑问
能帮我编辑一个代码么:在集合竞价阶段以开盘价平掉昨天持有的股指期货多仓与空仓
Params
    Numeric Offset(5);       // 滑点基数(按最小变动单位)  
Vars
    Numeric buyPosition(0);  // 多头持仓量
    Numeric sellPosition(0); // 空头持仓量
    Numeric currentTime(0);  // 当前时间(HHMM格式)
    Numeric tickSize(0);     // 实际滑点金额
    Numeric openPrice(0);    // 开盘价
    Bool condition1(False);  // 触发条件  
Events
    // 初始化参数
    OnInit()
    {
        tickSize = MinMove * PriceScale; // 计算实际滑点金额
        SetGlobalVar(0,0); // 初始化全局变量
    }

    // 每根K线结束触发
    OnBar()
    {
        // 时间转换:将0.HHMMSS转为HHMM整数(如9:30:00→930)
        currentTime = IntPart(Time * 10000);
        
        // 严格限定执行条件(9点30分)
        If(currentTime == 930 And GetGlobalVar(0) == 0)
        {
            // 获取当前持仓量(含今昨仓)
            buyPosition = A_BuyPosition();  // 获取多头持仓量
            sellPosition = A_SellPosition(); // 获取空头持仓量
            
            // 获取开盘价
            openPrice = Open;
            
            // ========== 调试信息输出 ========== //
            Commentary(
                "时间:" + Text(currentTime) +
                "\n多单持仓:" + Text(buyPosition) +
                "\n空单持仓:" + Text(sellPosition) +
                "\n开盘价:" + Text(openPrice)
            );
            
            // ========== 平仓逻辑 ========== //
            // 平多单(限价单方式,以开盘价为基础)
            If(buyPosition > 0)
            {
                // 限价平仓:以开盘价减去滑点作为平仓价
                Numeric limitPrice = openPrice - Offset * tickSize;
                A_SendOrder(Enum_Sell, Enum_Entry, limitPrice, buyPosition);
                Commentary("已发送限价平多单:" + Text(buyPosition) + "手,价格:" + Text(limitPrice));
            }
            
            // 平空单(限价单方式,以开盘价为基础)
            If(sellPosition > 0)
            {
                // 限价平仓:以开盘价加上滑点作为平仓价
                Numeric limitPrice = openPrice + Offset * tickSize;
                A_SendOrder(Enum_Buy, Enum_Exit, limitPrice, sellPosition);
                Commentary("已发送限价平空单:" + Text(sellPosition) + "手,价格:" + Text(limitPrice));
            }
            
            // 记录交易状态
            SetGlobalVar(0, 1); // 标记已发单
        }
    }但不发单,请大神修改


看置顶帖,投付费编写稿,或者投邮件答疑活动的稿