分享

多空趋势交易系统

  2011-05-16

Params
        Numeric Length1(16);
        Numeric Length2(35);
        Numeric Length3(9);
        Numeric Lots(1);
Vars
        NumericSeries Value1;
        NumericSeries Value2;
        Numeric HighestValue;
        Numeric LowestValue;
        NumericSeries Value5;
        NumericSeries RSV;
        NumericSeries KValue;
        NumericSeries DValue;
        Numeric AvgVol5;
        NumericSeries CloseTmp1;
        NumericSeries CloseTmp2;
        NumericSeries RSIValue;
        NumericSeries PreLow;
        NumericSeries PreKValue;
        Numeric Highest33Value;
        Numeric Lowest33Value;
        NumericSeries VarTmp1;
        NumericSeries VarTmp2;
        NumericSeries ZL;
        Numeric SH;
Begin
        Value1 = XAverage(Close,Length1);
        Value2 = XAverage(Close,Length2);
        HighestValue = HighestFC(High,Length3);
        LowestValue = LowestFC(Low,Length3);
        Value5 = (CLOSE-LowestValue)/(HighestValue-LowestValue)*100;
        RSV = XAverage(Value5,3);
        KValue = XAverage(RSV,3);
        DValue = AverageFC(KValue,3);
        PreKValue = KValue[1];
        PreLow = Low[1];
        AvgVol5 = Average(Vol,5);
        Highest33Value = HighestFC(High,33);
        Lowest33Value = LowestFC(Low,33);
        VarTmp1 =((2*CLOSE+HIGH+LOW)/4 - Lowest33Value )/(Highest33Value - Lowest33Value) * 100;
        ZL = XAverage(VarTmp1,17);
        VarTmp2 = 0.667*ZL[1] + 0.333*ZL;
        SH = XAverage(VarTmp2,2);
        CloseTmp1 = Max(Close - Close[1], 0);
        CloseTmp2 = Abs(Close - Close[1]);
        RSIValue = SMA(CloseTmp1,6)/SMA(CloseTmp2,6) *100;
       
        // Buy
        If( (CrossOver(Close,Value1 ) && (KValue > DValue) && (ZL>SH)) Or
                 (CrossOver(Value1,Value2) && (ZL>SH) && (Vol > 1.25 * AvgVol5) && (KValue > DValue)) Or
                 (CrossOver(KValue,DValue) && (Close > Value1) && (ZL>SH)) Or
                 (CrossOver(RSIValue,70)))
        {
                Buy(Lots,NextOpen,True);
        }
       
        // SellShort
        If( (CrossOver(PreLow,Close) && (KValue > DValue ) && (SH>ZL) ) Or
                 (CrossOver(DValue,KValue) && (Close < Value1) && (Value1 < Value2)) Or
                 (CrossOver(PreKValue,KValue)&& (SH>ZL)))
        {
                SellShort(Lots,NextOpen,True);
        }
       
        // Sell
        If(CrossOver(DValue,KValue) || Close < Value1 * 1.001)
        {
                Sell(Lots,NextOpen,True);
        }
       
        // BuyToCover
        If(CrossOver(KValue,DValue) || Close > Value1 * 1.001)
        {
                BuyToCover(Lots,NextOpen,True);
        }
End

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多