止盈止损价格计算

If(BuySignal && MarketPosition == 0) // 如果有买入信号且当前无持仓

           {

               If(Abs(MarketPosition) < MaxPosition) // 如果持仓数量小于最大持仓限制

               {

                   Buy(1, Open); // 开多仓1手,使用开盘价成交

                   EntryPrice = Open; // 记录开仓价格

                   StopLossPrice = (EntryPrice * (1 - StopLossPercent)); // 计算止损价格:开仓价*(1-止损百分比)

                   TakeProfitPrice = (EntryPrice * (1 + TakeProfitPercent)); // 计算止盈价格:开仓价*(1+止盈百分比)

                   Commentary("买入信号!综合评分: " + Text(FinalScore, 2)); // 显示买入信号信息

                   Commentary("止盈价格: " + Text(TakeProfitPrice));

                   Commentary("止损价格: " + Text(StopLossPrice));

               }

           }

   

           //// ===== 卖出逻辑 =====

           If(SellSignal && MarketPosition == 0) // 如果有卖出信号且当前无持仓

           {

               If(Abs(MarketPosition) < MaxPosition) // 如果持仓数量小于最大持仓限制

               {

                   SellShort(1, Open); // 开空仓1手,使用开盘价成交

                   EntryPrice = Open; // 记录开仓价格

                   StopLossPrice = EntryPrice * (1 + StopLossPercent); // 计算止损价格:开仓价*(1+止损百分比)

                   TakeProfitPrice = EntryPrice * (1 - TakeProfitPercent); // 计算止盈价格:开仓价*(1-止盈百分比)

                   Commentary("卖出信号!综合评分: " + Text(FinalScore, 2)); // 显示卖出信号信息

               }

           }

   

           // ===== 平仓逻辑 =====

           If(MarketPosition > 0) // 如果持有多头仓位(持仓数大于0)

           {

               //// 止损平仓

               If(Low <= StopLossPrice) // 如果最低价触及或低于止损价格

               {

                   Sell(0, Min(Open, StopLossPrice)); // 平仓,使用开盘价和止损价中的较小值

                   Commentary("止损平仓"); // 显示止损信息

               }

               // 止盈平仓

               Else If(High >= TakeProfitPrice) // 如果最高价触及或高于止盈价格

               {

                   Sell(0, Max(Open, TakeProfitPrice)); // 平仓,使用开盘价和止盈价中的较大值

                   Commentary("止盈平仓: " + Text(Open)); // 显示止盈信息

                 

               }

               //// 信号反转平仓

               Else If(FinalScore <= SellThreshold) // 如果综合评分转负,达到卖出阈值

               {

                   Sell(0, Open); // 平仓,使用开盘价

                   Commentary("信号反转平仓"); // 显示反转平仓信息

               }

           }

           Else If(MarketPosition < 0) // 如果持有空头仓位(持仓数小于0)

           {

               //// 止损平仓

               If(High >= StopLossPrice) // 如果最高价触及或高于止损价格

               {

                   BuyToCover(0, Max(Open, StopLossPrice)); // 平仓,使用开盘价和止损价中的较大值

                   Commentary("止损平仓"); // 显示止损信息

               }

               // 止盈平仓

               Else If(Low <= TakeProfitPrice) // 如果最低价触及或低于止盈价格

               {

                   BuyToCover(0, Min(Open, TakeProfitPrice)); // 平仓,使用开盘价和止盈价中的较小值

                   Commentary("止盈平仓"); // 显示止盈信息

               }

               // 信号反转平仓

               Else If(FinalScore >= BuyThreshold) // 如果综合评分转正,达到买入阈值

               {

                   BuyToCover(0, Open); // 平仓,使用开盘价

                   Commentary("信号反转平仓"); // 显示反转平仓信息

               }

           }

   }请老师帮吗看看止盈止损价格是不是计算有问题,用主力连续运行计算显示是后复权,价格应该如何计算,用主力合约计算应该如何计算,现在是开仓后就平仓,计算的价格和平仓价格也不一样。请老师解惑,或有相关文档推荐一下


止盈止损代码编写
关于止损止盈的写法
代码中止盈止损不起作用
根据账户权益止盈止损
只设置开仓和止损,不设置止盈
如何设置固定金额止损止盈
关于Stop函数止盈止损的历史回测问题
多空移动止盈止损线源码
止损止盈优化参数如何移植到其他策略
账户手工开仓后,怎样利用开拓者平台对该手工仓单进行止盈止损(对于止盈最好能实现浮动止盈)

你这代码ai味儿很浓啊