MACD多周期共振系统 - TradeBlazer公式 [开拓者 TB]
- 咨询内容:
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公式修改和重写的权利
- //------------------------------------------------------------------------
- //------------------------------------------------------------------------
- TB技术人员:
交易指令。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公式修改和重写的权利
- //------------------------------------------------------------------------
- //------------------------------------------------------------------------
- TB客服:
这么好的系统,下个TB版本升级的时候,直接写到TB里啊。。。
- 网友回复:
嘿嘿,这个系统很好,很适合某些人用。。。
强烈建议加密只让我知道... - 网友回复:
正愁多周期编程呢,学习了,好东西。
请版主以后多编一些这样的公式例子,让我们有学习的素材!
如果以上指标公式不适用于您常用的行情软件
或者您想改编成选股公式,以便快速选出某种形态个股的话,
- 上一篇:发个系统,提供源码,效果还可以
- 下一篇:[转贴]漫谈交易模型
相关文章
-
没有相关内容