分类
外汇交易平台比较

使用the交易策略

交流QQ群:115279569

技術分析 — KD 指標入門指南

展開

當進行金融投資行為時,技術分析提供了投資人判斷是否該進出場重要的依據,其中最有名氣的,也是大部分人們第一個學習參考的指標就是 KD 指標,藉由簡單的概念,作為投資的策略準則,而頻繁且廣泛的被使用,在這裡會試著說明 KD 指標並解釋其應用。

什麼是 KD 指標?

“ KD 指標” 又稱隨機指標(Stochastic Oscillator)並非一個數值,而是由 K 和 D 兩個值所組成,在時間軸上可以藉由兩個 K 值和 D 值走勢來判斷是否該進場或出場。其中一部分大家耳熟能詳的 “黃金交叉”、”死亡交叉” 也是來自這裡,藉由 KD 值交叉情形來判斷買進賣出的訊號。

  • RSV 未成熟隨機值 ( Raw Stochastic Value ): \(RSV = \frac\times 100\%\)
  • K 值: \(K_n = \alpha\cdot RSV+(1-\alpha)\cdot K_\)
  • \(n\) :經過的交易時間
  • \(C_n\) :當日的收盤價
  • \(H_n\) :過去 \(n\) 日內的最高價
  • \(L_n\) :過去 \(n\) 日內的最低價

如果感覺公式太過抽象的話,可以將 RSV 指標想像成在看當天收盤價在 \(n\) 使用the交易策略 日區間內是否為相對高點或低點,範圍則在 0% ~ 100% 之間,而 K 使用the交易策略 值則是 RSV 值的加權移動平均, D 值則是 K 值的加權移動平均。從公式可以了解到 RSV 本身就是 \(\alpha = 1\) 的 K 值,取加權移動平均的概念可以理解為將過去天期的資訊加入指標一起參考,而 RSV 值隨著收盤價和過去 \(n\) 日內的最高價和最低價變動, K 值又會隨著 RSV 值變動, D 值又隨著 K 值變動。

不過在取加權移動平均下,K 值對 RSV 值的反應會比 D 值的反應更快,所以可以得知當 K 值大於 D 值時,收盤價位於過去 \(n\) 天內價格中的相對高點,反之亦然。而 KD 指標則是藉由相對高點與低點的概念來判斷現在是否該買或賣投資標的。

投資策略-黃金交叉、死亡交叉

在每個策略裡面都會有所謂的 “黃金交叉”、”死亡交叉” 。簡單來說就是買賣的訊號,當出現黃金交叉表示投資標的價格來到谷底,即將有一段上揚的波段,所以出現黃金交叉就是該買多的時候;而當出現死亡交叉則表示價格來到頂點,即將有一段下跌,所以出現死亡交叉則是該放空的時候。 而黃金交叉與死亡交叉則是利用某些準則將大量的資訊簡化到現在 “買多”、”放空” 兩個資訊。

以台指期為例,上圖中 KD indicator 的兩條灰色水平線分別為 80%, 20%,橘色箭頭標出的是上述定義的黃金交叉,綠色的則是定義中的死亡交叉。不難發現第一個黃金交叉的訊息是有點失誤的,假設當看到第一個 V 字底出現時,跟著訊號做多,如果在第一個波段出現時,沒有獲利了結出場的話,抱得越久會賠得越慘,不過這是在假設在已經知道未來價格的走勢的情況下,通常如何制定一個有效率的出場機制,也是策略的重點之一。而後面兩個綠色箭頭所指出的死亡交叉,標出的也只是台指期的相對高點。所以從這裡可以得到一個小結論, KD 指標比較難判斷未來的大趨勢或大波段,就像是第一個橘色箭頭帶來幾乎相反的訊息。

歷史報酬檢視

接著依據剛剛所制定的黃金交叉、死亡交叉準則來檢視根據 KD 指標為準則所做的投資績效,所使用的資料為 1998/07/21 至 2016/01/21 當日的收盤價、最高成交價、最低成交價。KD 值計算所使用的參數為 \(n = 9, \alpha = \frac\) ,挑選出 9 日內最高成交價與最低成交價計算 KD 值,依據歷史的資料計算後獲得 82 筆的死亡交叉訊息,及 35 筆黃金交叉訊息。接著根據當天的收盤價去計算後 30 天期間內的報酬,在這裡使用熱圖 (heat map) 來表示損益,紅色表示正收益,綠色表示負收益,橫軸的 Time 變數為在時間上依序出現的黃金交叉與死亡交叉訊息,而縱軸所代表的則是交易後 \(m\) 天的損益,當顏色越深表示數值越大。

從圖 2, 3 可以得到 3 個重要訊息:

損益近幾年逐漸淡化,損益從圖 2 的第 55 筆(2010/6/20)訊息開始淡化,圖 3 的第 25 筆(2008/10/21)開始淡化,這表示在 2008 年以前使用 KD 指標做為參考依據比較容易有大賺大賠的情況發生,而在 2010 年後依據 KD 指標作為投資策略的損益較小。

策略評量指標簡介

展開

Sharpe Ratio 夏普值

\(R_p\):投資商品的報酬率
\(R_f\):無風險利率
\(\sigma_p\):投資商品報酬率的標準差

夏普值是基於 CAPM 模型下,所計算出來的一個指標,由 William F. Sharpe 提出。這個比率當然也適用於基金或交易策略或各式金融投資商品,都可以使用夏普值作為評價的工具。

System Quality Number 系統品質指標

\(N\):交易次數
\(\mu_r\):平均每筆損益
\(\sigma_r\):每筆損益的標準差

System Quality Number (SQN)是系統品質指標,近年來也有許多投資者將此指標利用在策略品質的鑑定上,SQN 指標會在期望獲利越高、標準差越小、交易次數越多的情況下,整體的值越大。利用這個特性可以有效地衡量策略的獲利能力和穩定度。

Return/Risk Ratio 風報比

\(P\):淨利
\(MDD\):最大回撤(Max Drawdown)

Return/Risk Ratio(RR)是一個投資人必備的觀念,由 Victor Sperandeo 在「專業投機原理」上提出並應用,他也於交易市場獲得連續 18 年的長期正報酬,穩定一直都是交易理論的真正核心,風報比可說是判斷策略穩定度最好的基準。

Value at Risk 風險值

公式定義如下,給定 \(\alpha\) 下滿足條件式中的數字即為 VaR。

\(X_T\):商品在持有 T 時間的損益
\(\alpha\):信心水準

比如給定 \(\alpha=0.05\) 而計算出來的 VaR 為 40 萬元,則表示投資人持有該商品 T 時間後的損失有 95% 的機率不超過 40 萬元。

從圖形來看更好理解,假設上圖是一投資組合持有 T 時間損益的機率分布。我們可以找到一個值,使得損失大於這個值的機率為 5%,反之小於等於這個值的機率為 95%,則這個損失值的大小就是在 5% 的信心水準下,所計算出來的風險值。

對銀行等從事風險管理的部門來說,就是代表市場在極端狀況下所可能承受的風險大小,如果要求更嚴苛的風險管理,就會將 \(\alpha\) 降低,代表該情況越不可能發生,則算出來的值會越大,代表需要更多的準備金,但相對的也比較不容易發生倒閉破產等情形。用在交易上則可以衡量需要多少的保證金。

sinall/StrategyEase-Python-SDK

This commit does not belong to any branch on this repository, and may belong to a fork outside of 使用the交易策略 the repository.

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop 使用the交易策略 and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.使用the交易策略

README.rst

策略交流

交流QQ群:115279569

hanyang0721/Backtrader

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

參考 https://www.backtrader.com
供回測及下單用的script.
Backtrader是一個基於Python語言的進行自動化回溯測試的平臺。可以新增自定義的指標和交易策略,提高對交易系統回測的效率。 這個工具可以匯入自己的行情資料檔案,也可以新增自定義的指標 此程式內使用策略僅為為範例檔, 請自行開發穩定策略

  1. 提供SQL view and procedure做回測數據的檢視
  2. 提供SQL server data feeds連結
  3. 提供DBConnect與database連動後可使用於下單及回測
  1. 設定python環境
    將sql.py放入backtrader的library, 如C:\Users\xx\AppData\Local\Programs\Python\Python36\Lib\site-packages\backtrader\feeds backtrader才可使用data feed from sql

這個sample使用了日線搭配五分K兩個data feeds, 可使用一個data feeds到多個data feeds全依策略安排

5代表5分K 0代表日K SQL部分我使用了自己的login, 可改寫sql.py自訂connectionstring

(Optional)下載報價 請用SKQuote下載資料分k,日k

image
image

image

3口小台, 僅交易早盤

shortposzie, longposSize 多空下單口數
StockNo 下單標的
RunningMode (AnalysisMode, ExecutionMode) ExecutionMode為盤中使用, 回測及優化策略時使用AnalysisMode
settlement_day 結算日
stratcode 目前定義10000~10009為long open, 10010以上為short open, 其餘為exit code, 可自行定義opencode, exitcode做策略的analysis
tradetype 0 為做多, 1為做空
sessionend 收盤時間, use with caution. 早盤為00:00 夜盤為05:00