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里啊。。。
- 網友回復:
嘿嘿,這個系統很好,很適合某些人用。。。
強烈建議加密只讓我知道... - 網友回復:
正愁多周期編程呢,學習了,好東西。
請版主以后多編一些這樣的公式例子,讓我們有學習的素材!
如果以上指標公式不適用于您常用的行情軟件
或者您想改編成選股公式,以便快速選出某種形態個股的話,
- 上一篇:發個系統,提供源碼,效果還可以
- 下一篇:[轉貼]漫談交易模型
相關文章
-
沒有相關內容