自己写的一个程序化交易策略,其思路是共振原理,当超长均线,长期均线,中期均线,短期均线都呈现多头排列时,容易出现多头行情……



但从实际测量结果看,效果很差



//————————————————————————

// 简称: _MA_MDH30_30Reverse

// 名称: MA月日时30分同向30分反转

// 类别: 公式应用

// 类型: 用户应用

// 输出:

//————————————————————————

Params

    Numeric length1(3);

    Numeric length2(6);

    Numeric length3(20);

    Numeric length4(50);

    Numeric length5(100);

    Numeric BuyLots(1);

Vars   

    NumericSeries AvgValue1;

    NumericSeries AvgValue2;

    NumericSeries AvgValue3;

    NumericSeries AvgValue4;

    NumericSeries AvgValue5;

    Numeric fangxiang;//0空,1多

Begin

    AvgValue1 = AverageFC(Close,length1)-100;

    AvgValue2 = AverageFC(Close,length2)-100;

    AvgValue3 = AverageFC(Close,length3)-100;

    AvgValue4 = AverageFC(Close,length4)-100;

    AvgValue5 = AverageFC(Close,length5)-100;

    //判断大方向多空

    If(AvgValue5 < AvgValue4){

        fangxiang = 1;

    }Else{

        fangxiang = 0;

    }

    

    //大方向为空的持仓策略

    If(fangxiang == 0){

        If(    //当前持有的非空仓(持平或者多仓),且线型呈现空头排列,出现最低级反转

            MarketPosition!=-1

            And

                (AvgValue5 > AvgValue4)

            And

                (AvgValue4 > AvgValue3)

            And

                (AvgValue3 > AvgValue2)

            And

                (AvgValue2 > AvgValue1)

            And

                (AvgValue2[1] < AvgValue1[1])

        )

        {

            SellShort(BuyLots,Close);

        }

        If(    //当前持有空仓,线型初步呈现空头排列,出现线型破坏

            MarketPosition==-1

            And

                (AvgValue5 > AvgValue4)

            And

                (AvgValue4 > AvgValue3)

            And

                (AvgValue3 > AvgValue2)

            And

                (AvgValue2 < AvgValue1)

        )

        {

            BuyToCover(BuyLots,Close);

        }

    }

    //大方向为多的持仓策略

    If(fangxiang == 1){

        If(//当前持有的非多仓(持平或者空仓),且线型呈现多头排列,出现最低级反转

            MarketPosition!=1

            And

                (AvgValue5 < AvgValue4)

            And

                (AvgValue4 < AvgValue3)

            And

                (AvgValue3 < AvgValue2)

            And

                (AvgValue2 < AvgValue1)

            And

                (AvgValue2[1] > AvgValue1[1])

        )

        {

            Buy(BuyLots,Close);

        }

        If(    //当前持有多仓,线型初步呈现多头排列,出现线型破坏

            MarketPosition==1

            And

                (AvgValue5 < AvgValue4)

            And

                (AvgValue4 < AvgValue3)

            And

                (AvgValue3 < AvgValue2)

            And

                (AvgValue2 > AvgValue1)

        )

        {

            Sell(BuyLots,Close);

        }

    }

    

    PlotNumeric(“MA_01”,AvgValue1);

    PlotNumeric(“MA_02”,AvgValue2);

    PlotNumeric(“MA_03”,AvgValue3);

    PlotNumeric(“MA_04”,AvgValue4);

    PlotNumeric(“MA_05”,AvgValue5);

End





//————————————————————————

// 编译版本    GS2010.12.08

// 用户版本    2015/06/28 22:59

// 版权所有    zlqh29000620

// 更改声明    TradeBlazer Software保留对TradeBlazer平台

//            每一版本的TrabeBlazer公式修改和重写的权利

//————————————————————————