iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
AI & Data

用Python程式進行股票技術分析系列 第 21

Day21 葛蘭碧八大法則

  • 分享至 

  • xImage
  •  

何謂葛蘭碧八大法則

說明移動平均線上揚、移動平均線下彎、跌破、突破,與股價之間的關係,將時間和空間兩大技術分析的要素,做了完美的結合。

4種買點與4種賣點

用一條移動平均線搭配股價的漲跌,並強調移動平均線的上揚與下彎的重要性;並沒局限於哪一條移動平均線。以下為葛蘭碧八大法則4種買點與4種賣點的圖例:
Imgur

  • 4種買點
    • 1:起漲點 - 突破上揚移動平均線
    • 2:假跌破測移動平均線支撐 - 股價在上揚的移動平均線之下
    • 3:漲多拉回 - 股價在上揚的移動平均線之上
    • 4:跌深反彈 - 股價在下彎的移動平均線之下
  • 4種賣點
    • 5:起跌點 - 跌破下彎移動平均線
    • 6:假突破,測移動平均線壓力 - 股價在下彎的移動平均線之上
    • 7:大跌反彈 - 股價在下彎的移動平均線之下
    • 8:漲多拉回 - 股價在上揚的移動平均線之上

4種買點與4種賣點不一定會出現,且不一定依照順序發生。

葛蘭碧八大法則的實務情況

實務一:幾種控盤方法如下:

  • 單線控盤:股價(收盤價)與一條移動平均線
  • 雙線控盤:兩條移動平均線
  • 多線控盤:一條移動平均線做為趨勢工具,兩條移動平均線做為交易工具

實務二:8個買賣點之應用:

  • 1買點和6賣點之法則不易分辨
  • 2買點、6賣點之法則較具風險,4買點、8賣點之法則在認定上有技術問題
  • 實證結果第1買點、3買點、5賣點、7賣點之法則最實用

實務三:該選擇那一條移動平均線:

  • 原始理論搭配200日移動平均線
  • 實際上可以可以搭配任何一條移動平均線;但越長天期越準確(20日以上)
  • 個股會有其最適用的移動平均線
  • 那該用哪一條移動平均線交易呢?有以下幾點考量:
    • 成本-這最關鍵,你準備持有該檔個股的成本?
    • 分批-要分幾批買入?每批所佔的比例?
    • 慣性-觀察該個股的歷史,有那一條移動平均線呈現漲跌慣性?

程式實作:單線控盤尋找參考買點

單線控盤符合葛蘭碧八大法則的原始定義,當收盤價突破上升的移動平均線做為買點。程式碼如下所示:

cnt = 0
while cnt <= len(df_k_line) - 1:
    try :
        if df_k_line.iloc[cnt]['Close'] < df_k_line.iloc[cnt+1]['Close'] and df_k_line.iloc[cnt+1]['Close'] < df_k_line.iloc[cnt+2]['Close'] :
            if df_sma.iloc[cnt]['SMA20'] <  df_sma.iloc[cnt+1]['SMA20'] and df_sma.iloc[cnt+1]['SMA20'] <  df_sma.iloc[cnt+2]['SMA20'] :
                if df_sma.iloc[cnt+1]['SMA20'] > df_k_line.iloc[cnt]['Close'] and df_sma.iloc[cnt+2]['SMA20'] < df_k_line.iloc[cnt+1]['Close'] :
                    buy_point_index = cnt+1
                    buy_point_date  = df_k_line.iloc[buy_point_index].name.strftime("%Y-%m-%d")
                    print('買點日期:{}'.format(buy_point_date))
                    # 設定K線格式
                    mc = mpf.make_marketcolors(up='xkcd:light red', down='xkcd:almost black', inherit=True)
                    s  = mpf.make_mpf_style(base_mpf_style='yahoo', marketcolors=mc)
                    # 設定買點與移動平均線
                    buy_point_len = len(np.array(df_k_line['Close']))
                    buy_point = np.array([np.nan]*buy_point_len)
                    buy_point[buy_point_index] = df_k_line.iloc[buy_point_index]['Close']
                    apds = [
                        mpf.make_addplot(buy_point,type='scatter',marker='o',markersize=75,color='xkcd:bright blue'),
                        mpf.make_addplot(df_sma['SMA20'],width=0.4,color='xkcd:violet')
                    ]
                    # 繪出K線圖
                    kwargs = dict(type='candle', style=s, figratio=(19,10), addplot=apds, datetime_format='%Y-%m-%d')
                    mpf.plot(df_k_line,**kwargs)
    except:
        pass
    cnt=cnt+1     

程式執行結果如下所示:
Imgur
在此找到的買點就是葛蘭碧八大法則的1買點之法則。完整的程式碼請參照「第二十一天:葛蘭碧八大法則.ipynb」。


上一篇
Day20 移動平均線的扣抵
下一篇
Day22 其他的技術指標(1)
系列文
用Python程式進行股票技術分析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言