设为首页收藏本站

 找回密码
 注册
查看: 6003|回复: 2
打印 上一主题 下一主题

SAR交易系统(转) [复制链接]

Rank: 1

精华
0
UID
176185
积分
26
帖子
13
主题
12
阅读权限
10
注册时间
2013-11-23
最后登录
2014-3-2
跳转到指定楼层
1#
发表于 2014-1-1 14:10:39 |只看该作者 |倒序浏览
Params
        Numeric FastLength(12);        // MACD的参数1
        Numeric SlowLength(26);        // MACD的参数2
        Numeric MACDLength(9);                // MACD的参数3
        Numeric AfStep( 0.02);        // SAR的参数1
        Numeric AfLimit( 0.2 ) ;        // SAR的参数2
        Numeric Length(5);                        // KD的参数1      
        Numeric SlowLengthKD(3);        // KD的参数2
        Numeric LengthMTM(14);        // MTM的参数1      
Vars  
        NumericSeries MACDValue;         // MACD的变量1
        Numeric AvgMACD;                        // MACD的变量2
        Numeric MACDDiff;                        // MACD的变量3
        NumericSeries oParCl( 0 );// SAR的变量1
        Numeric oParOp( 0 );                // SAR的变量2
        Numeric oPosition( 0 );        // SAR的变量3      
        Numeric oTransition( 0 );        // SAR的变量4
        Numeric MTMValue(0);                // MTM的变量1
        NumericSeries HighestValue;        // KD的变量1                       
        NumericSeries LowestValue;        // KD的变量2                              
        NumericSeries KValue;                        // KD的变量3
        Bool   isBuying;                        // 开仓条件
        Bool   isSelling;                        // 平仓条件
Begin
        MACDValue = XAverage( Open, FastLength ) - XAverage( Open, SlowLength );      
        AvgMACD = XAverage(MACDValue,MACDLength);
        ParabolicSAR( AfStep, AfLimit, oParCl, oParOp, oPosition, oTransition );
        MTMValue = Open/Open[LengthMTM]*100;
        HighestValue = Highest(High, Length);
        LowestValue = Lowest(Low, Length);
        KValue = SummationFC(Close - LowestValue,SlowLengthKD)/SummationFC(HighestValue-LowestValue,SlowLengthKD)*100;
        isBuying = (MACDValue < AvgMACD) And (oParCl<=Close) and (oParCl[1] > oParCl) And (MTMValue<100) And (KValue<35);
        isSelling = (MACDValue > AvgMACD) And (oParCl>=Close)and (oParCl[1] < oParCl) And (MTMValue>100) And (KValue>60);
        If(isBuying)
        {
                Buy(1,Close);
        }
      
        If(isSelling)
        {
                Sell;
        }
End
买入信号:  
    必要条件1:  SAR现值<=买入价  , 且:  SAR前值>SAR现值,   这句的意思是SAR刚由空翻成多
    必要条件2:  MTM现值<100
    必要条件3: macd.dif < macd.dea      ,  即还没有金叉
    必要条件4: kd.k < 35

卖出信号:工程同时满足以下条件
    条件1:   SAR刚由多翻空
    条件2:   MTM>100
    条件3:  macd尚未死叉
    条件4:  kd.k > 60
另外, 平仓条件还有一个跟踪止损是充分条件.

Rank: 2

精华
0
UID
192816
积分
107
帖子
61
主题
8
阅读权限
30
注册时间
2014-8-24
最后登录
2017-7-11
2#
发表于 2015-8-21 07:08:16 |只看该作者
奇怪,为什么试加载了下,没有任何信号,
变量那边好像写法有误,我粘贴下正确的,不然编不过去。

还没认真看,不知道哪里有问题,导致没信号。





Numeric oParCl( 0 );         // oParClose   输出当前K线的止损值
        Numeric oParOp( 0 );         //oParOpen输出下一根K线的止损值
        Numeric oPosition( 0 );      //输出建议的持仓状态    1建议为多头状态  -1建议为空头状态
        Numeric oTransition( 0 );    //输出当前K线的状态是否发生反转,1或-1为反转,0为保持不变

使用道具 举报

Rank: 2

精华
0
UID
251604
积分
64
帖子
53
主题
3
阅读权限
30
注册时间
2017-5-23
最后登录
2021-3-31
3#
发表于 2017-7-4 15:05:19 |只看该作者
//------------------------------------------------------------------------
// 简称: SAR_2
// 名称:
// 类别: 公式应用
// 类型: 用户应用
// 输出:
//------------------------------------------------------------------------


Params
        Numeric FastLength(12);        // MACD的参数1
        Numeric SlowLength(26);        // MACD的参数2
        Numeric MACDLength(9);                // MACD的参数3
        Numeric AfStep( 0.02);        // SAR的参数1
        Numeric AfLimit( 0.2 ) ;        // SAR的参数2
        Numeric Length(5);                        // KD的参数1      
        Numeric SlowLengthKD(3);        // KD的参数2
        Numeric LengthMTM(14);        // MTM的参数1      
Vars  
        NumericSeries MACDValue;         // MACD的变量1
        Numeric AvgMACD;                        // MACD的变量2
        Numeric MACDDiff;                        // MACD的变量3
        Numeric oParCl( 0 );// SAR的变量1
        Numeric oParOp( 0 );                // SAR的变量2
        Numeric oPosition( 0 );        // SAR的变量3      
        Numeric oTransition( 0 );        // SAR的变量4
                NumericSeries oParCl_1;
        Numeric MTMValue(0);                // MTM的变量1
        NumericSeries HighestValue;        // KD的变量1                       
        NumericSeries LowestValue;        // KD的变量2                              
        NumericSeries KValue;                        // KD的变量3
        Bool   isBuying;                        // 开仓条件
        Bool   isSelling;                        // 平仓条件
Begin
        MACDValue = XAverage( Open, FastLength ) - XAverage( Open, SlowLength );      
        AvgMACD = XAverage(MACDValue,MACDLength);
        ParabolicSAR( AfStep, AfLimit, oParCl, oParOp, oPosition, oTransition );
                oParCl_1=oParCl;
        MTMValue = Open/Open[LengthMTM]*100;
        HighestValue = Highest(High, Length);
        LowestValue = Lowest(Low, Length);
        KValue = SummationFC(Close - LowestValue,SlowLengthKD)/SummationFC(HighestValue-LowestValue,SlowLengthKD)*100;
        isBuying = (MACDValue < AvgMACD) And (oParCl_1<=Close) and (oParCl_1[1] > oParCl_1) And (MTMValue<100) And (KValue<35);
        isSelling = (MACDValue > AvgMACD) And (oParCl_1>=Close)and (oParCl_1[1] < oParCl_1) And (MTMValue>100) And (KValue>60);
               
        If(isBuying && MarketPosition!=1 )
        {
                Buy(1,Close[1]);
        }
      
        If(isSelling && MarketPosition!=-1)
        {
                SellShort(1,CLOSE[1]);
        }
End

//------------------------------------------------------------------------
// 编译版本        GS2015.12.25
// 用户版本        2017/07/04 14:37:25
// 版权所有        jinxin168
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-4-23 20:18

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部