实盘不能成功下单。头寸挂上了,编译了。也可以成功回测

//------------------------------------------------------------------------// 简称: test// 名称: 上线卖开并22:55平仓策略// 类别: 公式应用// 类型: 用户应用// 输出: Void//------------------------------------------------------------------------Params // 此处添加参数 Numeric millsecs(1000);Vars // 此处添加变量 Numeric avg; Global Integer timerId; Global Integer hasSoldOpen; // 标记是否已经卖开 Global Integer hasClosed; // 标记是否已经平仓Defs // 此处添加公式函数 Numeric calcAvg(Numeric a, Numeric b) { return (a + b) / 2; }Events // 此处实现事件函数 // 初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作 OnInit() { timerId = createTimer(millsecs); hasSoldOpen = 0; hasClosed = 0; // 与数据源有关 Range[0:DataCount - 1] { //=========数据源相关设置============== //AddDataFlag(Enum_Data_RolloverBackWard()); // 设置后复权 //AddDataFlag(Enum_Data_RolloverRealPrice()); // 设置映射真实价格 //AddDataFlag(Enum_Data_AutoSwapPosition()); // 设置自动换仓 //AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); // 设置忽略换仓信号计算 //AddDataFlag(Enum_Data_OnlyDay()); // 设置仅日盘 //AddDataFlag(Enum_Data_OnlyNight()); // 设置仅夜盘 //AddDataFlag(Enum_Data_NotGenReport()); // 设置数据源不参与生成报告标志 //=========交易相关设置============== //MarginRate rate; //rate.ratioType = Enum_Rate_ByFillAmount; // 设置保证金费率方式为成交金额百分比 //rate.longMarginRatio = 0.1; // 设置保证金率为10% //rate.shortMarginRatio = 0.2; // 设置保证金率为20% //SetMarginRate(rate); //CommissionRate tCommissionRate; //tCommissionRate.ratioType = Enum_Rate_ByFillAmount; //tCommissionRate.openRatio = 5; // 设置开仓手续费为成交金额的5%% //tCommissionRate.closeRatio = 2; // 设置平仓手续费为成交金额的2%% //tCommissionRate.closeTodayRatio = 0; // 设置平今手续费为0 //SetCommissionRate(tCommissionRate); // 设置手续费率 //SetSlippage(Enum_Rate_PointPerHand, 2); // 设置滑点为2跳/手 //SetOrderPriceOffset(2); // 设置委托价为叫买/卖价偏移2跳 //SetOrderMap2MainSymbol(); // 设置委托映射到主力 //SetOrderMap2AppointedSymbol(symbols, multiples); // 设置委托映射到指定合约,symbols是映射合约数组,multiples是映射倍数数组 } // 与数据源无关 //SetBeginBarMaxCount(10); // 设置最大起始bar数为10 //SetBackBarMaxCount(10); // 设置最大回溯bar数为10 //=========交易相关设置============== //SetInitCapital(1000000); // 设置初始资金为100万 //AddTradeFlag(Enum_Trade_Ignore_Buy()); // 设置忽略多开 //AddTradeFlag(Enum_Trade_Ignore_Sell()); // 设置忽略多平 //AddTradeFlag(Enum_Trade_Ignore_SellShort()); // 设置忽略空开 //AddTradeFlag(Enum_Trade_Ignore_Buy2Cover()); // 设置忽略空平 } // 在所有的数据源准备完成后调用,应用在数据源的设置等操作 OnReady() { } // 基础数据更新事件函数 OnDic(StringRef dicName, StringRef dicSymbol, DicDataRef dicValue) { } // 在新bar的第一次执行之前调用一次,参数为新bar的图层数组 OnBarOpen(ArrayRef<Integer> indexs) { } // Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) { if (hasSoldOpen == 0) { // 上线就卖出开仓一手 SellShort(1, Open); hasSoldOpen = 1; } } // 下一个Bar开始前,重新执行当前bar最后一次,参数为当前bar的图层数组 OnBarClose(ArrayRef<Integer> indexs) { } // Tick更新事件函数,需要SubscribeTick函数订阅后触发,参数evtTick表示更新的tick结构体 OnTick(TickRef evtTick) { if (hasSoldOpen == 1 && hasClosed == 0) { // 获取当前时间 //Numeric currentTime = TimeNum; // 转换为小时和分钟 //Numeric hour = Floor(currentTime / 10000); //Numeric minute = Floor((currentTime - hour * 10000) / 100); if (hour == 22 && minute == 55) { // 22点55分平仓 BuyToCover(1, Close); hasClosed = 1; } } } // 持仓更新事件函数,参数pos表示更新的持仓结构体 OnPosition(PositionRef pos) { } // 策略账户仓更新事件函数,参数pos表示更新的账户仓结构体 OnStrategyPosition(PositionRef pos) { } // 委托更新事件函数,参数ord表示更新的委托结构体 OnOrder(OrderRef ord) { } // 成交更新事件函数,参数ordFill表示更新的成交结构体 OnFill(FillRef ordFill) { } // 定时器更新事件函数,参数id表示定时器的编号,millsecs表示定时间的间隔毫秒值 OnTimer(Integer id, Integer intervalMillsecs) { } // 通用事件触发函数,参数evtName为事件名称,参数evtValue为事件内容 OnEvent(StringRef evtName, MapRef<String, String> evtValue) { } // 当前策略退出时触发 OnExit() { }//------------------------------------------------------------------------// 编译版本 2025/02/25 214429// 版权所有 gjqh809202799// 更改声明 TradeBlazer Software保留对TradeBlazer平台// 每一版本的TradeBlazer公式修改和重写的权利//------------------------------------------------------------------------可以回测,为啥实盘就是没法成功下单呢。做的标的是豆粕期权,卖出开仓操作。

是没出信号,还是出了信号不报单,还是报单了没成交,说详细