2015年11月30日 星期一

開發商品的交易系統 - 基礎篇 [54]

EasyTrader ArtNo 280
Impluse System 動力(脈衝)系統是由亞歷山大埃爾德設計,同時也是[走進我的交易室]《COME INTO MY TRADING ROOM》這本書內特別介紹的一個系統。根據埃爾德的說法 , "此系統識別了趨勢加快或減慢的轉折點位置"
動力系統結合了2 個簡單但有作用的指標。一個計算市場慣性,另一個計算動力。 當兩者方向相同時,它們確認了值得介入的動力。當二者同步時,我們得到了進場信號,當二者不再同步時,我們就當是出場信號。
動力系統用指數平滑均線找到趨勢。當均線上漲,它表明慣性是上漲的。當均線下跌,慣性是下跌的。第二個指標是MACD 柱,它的坡度反映了多頭和空頭的力量。當MACD 柱上漲,它表明多頭變強。當它下跌,它表明空頭變強。這個獨特的指標組合了以顏色標示的K棒以供使用者更容易辨識參考。
** 為了與我們習慣的K棒顏色用法 ,因此我將原文的說明也作了小調整

紅色的K棒顯示來自於13 日均線和 Macd 都在上漲,是由多頭掌控中的趨勢和動量,綠色的價K棒顯示來自於13 日均線和 Macd 正在下降,因為空方已取得控制權,而黃色的K棒表示 13 日均線和 Macd 動量不同步,多空雙方在僵持中尋找彼此之間的平衡。

埃爾德的動力系統可以在不同時間框架內應用,但交易應與較長期的趨勢協調一致。埃爾德建議設置你常用的交易時間週期,然後再以它為中間基準再乘以五作為你長期的時間週期。例如以 5分鐘的常用週期 可能搭配 25分鐘的架構作長週期的觀察,以日線圖的交易則可以移到周線圖為一個長期的時程表。接下來我們一起來應用這個系統來作台指期的測試
資料參考  這篇文章
{指標程式碼}
Vars: XLine(0),XDiff(0) ;
XLine = Xaverage(Close,13) ;
XDiff = Macd(Close,12,26)-Xaverage(Macd(close,12,26),9) ;

if XLine > Xline[1] and Xdiff > XDiff[1] then Begin
PlotPaintBar(High,Low,"",Red,Black,1) ;
PlotPaintBar(Open,Close,"",Red,Black,3) ;
end else if XLine < Xline[1] and Xdiff < XDiff[1] then Begin
PlotPaintBar(High,Low,"",Green,Black,1) ;
PlotPaintBar(Open,Close,"",Green,Black,3) ;
end else begin
PlotPaintBar(High,Low,"",yellow,Black,1) ;
PlotPaintBar(Open,Close,"",yellow,Black,3) ;
end;


{系統參數與變數} 
input:EntryType(1),ExitType(1);
inputs:NBarL(10),NBarS(10),TradeProfit(0.025),TradeStopLoss(0.01),ATRs_L(14),ATRs_S(12);
vars:IsBalanceDay(False),MP(0),PF(0),PL(0);
input:LenA(13),Avg1(9),LenB(13),Avg2(9),HB(1),LB(1),HighBar(5),LowBar(5) ;
Vars: XLineA(0),XDiffA(0),XLineB(0),XDiffB(0),MacdLenA(0),MacdAvgA(0),MacdLenB(0),MacdAvgB(0),MyVol(0) ;

MP = MarketPosition ;

if DAYofMonth(Date) > 14 and DAYofMonth(Date) < 22 and DAYofWeek(Date)= 3 then isBalanceDay = True else isBalanceDay =False ;

PF = AvgPrice*TradeProfit ;
PL = AvgPrice*TradeStopLoss ;

{ 將MACD的參數也作變化 }
MacdLenA = LenA * 2 ;
MacdAvgA = IntPortion(MacdLenA/3) ;

{ 指數平均線代表趨勢線 }
XLineA = Xaverage(Close,LenA) ;

{ MACD 柱狀動量計算}
XDiffA = Macd(Close,LenA,MacdLenA)-Xaverage(Macd(close,LenA,MacdLenA),MacdAvgA) ;

分別利用 1. RSI 強弱強度 與  2.高週期趨勢來作進場濾網 ,以降低頻繁的交易次數

if EntryType = 1 then begin

{當作多條件(圖例 - 紅K)成立且 RSI大於某數值後進場作多 }
if MP <> 1 and XLineA > XlineA[1] and XDiffA > XDiffA[1] and RSI(Close,LenA) > Avg1
then buy next bar at Highest(High,HighBar) stop;

{當作空條件(圖例 - 綠K)成立且 RSI小於某數值後進場作空 }
if MP <> -1 and XLineA < XlineA[1] and XDiffA < XDiffA[1] and RSI(Close,LenA) < (100-Avg1)
then sell next bar at Lowest(Low,LowBar) stop;
end;

if EntryType = 2 then begin

{當作多條件(圖例 - 紅K)成立且 高週期趨勢一致向上後進場作多 }
if MP <> 1 and XLineA > XlineA[1] and XDiffA > XDiffA[1]
and Countif(Xaverage(Close,LenA*5) > Xaverage(Close,LenA*5)[1],HB) = HB
then buy next bar at Highest(High,HighBar) stop;

{當作空條件(圖例 - 綠K)成立且 高週期趨勢一致向下後進場作空 }
if MP <> -1 and XLineA < XlineA[1] and XDiffA < XDiffA[1]
and Countif(Xaverage(Close,LenA*5) < Xaverage(Close,LenA*5)[1],LB) = LB
then sell next bar at Lowest(Low,LowBar) stop;
end;

{出場條件}
if ExitType = 1 then SetStopLoss(PL * BigPointValue) ;

if ExitType = 2 then Begin
SetStopLoss(PL * BigPointValue) ;
setProfitTarget(PF * BigPointValue) ;
end;

if ExitType = 3 then Begin
if MP > 0 and BarsSinceEntry = NBarL then ExitLong next bar at Market ;
if MP < 0 and BarsSinceEntry = NBarS then ExitShort next bar at Market ;
end;

if ExitType = 4 then Begin
SetStopLoss(PL * BigPointValue) ;
setProfitTarget(PF * BigPointValue) ;
if MP > 0 and BarsSinceEntry = NBarL then {Sell } ExitLong next bar at Market ;
if MP < 0 and BarsSinceEntry = NBarS then {Buy} ExitShort next bar at Market ;
end;

if IsBalanceDay or date = 1150224 then setExitonClose ;

進場方式一 ~ 台指期 30 min K 多空留倉 交易週期 2005/6/30~ 2015/6/30 交易成本 1200


進場方式二 ~ 台指期 60 min K 多空留倉 交易週期 2005/6/30~ 2015/6/30 交易成本 1200



結論:埃爾德的動力系統實際上是要交易者進場時要謹慎,出場時要快。這是專業的交易方法,和業餘選手的 風格相反。新手想都不想就跳進交易,長期等待,期望市場能朝有利他的方向走,為了在較短的週期不要有過度的交易本篇方式捨棄原作者的當趨勢與動量不同步就出場的方法,也能有一定的績效表現
MagicQS188

2 則留言: