画图和预想的不一样
//------------------------------------------------------------------------ // 简称: MACD_short // 名称: MACD做空策略 // 类别: 策略应用 // 类型: 用户应用 // 输出: Void //------------------------------------------------------------------------ Params Numeric ma_fast(5); Numeric ma_slow(10); Numeric FastLength(12); Numeric SlowLength(26); Numeric MACDlength(9); Vars Series<Numeric> Nbar_lowest; Series<Numeric> Nbar_highest; Series<Numeric> MA5; Series<Numeric>MA10; Series <Numeric>MACDDiff; Series<Numeric> AvgMACD; Numeric MACDValue; Series<Bool> MACD_GC; //MACD金叉 Series<Bool> MACD_DC; //MACD死叉 Series<Bool> MA_GC; //MA金叉 Series<Bool> MA_DC; //MA死叉 Plot pen0; //主图 Plot pen1; //子图 Defs //此处添加策略函数 Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次 OnInit() { pen1.figure(0); } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) { //绘图 Range[0:DataSourceSize()-1] { Nbar_lowest = Lowest(L,10); Nbar_highest = Highest(H,10); pen0.line("10bar最低",Nbar_lowest); pen0.line("10bar最高",Nbar_highest); MA5 = AverageFC(Close,ma_fast); MA10 = AverageFC(Close,ma_slow); pen0.line("MA5",MA5); pen0.line("MA12",MA10); MACDDiff = XAverage(Close, FastLength) - XAverage(Close, SlowLength); AvgMACD = XAverage(MACDDiff, MACDlength); MACDValue = MACDDiff - AvgMACD; pen1.line("MACDDiff", MACDDiff); pen1.line("MACDDEA", AvgMACD); If(MACDValue > 0) pen1.setOption("MACD","color",Red); Else pen1.setOption("MACD","color",Blue); pen1.barv("MACD", MACDValue); pen1.barv("MACD", MACDValue); pen1.line("零线", 0); } //进出场条件 MA_GC = CrossOver(MA5,MA10); MA_DC = CrossUnder(MA5,MA10); MACD_GC = CrossOver(MACDDiff,AvgMACD); MACD_DC = CrossUnder(AvgMACD,MACDDiff); //交易 If(MA_DC[1] and MarketPosition == 0) { SellShort(1,O); } Else If(MACD_GC[1] and MarketPosition == -1) { BuyToCover(1,O); } } //------------------------------------------------------------------------ // 编译版本 2025/5/7 85247 // 版权所有 hero_2024 // 更改声明 TradeBlazer Software保留对TradeBlazer平台 // 每一版本的TradeBlazer策略修改和重写的权利 //------------------------------------------------------------------------我是菜鸟,请老师解惑,不胜感激:我把MACD指标写在我自己的策略里并在子图输出,可是为什么输出不显示,除非单独加载MACD,我试过,确实是我的代码可以控制,但明明是一个策略啊,为什么会分开成两个,晕