一、基礎知識
Tqsdk(Trading Quant System Development Kit)是一個開源的交易量化開發工具,致力於為量化愛好者、專業交易員和交易所提供高效的、簡單易用、可擴展的交易系統開發解決方案,它為使用 Python 語言的交易者提供了一套易於調用、功能齊全、高性能的開發介面。
Tqsdk在交易領域廣泛應用,我們可以利用Tqsdk來自動化交易於股票、期貨等金融市場。
二、數據獲取
tqapi.get_kline_serial(symbol, dur_n, dur_m, data_length)函數可獲指定合約、K線周期、數量的K線數據,其中symbol參數為指定合約代碼代號,dur_n參數為K線周期的周期數,dur_m參數為K線周期的類型(如”D”代表天線,”H”代表小時線,”M”代表分鐘線等),data_length參數為需要獲取的K線數據數量。
通過get_kline_serial函數接獲得的數據會以Dataframe格式數據自動存儲,我們可以非常方便的進行數據前處理。
import tqsdk
ts = tqsdk.TqApi()
klines = ts.get_kline_serial("SHFE.rb2110", 60, data_length=10)
三、交易策略
我們可以根據數據特點設計交易策略,如均線策略、趨勢策略等。
均線策略簡單來說,是通過比較均線與價格的位置來判斷未來趨勢走勢,實現買入或賣出。
以5分鐘為例,當股票價格突破5分鐘均線,買入;當股票價格跌破5分鐘均線,賣出。
import tqsdk
import pandas as pd
ts = tqsdk.TqApi()
klines = ts.get_kline_serial("SHFE.rb2110", 300, data_length=40)
df = pd.DataFrame(klines)
df["ma5"] = df["close"].rolling(5).mean()
last_data = df.iloc[-1]
if last_data["close"] > last_data["ma5"]:
// 進行買入操作
else:
// 進行賣出操作
四、下單交易
tqapi.insert_order(symbol, direction, offset, volume, limit_price)函數可進行訂單下單,其中symbol參數為指定合約代碼代號,direction參數為訂單方向(如 BUY 代表買入,SELL 代表賣出),offset參數為開平倉方向(如OPEN 代表開倉,CLOSE代表平倉),volume參數為訂單數量,limit_price參數為訂單價格(如果不填,則以市價單進行交易)。
import tqsdk
ts = tqsdk.TqApi()
ts.insert_order("SHFE.rb2110", "BUY", "OPEN", 1, limit_price=last_data["close"])
五、實戰演練
以上是Tqsdk的基本使用方法,我們可以把上述知識融合起來,設計一個簡單的交易策略,並使用Tqsdk實現股票數據自動化交易。
以「跨越10日均線買入,跌破3日均線賣出」策略為例,假設目前股票價格突破10日均線,我們進行買入操作;如果股票價格跌破3日均線,則進行賣出操作。
import tqsdk
import pandas as pd
ts = tqsdk.TqApi()
klines = ts.get_kline_serial("SHFE.rb2110", 300, data_length=20)
df = pd.DataFrame(klines)
df["ma3"] = df["close"].rolling(3).mean()
df["ma10"] = df["close"].rolling(10).mean()
last_data = df.iloc[-1]
if last_data["close"] > last_data["ma10"]:
ts.insert_order("SHFE.rb2110", "BUY", "OPEN", 1, limit_price=last_data["close"])
if last_data["close"] < last_data["ma3"]:
ts.insert_order("SHFE.rb2110", "SELL", "CLOSE", 1, limit_price=last_data["close"])
該交易策略僅供參考,大家可以根據自己的喜好和經驗進行調整。
六、總結
Tqsdk是一款非常方便易用的量化交易開發工具,能夠有效輔助我們在股票交易中實現自動化交易,提高交易效率。
通過對Tqsdk的學習和實踐,可以讓我們更全面地了解股票交易,並對未來的交易有更好的預測和判斷。
原創文章,作者:TJYC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/135493.html