请老师帮我看看这个代码

下面我用deepseek帮我写的代码,我是这样提问的:好的,我现在需要你以上面语法规则帮我写一段关于原油期货的代码,需求是开盘价小于前一日收盘价,并且价差小于30个点,在价位达到开盘价上涨15个点时开空单,止损为15个点,止盈为100个点,当日14点50,无论是否达到止盈止损的条件,都平仓。

现在运行的时候,全自动运行的时候,感觉和我的预期不一样,看不到资金变化的结果,请帮我看看

//------------------------------------------------------------------------

// 简称: CrudeOil_ShortStrategy

// 名称: 原油期货空单策略

// 类别: 公式应用

// 类型: 内建应用

// 输出:

//------------------------------------------------------------------------

Params

   Numeric StopLoss(15);        // 止损点数

   Numeric TakeProfit(100);     // 止盈点数

   Numeric SpreadThreshold(30); // 价差阈值(点数)

   Numeric TriggerPoint(15);    // 触发开仓的上涨点数

   Numeric ExitTime(1450);      // 平仓时间(14:50,格式HHMM)

Vars

   Numeric EntryPrice(0);       // 开仓价格

   Numeric StopLossPrice(0);    // 止损价格

   Numeric TakeProfitPrice(0);  // 止盈价格

   Bool Condition1(False);      // 条件1:开盘价 < 前一日收盘价

   Bool Condition2(False);      // 条件2:价差 < 30点

   Bool Condition3(False);      // 条件3:价格上涨15点

Events

   OnBar(ArrayRef<Integer> indexs)

   {

       // 确保只在当日第一个Bar判断开仓条件(避免重复计算)

       If (BarStatus == 2) {

           // 条件1:当日开盘价 < 前一日收盘价

           Condition1 = Open < Close[1];

           

           // 条件2:价差(前一日收盘价 - 当日开盘价)< 30点

           // 使用MinMove转换点数(假设原油期货最小变动单位0.01,1点=1美元)

           Condition2 = (Close[1] - Open) < SpreadThreshold * MinMove;

           

           // 条件3:当前最高价 >= 开盘价 + 15点

           Condition3 = High >= (Open + TriggerPoint * MinMove);

           

           // 满足所有条件且无空仓时,开空单

           If (MarketPosition != -1 And Condition1 And Condition2 And Condition3) {

               EntryPrice = Open + TriggerPoint * MinMove;  // 开仓价格为触发价

               SellShort(1, EntryPrice);                   // 开空单(1手)

               

               // 计算止损止盈价格

               StopLossPrice = EntryPrice + StopLoss * MinMove;  // 止损价(空单方向向上)

               TakeProfitPrice = EntryPrice - TakeProfit * MinMove; // 止盈价(空单方向向下)

           }

       }

       

       // 如果持空仓,检查止损止盈或平仓时间

       If (MarketPosition == -1) {

           // 情况1:触发止损(最新价 >= 止损价)

           If (High >= StopLossPrice) {

               BuyToCover(0, StopLossPrice);  // 止损平仓

               Commentary("触发止损,平仓价格:" + Text(StopLossPrice));

           }

           

           // 情况2:触发止盈(最新价 <= 止盈价)

           If (Low <= TakeProfitPrice) {

               BuyToCover(0, TakeProfitPrice); // 止盈平仓

               Commentary("触发止盈,平仓价格:" + Text(TakeProfitPrice));

           }

           

           // 情况3:到达平仓时间(当前时间 >= 14:50)

           // Time返回值为小数格式(如14:50对应0.14583333)

           If (Time >= ExitTime / 2400.0) {

               BuyToCover(0, Close);  // 以收盘价平仓

               Commentary("到达平仓时间,平仓价格:" + Text(Close));

           }

       }

   }

//------------------------------------------------------------------------

// 编译版本 GS2023.10.25

// 版权所有 TradeBlazer Software

//------------------------------------------------------------------------

老师,麻烦你帮我看看这个是怎么回事呢?
请老师帮我看看这个错在哪里?
老师,帮我看看这个怎么转换,谢谢
请教!!!麻烦老师帮我看看代码的问题
请老师帮忙看看这个代码
跨周期的问题那位老师帮我看看
请帮我分析一下这段代码
请老师帮忙看看代码的错误
请老师看看,代码问题
哪位大神老师帮我看看哪里不对

ai写的看不了


这注意不错

让ds写个大概 找人帮忙debug

动脑子的事情全部外包!!!

我怎么没想到!这个办法值得推广!