打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MACD多周期共振系统
1、系统原理很简单,MACD的柱状线,在1分钟,3分钟,5分钟,15分钟及30分钟都是红柱,即都大于0时,多头开仓。
当1分钟的MACD柱线变绿柱,即小于0时,多头平仓。
2、做空的条件类似,收盘平仓。
3、在此提供这个系统的目录是为了演示跨周期数据处理的方法,本系统并不是一个完善有效的系统,照此交易,后果自负 

代码分为两部分,1个用户函数,1个交易指令。
用户函数:MinsXAverage,代码如下
//------------------------------------------------------------------------
// 简称: MinsXAverage
// 名称: 1分钟转换N分钟的指数平均
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------

Params
        Numeric nMinSet(3);
        NumericSeries Price(10);
        Numeric Length(10);
Vars
        NumericSeries MinsBarIndex;
        BoolSeries FirstMin(True);
    
        Numeric sFcactor;
        NumericSeries XAvgValue;
Begin
        If(CurrentBar == 0)
        {
                FirstMin = True;
        }Else
        {
                FirstMin = FirstMin[1];
                If(FirstMin && IntPart(Minute/nMinSet) != IntPart(Minute[CurrentBar]/nMinSet))
        {
                        FirstMin = False;
                }
        }
                
        If(IntPart(Minute%nMinSet)==0)
        {
                MinsBarIndex = 1;
        }Else
        {
                MinsBarIndex = MinsBarIndex[1] + 1;
        }

        sFcactor = 2 / ( Length + 1 );
        if (FirstMin)
        {
                XAvgValue = Price;
        }else
        {
                XAvgValue = XAvgValue[MinsBarIndex] + sFcactor * ( Price - XAvgValue[MinsBarIndex] ) ;
        }        
        Return XAvgValue;
End

//------------------------------------------------------------------------
// 编译版本        GS2004.06.12
// 用户版本        2008/06/20 14:09
// 版权所有        nopain
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
复制代码


交易指令。MACERS,仅适用于1分钟周期
//------------------------------------------------------------------------
// 简称: MACDRS
// 名称: MACD Resonance System
// 类别: 交易指令
// 类型: 多头建仓
// 输出:
//------------------------------------------------------------------------

Params
        Numeric FastLength(12);
        Numeric SlowLength(26);
        Numeric MACDLength(9);
Vars
        NumericSeries MACDValue1; 
        NumericSeries MACDValue3; 
        NumericSeries MACDValue5; 
        NumericSeries MACDValue15; 
        NumericSeries MACDValue30; 
        Numeric AvgMACD1;
        Numeric AvgMACD3;
        Numeric AvgMACD5;
        Numeric AvgMACD15;
        Numeric AvgMACD30;
        Numeric MACDDiff1;
        Numeric MACDDiff3;
        Numeric MACDDiff5;
        Numeric MACDDiff15;
        Numeric MACDDiff30;
        Bool LongEntryCon;
        Bool ShortEntryCon;
        Bool LongExitCon;
        Bool ShortExitCon;
Begin
        MACDValue1 = XAverage( Close, FastLength ) - XAverage( Close, SlowLength );        
        AvgMACD1 = XAverage(MACDValue1,MACDLength);
        MACDDiff1 = MACDValue1 - AvgMACD1;

        MACDValue3 = MinsXAverage(3, Close, FastLength ) - MinsXAverage(3, Close, SlowLength );        
        AvgMACD3 = MinsXAverage(3,MACDValue3,MACDLength);
        MACDDiff3 = MACDValue3 - AvgMACD3;
        
        MACDValue5 = MinsXAverage(5, Close, FastLength ) - MinsXAverage(5, Close, SlowLength );        
        AvgMACD5 = MinsXAverage(5,MACDValue5,MACDLength);
        MACDDiff5 = MACDValue5 - AvgMACD5;
        
        MACDValue15 = MinsXAverage(15, Close, FastLength ) - MinsXAverage(15, Close, SlowLength );        
        AvgMACD15 = MinsXAverage(15,MACDValue15,MACDLength);
        MACDDiff15 = MACDValue15 - AvgMACD15;
        
        MACDValue30 = MinsXAverage(30, Close, FastLength ) - MinsXAverage(30, Close, SlowLength );        
        AvgMACD30 = MinsXAverage(30,MACDValue30,MACDLength);
        MACDDiff30 = MACDValue30 - AvgMACD30;

        LongEntryCon = MACDDiff1 > 0 && MACDDiff3 > 0 && MACDDiff5 > 0 && MACDDiff15 > 0 && MACDDiff30 > 0;
        ShortEntryCon = MACDDiff1 < 0 && MACDDiff3 < 0 && MACDDiff5 < 0 && MACDDiff15 < 0 && MACDDiff30 < 0;
        
        LongExitCon = MACDDiff1 < 0;
        ShortExitCon = MACDDiff1 > 0;
        
        Commentary("MACDDiff1="+Text(MACDDiff1));
        Commentary("MACDDiff3="+Text(MACDDiff3));
        Commentary("MACDDiff5="+Text(MACDDiff5));
        Commentary("MACDDiff15="+Text(MACDDiff15));
        Commentary("MACDDiff30="+Text(MACDDiff30));
        
        If(MarketPosition == 0)
        {
                If(LongEntryCon)
                {
                        Buy(1,NextOpen,True);
                }Else if(ShortEntryCon)
                {
                        SellShort(1,NextOpen,True);
                }                
        }Else If(MarketPosition == 1 && LongExitCon)
        {
                Sell(1,NextOpen,True);
        }Else if(MarketPosition == -1 && ShortExitCon)
        {
                BuyToCover(1,NextOpen,True);
        }
        
        If(Time >= 0.1459)
        {
                Sell(1,Open);
                BuyToCover(1,Open);
        }
End

//------------------------------------------------------------------------
// 编译版本        GS2004.06.12
// 用户版本        2008/06/20 14:47
// 版权所有        nopain
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
macd交易系统
【图】MACD主要交易信号确定
一个稳定盈利的日内交易系统代码.大家一起来完善.
开拓者代码(2)代码学习各种买卖指令及实例
系统交易论坛 国外成熟策略R-Breaker分享
Aberration策略
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服