1、我们以日线的均线交叉来判断大趋势,然后在5分钟图上来做交易;
2、日线的短期均线上穿长期均线,则只做多,不做空;反之只做空,不做多;
3、确定了大趋势后,我们再根据5分钟图来判断小趋势,以决定进场时机。我们仍然用均线来判断,在多头大趋势下,如果5分钟的短期均线上穿长期均线,则进场做多,反穿出场,但不反手做空;在空头大趋势下,类似;
我们在5分钟图上调用刚才的函数的来实现。新建公式应用TestMtMa,代码如下:
Params
Numeric TimeFrame(1440); // 目标时间周期参数,参数说明参见MtBar
Numeric BarsBack(1); // 目标时间周期BAR偏移参数,说明见MtBar函数
Numeric Length1(10); // 大周期的短期均线周期
Numeric Length2(20); // 大周期的长期均线周期
Numeric Length3(10); // 小周期的短期均线周期
Numeric Length4(20); // 小周期的长期均线周期
Numeric Lots(1);
Vars
NumericSeries MA1;
NumericSeries MA2;
Numeric oMA1;
Numeric oMA2;
NumericSeries MA3;
NumericSeries MA4;
Begin
MtMa(TimeFrame,BarsBack,Length1,oMA1);
MA1 = oMA1;
PlotNumeric("MA1",MA1);
MtMa(TimeFrame,BarsBack,Length2,oMA2);
MA2 = oMA2;
PlotNumeric("MA2",MA2);
MA3 = AverageFC(Close,Length3);
MA4 = AverageFC(Close,Length4);
PlotNumeric("MA3",MA3);
PlotNumeric("MA4",MA4);
If (MA1>MA2) // 大周期均线金叉,多头趋势
{
if (MarketPosition!=1 and MA3[1]>MA4[1])
{
Buy(Lots,Open);
}
if (MarketPosition==1 and MA3[1]<MA4[1])
{
Sell(Lots,Open);
}
}
If (MA1<MA2) // 大周期均线死叉,空头趋势
{
if (MarketPosition!=-1 and MA3[1]<MA4[1])
{
SellShort(Lots,Open);
}
if (MarketPosition==-1 and MA3[1]>MA4[1])
{
BuyToCover(Lots,Open);
}
}
End
如有需要,请加QQ:99515681 微信:codinghelp
原文地址:https://www.cnblogs.com/TBCode/p/9185883.html