请老师帮忙,在编译时显示的错误

ATRVal = AvgTrueRange(ATRLength);编译时显示无法识别字符串ATRVal。请文怎么改?

我建议先系统学习一下语法。

请发完整代码

回复:// 文华8麦语言趋势策略(最终修正版)// 2024.04更新(兼容WH8 V8.2+)// 修正内容:调整平仓信号写法,移除手数参数//============== 参数输入区 ==============//INPUT: // MACD参数 SHORT(12,5,50), // MACD短期EMA LONG(26,20,100), // MACD长期EMA M(9,5,20), // DEA周期 X(3,2,5), // MACD连续确认周期 // ADX参数 ADX_PERIOD(14,10,20), // ADX周期 ADX_THRESHOLD(25,20,30),// ADX趋势阈值 // 时间过滤 TRADE_START(930,0,2359),// 交易开始时间 TRADE_END(1455,0,2359), // 交易结束时间 // 仓位管理参数 RISK_RATIO(0.02,0.01,0.05), // 单笔风险比例(1%-5%) MAX_POS(3,1,10), // 最大持仓手数 // 止损参数 ATR_PERIOD(14,10,20), // ATR计算周期 ATR_MULTIPLE(2,1,3), // ATR止损倍数 TRAILING_STOP(1,0,1); // 是否启用移动止损(0:否,1:是)//============== 指标计算区 ==============//// 基础指标DIFF := EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);DEA := EMA(DIFF,M);MACD := 2*(DIFF-DEA);// 趋势强度指标DI_PLUS := DIPLUS(ADX_PERIOD);DI_MINUS := DIMINUS(ADX_PERIOD);ADX_VAL := ADX(ADX_PERIOD);// 波动率指标TR := MAX(MAX(HIGH-LOW,ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));ATR := MA(TR,ATR_PERIOD);// 多时间框架确认(引用日线趋势)DAY_TREND_UP := STKINDI('','MACD.DIFF',0,26,12,9) > STKINDI('','MACD.DEA',0,26,12,9);DAY_TREND_DOWN := STKINDI('','MACD.DIFF',0,26,12,9) < STKINDI('','MACD.DEA',0,26,12,9);//============== 仓位计算区 ==============//// 动态仓位计算(基于ATR和风险比例)CAPITAL := 1000000; // 假设初始资金100万UNIT_SIZE := INTPART((CAPITAL*RISK_RATIO)/(ATR*MULTIPLIER/10));POS_SIZE := MIN(UNIT_SIZE,MAX_POS);//============== 信号过滤条件 ==============//TRADE_TIME := TIME >= TRADE_START AND TIME < TRADE_END; // 时段过滤TREND_UP := ADX_VAL > ADX_THRESHOLD AND DI_PLUS > DI_MINUS AND DAY_TREND_UP; // 上升趋势(多时间框架)TREND_DOWN := ADX_VAL > ADX_THRESHOLD AND DI_MINUS > DI_PLUS AND DAY_TREND_DOWN; // 下降趋势(多时间框架)MACD_UP := COUNT(MACD>REF(MACD,1),X)=X; // 连续X周期上涨MACD_DOWN := COUNT(MACD<REF(MACD,1),X)=X; // 连续X周期下跌NO_HOLDING := BKVOL + SKVOL = 0; // 无持仓状态//============== 止损计算 ==============//// 初始止损价LONG_STOP_PRICE := ENTERP

回复:你这个不是我们软件的代码,无法在我们的软件上使用更不用说你的代码里面根本没有这一行 ATRVal = AvgTrueRange(ATRLength)

回复:Params Numeric ATRLength(14); // ATR计算周期 Numeric VolRatioThreshold(2); // 量能放大阈值 Numeric MinATR(5); // 最小ATR值过滤 Numeric StopLossFactor(1.5); // 止损ATR倍数 Numeric TakeProfitFactor(2); // 止盈ATR倍数 Numeric PatternConfirmBars(3);// 形态确认K线数 Vars NumericSeries ATRVal(0); // ATR值 NumericSeries VolRatio(0); // 当前成交量/平均成交量 BoolSeries IsVolumeSpike(False); // 是否放量 BoolSeries IsReversalSignal(False); // 反转信号 NumericSeries HH(0); // 最近高点 NumericSeries LL(0); // 最近低点 BoolSeries IsTopPattern(False); // 顶部形态 BoolSeries IsBottomPattern(False); // 底部形态 Numeric myEntryPrice(0); // 入场价格 Numeric myStopLoss(0); // 止损位 Numeric myTakeProfit(0); // 止盈位// 计算ATR指标ATRVal = AverageTrueRange(ATRLength);// 计算量能比率(当前成交量/过去20周期平均成交量)VolRatio = Volume / Average(Volume, 20);IsVolumeSpike = VolRatio >= VolRatioThreshold;// 识别高低点(用于形态判断)HH = Highest(High, 5);LL = Lowest(Low, 5);// 简单顶部形态判断(三顶或双顶)IsTopPattern = (High[1] == HH[1]) And (High[2] < High[1]) And (High[3] < High[2]) And (Close < Open) And (Close[1] < Open[1]);// 简单底部形态判断(三底或双底)IsBottomPattern = (Low[1] == LL[1]) And (Low[2] > Low[1]) And (Low[3] > Low[2]) And (Close > Open) And (Close[1] > Open[1]);// 反转信号条件(量能配合ATR)IsReversalSignal = IsVolumeSpike And (ATRVal >= MinATR) And ((IsTopPattern And (Close < Low[1])) Or (IsBottomPattern And (Close > High[1])));// 交易逻辑If IsReversalSignal Then // 多头反转信号 If IsBottomPattern And MarketPosition <> 1 Then myEntryPrice = Close; myStopLoss = Low[1] - StopLossFactor * ATRVal; myTakeProfit = myEntryPrice + TakeProfitFactor * ATRVal; Buy(1, myEntryPrice); Commentary("多头入场 价格:" + Text(myEntryPrice) + " 止损:" + Text(myStopLoss) + " 止盈:" + Text(myTakeProfit)); SetStopLoss(myStopLoss); SetTakeProfit(myTakeProfit); EndIf // 空头反转信号 If IsTopPattern And MarketPosition <> -1 Then myEntryPrice = Close; myStopLoss = High[1] + StopLossFactor * ATRVal; myTakeProfit = myEntryPrice - TakeProfitFactor * ATRVal; SellShort(1, myEntryPrice); Commentary("空头入场 价格:" + Text(myEntryPrice) + " 止损:" + Text(myStopLoss) + " 止盈:" + Text(myTakeProfit)); SetStopLoss(myStopLoss); SetTakeProfit(myTakeProfit); EndIfEndIf// 放量止盈逻辑If MarketPosition <> 0 Then // 多头持仓放量止盈 If MarketPosition > 0 And IsVolumeSpike And Close < Open Then Sell(0, Close); Commentary("多头放量止盈 价格:" + Text(Close)); EndIf // 空头持仓放量止盈 If MarketPosition < 0 And IsVolumeSpike And Close > Open Then BuyToCover(0, Close); Commentary("空头放量止盈 价格:" + Text(Close)); EndIf // 形态突破止盈(针对持续形态) If BarsSinceEntry >= PatternConfirmBars Then // 多头持仓出现顶部形态 If MarketPosition > 0 And IsTopPattern Then Sell(0, Close); Commentary("多头形态止盈 价格:" + Text(Close)); EndIf // 空头持仓出现底部形态 If MarketPosition < 0 And IsBottomPattern Then BuyToCover(0, Close); Commentary("空头形态止盈 价格:" + Text(Close)); EndIf EndIfEndIf

回复:这个是 ,不好意思,发错一个时文华的,麻烦您了

回复:这个代码也不是我们软件的代码,无法在我们软件上使用