2014年6月9日 星期一

●K棒的二進位評分法 [程式碼 ]

EasyTrader ArtNo 162
     K 線型態對從事金融商品主觀交易而言是一個很常用的方法,通常它會搭配其他指標來衡量市場運動方向,但是從量化角度來看, 若能使用計量的方法作為技術分析的依據,無疑是另一種可考慮的方式,這裡介紹一個K棒二進位評分方法,作為我們開發新策略元素的基礎:


上圖為K棒的基本定義,我們將它區分為幾個部份作為評分的主項目,分別是K棒的顏色、實體、上影線與下影線,並用七個二位元空格來作K棒型態的記錄:
  1. K棒的顏色是最重要的特性,代表著多方/空方的方向,因此在這裡給它最高的權重.在二位元評價中紅K代表1 ,黑K代表 0 
  2. K棒的開盤價與收盤價在四個價格中算是最重要的兩個,並且這兩個價格範圍反應了多空力道強弱,因此權重的位置排在顏色之後.
  3. K棒各元素依據它們的大小長度給與不同的權重
  4. 實體大小或上下影線的長短標準則是利用 N 根K棒的標準差來作範圍界定 , 超過上線者為大實體或長影線 ,小於下限者為小實體或短影線

PS: 這樣的評價定義也可以自行作修改
函數程式碼 { # function _CandleCode }
inputs: BBLength( numericsimple ), { recommended value of input: 55 }
BBNumDevs( numericsimple ); { recommended value of input: .5 }
variables: BodyHi(0), BodyLo(0), Body(0), UpperShadow(0), LowerShadow(0), ThBot_Body(0), ThTop_Body(0), ThBot_US(0), ThTop_US(0), ThBot_LS(0),ThTop_LS(0), ColorCode(0), BodyCode(0), USCode(0), LSCode(0);

BodyHi = MaxList(Open, Close);
BodyLo = MinList(Open, Close);
Body = BodyHi - BodyLo;
UpperShadow = High - BodyHi;
LowerShadow = BodyLo - Low;

{ 計算期間內標準差,界定上下限 }
ThBot_Body = BollingerBand(Body, BBLength, -BBNumDevs);
ThTop_Body = BollingerBand(Body, BBLength, BBNumDevs);
ThBot_US = BollingerBand(UpperShadow, BBLength, -BBNumDevs);
ThTop_US = BollingerBand(UpperShadow, BBLength, BBNumDevs);

ThBot_LS = BollingerBand(LowerShadow, BBLength, -BBNumDevs);
ThTop_LS = BollingerBand(LowerShadow, BBLength, BBNumDevs);

{ 實體 + 顏色評分 }
if Close >= Open then
begin
ColorCode = 64; {紅K }
if Body = 0 then {十字線 }
BodyCode = 0
else if Body < ThBot_Body then { 低於標準差下限為小實體 }
BodyCode = 16
else if Body < ThTop_Body then { 介於標準差上下限為中實體 }
BodyCode = 32
else
BodyCode = 48; { 高於標準差上限為大實體 }
end else begin
ColorCode = 0; {黑K }
if Body = 0 then
BodyCode = 48
else if Body < ThBot_Body then
BodyCode = 32
else if Body < ThTop_Body then
BodyCode = 16
else
BodyCode = 0;
end;

{ 上影線評分 }
if UpperShadow = 0 then
USCode = 0
else if UpperShadow < ThBot_US then { 低於標準差下限為短影線 }
USCode = 4
else if UpperShadow < ThTop_US then { 介於標準差上下限為中影線 }
USCode = 8
else
USCode = 12; { 高於標準差上限為長影線 }

{ 下影線評分 }
if LowerShadow = 0 then
LSCode = 3
else if LowerShadow < ThBot_LS then
LSCode = 2
else if LowerShadow < ThTop_LS then
LSCode = 1
else
LSCode = 0;
_CandleCode = ColorCode + BodyCode + USCode + LSCode;

有沒有想過計分的方式為何如此計算呢 ?
台指期 60分K 最近 3000 交易日 留倉測試 交易成本 1200

0 留言:

張貼留言

如果有私人問題想請教,請透過網站右方『與站長聯絡』之表單,謝謝!

----------------------------------------------------------------------------------------------------
網站聲明(Disclaimer)
本教學網站內所提供之程式碼(包括函數、指標、訊號)屬開放程式碼,用意在於讓使用者學習程式語法之撰寫,使用者可以任意修改語法內容並調整參數。本網站所有之內容(包括文章、影片、歷史紀錄、程式碼、教材)限用於個人學習使用,請勿轉寄、濫用,嚴禁私自串接帳戶交易。
-------------------------------------------------------------------------------------------------