老师帮忙看下代码为什么编译不了,帮忙改下
//------------------------------------------------------------------------// 简称: EnhancedDualMA_Strategy// 类型: 多周期复合策略//------------------------------------------------------------------------Params // 基础参数 Numeric Capital(20000); // 初始资金 Numeric RiskPerTrade(0.01); // 单笔风险比例 // 三重滤网参数 Numeric TrendPeriod(50); // 趋势确认EMA周期(周线) Numeric EntryFastLength(5); // 入场快线周期(日线) Numeric EntrySlowLength(20); // 入场慢线周期(日线) Numeric RSI_Period(14); // RSI周期 Numeric ATR_Period(14); // 波动率周期 Vars // 多周期变量 Series<Numeric> WeeklyEMA; // 周线趋势 Series<Numeric> DailyMA_Fast; // 日线快线 Series<Numeric> DailyMA_Slow; // 日线慢线 Series<Numeric> RSI; // 震荡指标 Series<Numeric> ATRValue; // 波动率 // 交易管理 Numeric ContractSize; // 合约乘数 Numeric MaxLots; // 最大仓位 Numeric StopDistance; // 动态止损 Numeric TargetDistance; // 动态止盈 BoolSeries TrendConfirmed; // 趋势确认标志Begin //==== 多周期数据获取 ====// // 周线EMA趋势判断(通过日线数据模拟) If(Date != Date[1]) { WeeklyEMA = XAverage(C, TrendPeriod); } // 日线双均线(通过5分钟数据模拟) DailyMA_Fast = AverageFC(C, EntryFastLength*48); // 5分钟->日线换算 DailyMA_Slow = AverageFC(C, EntrySlowLength*48); //==== 指标计算 ====// RSI = RSI_FC(C, RSI_Period); ATRValue = AvgTrueRange(ATR_Period); //==== 动态仓位计算 ====// ContractSize = ContractUnit(ContractID); StopDistance = 1.5 * ATRValue; // 1.5倍ATR止损 TargetDistance = 3 * ATRValue; // 3倍ATR止盈 MaxLots = IntPart((Capital * RiskPerTrade) / (StopDistance * ContractSize)); MaxLots = Max(MaxLots, 1); // 至少1手 //==== 三重滤网逻辑 ====// // 第一层滤网 - 趋势方向 TrendConfirmed = (C > WeeklyEMA) && (DailyMA_Fast > DailyMA_Slow); //==== 交易信号生成 ====// If(TrendConfirmed) { // 多头趋势 // 第二层滤网 - RSI过滤 If(RSI < 70 && CrossOver(C, DailyMA_Fast)) { // 第三层滤网 - 价格突破 If(C > Highest(H, 3)) { Buy(MaxLots, C); SetStopLoss(C - StopDistance); SetProfitTarget(C + TargetDistance); } } } Else { // 空头趋势 If(RSI > 30 && CrossUnder(C, DailyMA_Fast)) { If(C < Lowest(L, 3)) { SellShort(MaxLots, C); SetStopLoss(C + StopDistance); SetProfitTarget(C - TargetDistance); } } } //==== 风险管理 ====// // 日内强制平仓 If(Time >= 0.1455) { Sell(0, C); BuyToCover(0, C); } // 单日最大亏损控制 If(NumericProfitLoss < -Capital*0.03) { Sell(0, C); BuyToCover(0, C); }End//------------------------------------------------------------------------// 配套函数库//------------------------------------------------------------------------// 合约乘数查询函数Function Numeric ContractUnit(String ContractID)Begin Switch(ContractID) Case "rb": Return 10; // 螺纹钢 Case "TA": Return 5; // PTA Case "m": Return 10; // 豆粕 Default: Return 1; EndSwitchEnd// 多品种参数适配Function SetParameters(String ContractID)Begin Switch(ContractID) Case "rb": // 螺纹钢 EntryFastLength = 5; EntrySlowLength = 25; RSI_Period = 14; Break; Case "TA": // PTA EntryFastLength = 8; EntrySlowLength = 40; RSI_Period = 10; Break; Case "m": // 豆粕 EntryFastLength = 6; EntrySlowLength = 30; RSI_Period = 12; Break; EndSwitchEnd