日线策略输出: PlotBool("LongSignal", Final_Long_Entry); // 供主策略引用
PlotBool("ShortSignal", Final_Short_Entry); // 供主策略引用
周线策略输出:PlotNumeric("Score", TotalScore * 100); // 供主策略引用
主策略引用上面的日线和周线策略
Params
Numeric WeekLongThreshold(60); // 周线得分 > 60 视为强势
Numeric WeekShortThreshold(40); // 周线得分 < 40 视为弱势
Numeric Lots(1); // 交易手数
Bool UseYesterdayDailySignal(True); // True:使用昨日日线信号; False:使用当日盘中信号
Vars
Numeric CurrentHour;
Numeric CurrentMinute;
Numeric Fixed_WeekScore;
Bool Fixed_DailyLong;
Bool Fixed_DailyShort;
Bool FinalBuySignal;
Bool FinalSellSignal;
Bool IsMonday;
Events
OnBar(ArrayRef<Integer> indexs)
{
CurrentHour = Hour;
CurrentMinute = Minute;
// 仅在 14:50 执行
If (!(CurrentHour == 14 && CurrentMinute == 50)) Return;
// 判断周一(根据实际测试调整 DayOfWeek 返回值)
IsMonday = (DayOfWeek(Date) == 2); // 假设周一=2
// 引用周线得分(处理周一/非周一)
If (IsMonday)
Fixed_WeekScore = Data2.Score[1];
Else
Fixed_WeekScore = Data2.Score[0];
// 引用日线信号(可选昨日信号)
If (UseYesterdayDailySignal) {
Fixed_DailyLong = Data1.LongSignal[1];
Fixed_DailyShort = Data1.ShortSignal[1];
} Else {
Fixed_DailyLong = Data1.LongSignal[0];
Fixed_DailyShort = Data1.ShortSignal[0];
}
// 容错处理
If (!Valid(Fixed_WeekScore)) Fixed_WeekScore = 50;
If (!Valid(Fixed_DailyLong)) Fixed_DailyLong = False;
If (!Valid(Fixed_DailyShort)) Fixed_DailyShort = False;
// 信号合成
FinalBuySignal = Fixed_DailyLong And (Fixed_WeekScore > WeekLongThreshold);
FinalSellSignal = Fixed_DailyShort And (Fixed_WeekScore < WeekShortThreshold);
// 执行开仓
If (FinalBuySignal && MarketPosition == 0) {
Buy(Lots, Open);
Alert("14:50 锁定做多!周线得分:" + Text(Fixed_WeekScore));
} Else If (FinalSellSignal && MarketPosition == 0) {
SellShort(Lots, Open);
Alert("14:50 锁定做空!周线得分:" + Text(Fixed_WeekScore));
}
}

这个报错应该还挺好理解的吧,这几个对象你没有定义啊
我感觉不像是你自己写的吧?你自己写的不可能问这样的问题
建议问一下作者