初学者求个最简单的MACD的完整源码,只要能正常跑程序就行,谢谢。
王老师,您好!为什么是加载这个策略后,比如开始是空单,转多的时候,不是把原先的持仓平仓。而是新开多,变成多空都有持仓的啊!
默认不会同时持有多空
这个策略是偷价的,要修改下
可以正常运行了,非常感谢。
//------------------------------------------------------------------------
// 简称: MACD
// 名称: 平滑异同移动平均线
// 类别: 公式应用
// 类型: 内建应用
//------------------------------------------------------------------------
Params
Numeric FastLength(12);
Numeric SlowLength(26);
Numeric MACDLength(9);
Vars
Numeric MACDDiff;
Numeric AvgMACD;
Series<Numeric> MACDValue;
Events
OnBar(ArrayRef<Integer> indexs)
{
Range[0:DataSourceSize() - 1]
{
MACDDiff = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;
AvgMACD = XAverage(MACDDiff,MACDLength);
MACDValue = MACDDiff - AvgMACD;
//PlotNumeric(\"MACDDiff\",MACDDiff);
//PlotNumeric(\"MACDDEA\",AvgMACD);
If (MACDValue >= 0 and MarketPosition<=0)
{
buy(1,open);
//PlotAuto(\"MACD\",MACDValue,0,Red,Enum_Bar);
}
Else if(MACDValue < 0 and MarketPosition>=0)
{
SellShort(1,open);
//PlotAuto(\"MACD\",MACDValue,0,Green,Enum_Bar);
}
//PlotNumeric(\"零线\",0);
}
}
//------------------------------------------------------------------------
// 编译版本 GS2010.12.08
// 版权所有 TradeBlazer Software 2003-2025
// 更改声明 TradeBlazer Software保留对TradeBlazer平
// 台每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
macd不是系统自带的么,这还要求什么