這是我在2009年10月21日 ,於台北大華期貨新書發表會場,承諾要寫的一篇文章。原程式碼寫於會場中說明的簡報檔案,如果你有興趣下載回味的請點擊之後的連結。 http://webhd.xuite.net/_oops/parkson/nkd (TradeStation 2000i.pps)

 

  首先要謝謝當天許多朋友熱情的參與討論。也要謝謝許多讀者們的捧場支持,這本書才能在不到一個月就一刷售罄;希望與大家分享這個喜悅。會場拍攝的照片你也可以點擊Blog的照片(我的相簿)進入,或http://photo.xuite.net/parkson。我有看到一個大陸的網頁說至今沒有人知道Parkson的真正面目;既然想看就一次讓你看個夠!不過、嘔吐袋請自備,湯藥費自理。現在面目大家都看到了,至於「真正的面目」我也沒看到過?嘻嘻。

 

  言歸正傳!覺得其實要把一個工具學會並不是件困難的事情,問題是要如何學會運用。不然光背一堆函式名稱與指令,到時要你上戰場寫一段玩玩?卻不知從何說起?學有何益?我說過自己天生命賤得一生與許多「語言」周旋,所以對程式設計我是多而不精,沒有Help檔與一些案頭工具書我也一行都掰不出來。不過我還是拼湊了一些玩具來不是嗎?如果你用過我寫的TrendWatch盤後軟體。

 

  所以IDEA是比一切都重要的!加上一些解題的傻勁多試幾次,我想很快你也可以幫自己使用TS解決交易的問題,或把很好的交易點子付諸實現。

 

  是的現在有一道題目;我們知道隨機指標(Stochastic),也就是我們一般稱它為%KD的技術指標。原創者George and Cairie Lane(在此訂正一件事;一般我們看到都寫George Lane,以為有一位老兄就叫George Lane?錯!其實這是兩個人的名字,GeorgeCairie Lane 他們是一對夫妻與工作伙伴。請看下圖)。

 

圖1 George and Cairie Lane

 

  在他們發表的KD使用說明文章中提到:有一個現象他們命名為膝部(Knees),是一個多頭的進場訊號。而類似形態但為空頭交易使用的訊號命名為肩部(Shoulders)。以下我引用其原文以及我早期很閒的時候翻譯與補述的一段。

 

VI. Knees and Shoulders

膝部與肩膀(也稱失敗)

 

an up market, when %K has crossed up through %D and, then, pulls back a few percentage points the next period, but fails to re-penetrate %D on the downside before turning up, we call this a Knee.

 

在一個上升的市場,當%K向上穿越過%D,之後在下一個時段拉回幾個百分比,不過並沒有再次向下穿越%D而再轉往上面,我們稱它為膝部;相反稱為肩膀。

 

** A Knee is a continuation of upward progression denoting strength.

 

膝部圖形代表者市場將有一個強烈的漲升即將發生。

 

** %K may be rectifying an earlier left-hand crossover.

 

%K也許在早些時候便已經產生一個左側的穿越,別忘了這是市場產生V形強勁反轉的可能訊息。

 

Parkson 補充:

 

本訊號移植自『葛蘭碧八大法則』的運用。%K可以解釋成短期移動平均,%D便是長期移動平均。同樣的運用亦可見琳達的『聖杯』交易系統;所以基本上這是一個信賴度與獲利都不錯的形態。

 

 
圖2 手指處即為膝部的位置

 

  OK!我們現在膝部是個什麼東東了。接下來就是我說的如果我們要把這樣的一個交易訊號表達在TS上頭,要如何做呢?

 

 


圖3

 

  上圖為完成的程式碼,請以Signal方式書寫。首先我們先想這樣的概念如何移植與轉達?以下這是我的想法、、

 

1.在多頭趨勢中、然後 %K > %D 。而 %K 位於 75 以下,因為不希望跑到一般所謂的「超買區」去窮攪和。

2.當 %K 與 %D 乖離過大並拉回時注意它。

3.如果 %K 拉回並沒有跌破 %D,然後 %K 再度反轉向上;我們在下一個時段進場做多。

 

  出場條件我們設為:

1.%K 反轉向下。

2.%K 與 %D 交叉向下。

 

  程式完成後看看並沒有很困難對吧?行數也不多。所以說自己只要試它個幾次,你自然也可以進入真正的TS運用領域。以下對程式碼再做一些解釋、、

 

Inputs: Length(14);

Vars : Kvalue(0), Dvalue(0), StartFlag(0);

這裡使用一個StartFlag。這是我的設計習慣,使用一些變數來設定旗標;方便我們記錄目前程式進行的狀況。在此當行情滿足於上述第一個條件時這個旗標就會被設定為1啟動。

 

Kvalue = SlowKCustom(High, Low, Close, Length);

Dvalue = SlowDCustom(High, Low, Close, Length);

Kvalue與Dvalue分別計算並代入今日的%K與%D值。

 

If Kvalue > Dvalue and Dvalue > Dvalue[1] and Kvalue < Kvalue[1] and Kvalue[1] > Kvalue[2] and Kvalue[1] < 75 then StartFlag = 1;

當%K>%D與%D大於昨日%D(我使用這個來設定為多頭)與%K小於昨日%K與昨日%K大於前日%K(這兩個判別請一起看,它說明昨天還上揚的%K在今天反轉向下)與昨天的%K小於75(今天如果大於75我們就不追蹤了),如果前式成立?我們設定StartFlag為1。

 

If StartFlag = 1 and (Dvalue < Dvalue[1] or Kvalue < Dvalue) then StartFlag = 0;

當StratFlag為1時觀察、、今天的%D小於昨天的%D(%D下滑,如同長期移動平均向下)或%K小於%D(跌破)?成立的話我們把StartFlag轉回原來的0值。

 

If StartFlag = 1 and Kvalue > Kvalue[1] and Kvalue[1] < Kvalue[2] Then

      begin

         buy next bar at open;

         StartFlag = 0;

      End;

當StartFlag為1時;%K大於昨日%K(再度向上)與昨日%K小於前日的%K(昨天仍下滑),那麼我們在下一個時段以開盤價進場做多,並把StartFlag調回0值。

 

If MarketPosition = 1 and (Kvalue < Kvalue[1] or Kvalue < Dvalue) Then Exitlong this bar at close;

如果我們現有多頭倉位而且%K小於昨天的%K或%K與%D交叉向下,成立條件則收盤出場。

 

  這是一段實驗的程式,目的是跟大家說明將交易觀念轉移到TS下,並不會是我們想像中的那麼困難。如果你有興趣也可以繼續將這個訊號再給予改良!最後圖形為這個KD膝部訊號的執行情況。

 

 


圖4 台灣加權

 

 


圖5 道瓊工業指數

 http://blog.xuite.net/parkson/trader/28329865

 

arrow
arrow
    全站熱搜

    QQ 發表在 痞客邦 留言(0) 人氣()