//------------------------------------------------------------------------
// 简称: 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,我试过,确实是我的代码可以控制,但明明是一个策略啊,为什么会分开成两个,晕
明天我也拷贝了学习一下👍
另外一个帖子的视频我看过了
我只能说把我难到了
复制代码以后显示是正常的,无法复现。
我建议你删除原公式策略,新建一个新的,再试试
有可能是历史操作hide掉了macde图线导致不显示,而你忘记了
遇到一个有点贴的梗图
你的截图体现不出你说的问题
不过说的问题我好像也没看懂
复制你的代码 MACD显示没有问题呀
哦,是我没说明白,你看一下我截图就明白了,在附件里。我的意思是明明我是写在一个策略,为什么在右键-策略应用设置里显示是两个公式,而且可以勾选掉MACD。
哎....你那个图....
如果我同时加载你的代码和系统MACD,显示出来的是这个样子
回复里不能发视频啊,感谢你如此认真的回复,我重新发一个贴,附我录屏的,你帮我看一下。
我看了你的视频
确实是意想不到的问题
只能等老师们或者其他更有经验的同学来了
没用过TBQ3
感觉好难
真的不难
比你研究的期权简单多了
反正迟早要迁移的
不过也不一定 或许等再过几年 直接迁移到下一代