求一个1分钟调用5分钟MACD三大指标的源代码 老课程视频实在是看不完 每个视频最多看10分钟就完全卡住了 看了一个星期还没看完半个视频 请哪位老师分享一个完整的代码 只需在1分钟周期比较5分钟周期是否Diff>Diff[1] MACD>MACD[1] 如果还能比较30分钟周期MACD指标更好
经多位同事测试,视频观看没有任何问题,请换浏览器或者电脑解决观看问题。



//------------------------------------------------------------------------
// 简称: TB_zs578040916
// 名称:
// 类别: 策略应用
// 类型: 用户应用
// 输出: Void
//------------------------------------------------------------------------
//在1分钟周期比较5分钟周期是否Diff>Diff[1] MACD>MACD[1] 如果还能比较30分钟周期MACD指标更好
Params
//此处添加参数
Numeric Fastlength(12); //macd短周期值
Numeric Slowlength(26); //macd长周期值
Numeric Macdlength(9); //MACD慢线周期值
Numeric Lots(1); //交易手数
Vars
//此处添加变量
Bool Isrollover(true);//是否后复权
Bool Isrolloverrealprice(true);//是否映射真实价格
Bool IsautoSwapposition(true);//是否自动换仓
Series<Numeric> Macddiff; //macd快线
Series<Numeric> Avgmacd;//macd慢线
Series<Numeric> Macdvalue;//macd
Defs
//此处添加公式函数
Events
//此处实现事件函数
OnInit()
//设置周期
{
SubscribeBar(data0.Symbol,"3m",Data0.BeginDateTime); //1:3分钟K线
SubscribeBar(data0.Symbol,"5m",data0.BeginDateTime); //2:5分钟K线
SubscribeBar(data0.Symbol,"10m",data0.BeginDateTime); //3:10分钟K线
SubscribeBar(data0.Symbol,"15m",data0.BeginDateTime); //4:15分钟K线
SubscribeBar(data0.Symbol,"30m",data0.BeginDateTime); //5:30分钟K线
SubscribeBar(data0.Symbol,"1h",data0.BeginDateTime); //6:1小时K线
SubscribeBar(data0.Symbol,"2h",data0.BeginDateTime); //7:2小时K线
SubscribeBar(data0.Symbol,"3h",data0.BeginDateTime); //7:3小时K线
SubscribeBar(data0.Symbol,"4h",data0.BeginDateTime); //8:4小时K线
SubscribeBar(data0.Symbol,"1d",data0.BeginDateTime); //9:1日K线
SubscribeBar(data0.Symbol,"1w",data0.BeginDateTime); //10:1周K线
SubscribeBar(data0.Symbol,"1mon",data0.BeginDateTime); //11:1月K线
//交易设置
Range[0:DataCount-1]
{
If(IsRollover)
{
AddDataFlag(Enum_Data_RolloverBackWard());//设置后复权
}
If(IsRolloverRealPrice)
{
AddDataFlag(Enum_Data_RolloverRealPrice());//是否映射真实价格
}
If(IsAutoSwapPosition)
{
AddDataFlag(Enum_Data_AutoSwapPosition());//设置自动换仓
}
}
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer>indexs)
{
Range [0:Datacount - 1]
{
//计算macd
MACDDiff = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;
AvgMACD = XAverage(MACDDiff, MACDLength);
MACDValue = 2 * (MACDDiff - AvgMACD);
}
//在1分钟周期比较5分钟周期是否Diff>Diff[1] MACD>MACD[1] 如果还能比较30分钟周期MACD指标更好
//开多单
If(MarketPosition<=0 and
(data[2].MACDDiff>data[2].MACDDiff[1] And data[2].MACDValue>data[2].MACDValue[1])
And (data[5].MACDDiff>data[5].MACDDiff[1] And data[5].MACDValue>data[5].MACDValue[1]))
{
Buy(Lots,Open);//平空开多
Commentary("平空开多");
}
//开空单
If(MarketPosition>=0 And
(data[2].MACDDiff<data[2].MACDDiff[1] And data[2].MACDValue<data[2].MACDValue[1])
And (data[5].MACDDiff<data[5].MACDDiff[1] And data[5].MACDValue<data[5].MACDValue[1]))
{
SellShort(Lots,Open);//平多开空
Commentary("平多开空");
}
}
//------------------------------------------------------------------------
// 编译版本 2025/10/17 1396/1762/277
// 版权所有 jswxyfx
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TradeBlazer策略修改和重写的权利
//------------------------------------------------------------------------
感谢大佬 祝福大佬财源滚滚如江河不绝
MACD信号会闪烁可用data[2].MACDDiff[1]>data[2].MACDDiff[2],或要拆解MACD计算代码改Close的取值,可用数组来计算取Close,Buy(Lots,Open);Open会偷价,策略报告会不正确,可用data[2].MACDDiff=data[2].MACDDiff[1]来推算出一个价格值作为开仓价,这样计算出来的策略报告相对正确。
大佬你好,可否帮我编写一个策略,有没有 联 系 方 式
简单的可以试试,你发贴呀😉