我用chatgtp 编译成功了一个策略,有老师高手请求指点,谢谢!



我用chatgtp 编译成功了一个策略,但是回测的时候1000个样本发现才成交一次,有老师高手请求指点,谢谢!

老师:GetTBProfileString2File 函数 难道有BUG???? 请老师指点 谢谢
老师请问slope这个函数应该怎么用啊?我编译就显示变量没有定义,谢谢。
求高手给编辑一个公式,有哪位大哥愿意帮忙的,请留言谢谢啦
求高手代写一个策略
请求一个模拟账户
有没有高手可以帮忙编写一个简单的策略,有酬谢
公式无法编译,请求帮忙
求教高手老师
求高手帮忙写一个策略
实盘不能成功下单。头寸挂上了,编译了。也可以成功回测

这帮不了忙

代码这种东西有问题,就得问作者,谁写的,谁清楚

ai写的,那你还是得问ai

不知道哪里出错了,还请帮忙

Params

   Numeric MaLen(10);                       // 均线周期10

   Numeric CrossThreshold(0.1);             // 判断阳线或阴线的阈值,十字星判定

   Numeric StopLossBars(3);                 // 止损K线数(最近3根K线)


Vars

   Series<Numeric> Ma10(0);                 // 存储均线10的值

   Series<Bool> BullSignal(False);          // 多头信号标识

   Series<Bool> BearSignal(False);          // 空头信号标识

   Numeric ClosePrice(0);                   // 当前收盘价

   Numeric OpenPrice(0);                    // 当前开盘价

   Numeric Qty(1);                          // 每次买卖的数量

   Numeric LowestLow(0);                    // 最近3根K线最低价

   Numeric HighestHigh(0);                  // 最近3根K线最高价

   Series<Numeric> IntMa10(0);              // 存储均线10的整数部分(每根K线的整数部分)

   Series<Numeric> IntPrevMa(0);            // 存储前一根K线的均线10整数部分

   Series<Numeric> IntPrevPrevMa(0);        // 存储再前一根K线的均线10整数部分

   Bool BuySignal(False);                   // 买入信号

   Bool SellSignal(False);                  // 卖出信号

   Numeric TradeCount(0);                   // 累加交易次数


Events

   OnBar(ArrayRef<Integer> indexs)

   {

       // 计算均线10的值

       Ma10 = XAverage(Close, MaLen);

       

       // 手动取整数部分(去掉小数部分)

       IntMa10 = (Ma10 - (Ma10 % 1));  // 获取每根K线的整数部分

       IntPrevMa = (Ma10[1] - (Ma10[1] % 1));  // 前一根K线的整数部分

       IntPrevPrevMa = (Ma10[2] - (Ma10[2] % 1));  // 再前一根K线的整数部分


       // 获取当前开盘价和收盘价

       ClosePrice = Close;

       OpenPrice = Open;


       // 判断买入条件(均线向上拐,阳线或十字星,且价格在均线10之上)

       BullSignal = (IntMa10 > IntPrevMa) AND (IntPrevMa >= IntPrevPrevMa) AND (ClosePrice > OpenPrice OR Abs(ClosePrice - OpenPrice) <= CrossThreshold) AND (ClosePrice > Ma10);

       

       // 判断卖出条件(均线向下拐,阴线或十字星,且价格在均线10之下)

       BearSignal = (IntMa10 < IntPrevMa) AND (IntPrevMa <= IntPrevPrevMa) AND (ClosePrice < OpenPrice OR Abs(ClosePrice - OpenPrice) <= CrossThreshold) AND (ClosePrice < Ma10);


       // 计算最近3根K线的最低价和最高价

       LowestLow = Lowest(Low, StopLossBars);    // 获取最近3根K线的最低价

       HighestHigh = Highest(High, StopLossBars); // 获取最近3根K线的最高价


       // 如果满足买入条件,设置买入信号

       If (MarketPosition == 0 AND BullSignal)

       {

           BuySignal = True; // 标记下一根K线开盘时进行买入

       }


       // 如果满足卖空条件,设置卖空信号

       If (MarketPosition == 0 AND BearSignal)

       {

           SellSignal = True; // 标记下一根K线开盘时进行卖空

       }


       // 在下一根K线的开盘时执行买入或卖空

       If (BuySignal)

       {

           Buy(Qty, Open); // 在下一根K线开盘时买入

           TradeCount = TradeCount + 1; // 增加交易次数

           BuySignal = False; // 重置买入信号

       }


       If (SellSignal)

       {

           SellShort(Qty, Open); // 在下一根K线开盘时卖空

           TradeCount = TradeCount + 1; // 增加交易次数

           SellSignal = False; // 重置卖空信号

       }


       // 止损条件:买多时,当前价格低于最近3根K线的最低价

       If (MarketPosition == 1 AND ClosePrice < LowestLow)

       {

           // 止损平仓

           Sell(Qty, Close); // 平仓,使用市场价格

           TradeCount = TradeCount + 1; // 增加交易次数(止损平仓视为交易)

       }


       // 止损条件:卖空时,当前价格高于最近3根K线的最高价

       If (MarketPosition == -1 AND ClosePrice > HighestHigh)

       {

           // 止损平仓

           BuyToCover(Qty, Close); // 平仓,使用市场价格

           TradeCount = TradeCount + 1; // 增加交易次数(止损平仓视为交易)

       }


     

   }