iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
永豐金融APIs

永豐金API之30天不中斷Q&A系列 第 25

Day25- 如何盤中計算技術指標且發送訊號到line: 成果示範

今天要整合先前所學,使用colab盤中即時計算技術指標,當技術指標達到我們要的條件時,發送訊息到line!

盤中計算技術指標,通常是每隔一段時間計算一次,例如每五分鐘計算一次一分K的5MA,發送line通知顯示現在的收盤價在一分K的5MA之上或之下,寫法如下,
使用

date.today()

自動取得今天的日期,

from datetime import date
date.today()
today=str(date.today())

使用while迴圈與

datetime.now().minute %5==0

達成每五分鐘計算一次技術指標的目的。

每五分鐘取得一分K,用

talib.SMA(df['Close'],5) 

計算一分K的5MA,判斷目前收盤價在5MA之上或是之下並發送line訊息,因為本範例是每五分鐘計算一次訊號,所以每次計算完可以用

time.sleep(60)

休息個60秒(可自由選擇)

import time 
from datetime import datetime
while True:
  if (datetime.now().minute %5 == 0) :  #每五分鐘計算一次
    kbars = api.kbars(api.Contracts.Futures.TXF['TXFJ1'], start=today, end=today)
    df = pd.DataFrame({**kbars})
    df.ts = pd.to_datetime(df.ts)
    df.set_index('ts',inplace=True) ##將時間設為index
    SMA_5 = talib.SMA(df['Close'],5)
    if df['Close'].iloc[-1] < SMA_5.iloc[-1]:
      msg = '台指目前在一分K的5MA之下'  
      lineTool.lineNotify(lineC,msg)  
      time.sleep(60)   #每次計算完休息60秒
    elif df['Close'].iloc[-1] > SMA_5.iloc[-1]:
      msg = '台指目前在一分K的5MA之上'  
      lineTool.lineNotify(lineC,msg) 
      time.sleep(60)   #每次計算完休息60秒

透過以上的範例程式碼,簡單介紹如何用一分K每五分鐘計算一次技術指標並發送line訊息,可以搭配先前幾篇系列文,試試看如何每隔一段時間計算5分K的技術指標並發送line訊息。


上一篇
Day24 - 如何盤中計算技術指標且發送訊號到line: 不同頻率分K計算
下一篇
Day26 - 雲端交易主機 - GCP雲端平台申請&架設(Ubuntu)
系列文
永豐金API之30天不中斷Q&A26

尚未有邦友留言

立即登入留言