原創內容第969篇,專注AGI+,AI量化投資、個人成長與財富自由。
星球好多同學希望說說實盤,我們就從實盤開始吧。
我們選擇tqsdk給大家講解,tqsdk支持免費注冊,使用模擬賬戶,歷史和實時數據,方便我們回測、實盤一體化的策略開發。
需要注冊一個賬戶即可,默認就有一個模擬賬戶。
然后統一訪問的api接口:
api?= TqApi(auth=TqAuth(username, password))
然后就可以訪問數據:
01 數據篇
查詢所有的主連合約,一共85個:
查詢上交所所有有股票列表,一共2421支:
查詢上交所所有基金列表,一共970支:
下面我們來獲取時序數據——螺紋鋼主連合約15分鐘線(500個數據)# 定義主連合約代碼(格式:KQ.m@{交易所}.{品種})
symbol =?"KQ.m@SHFE.rb"??# 螺紋鋼主連示例
# 其他常見主連代碼:
# ? KQ.m@DCE.m ?-> 豆粕主連
# ? KQ.m@CFFEX.IF -> 滬深300股指主連
# ? KQ.m@SHFE.au -> 黃金主連
# 請求分鐘線數據(以15分鐘線為例)
df?= api.get_kline_serial(
? ? symbol=symbol,
? ? duration_seconds=60 * 15, ?# 周期:15分鐘(可修改為60=1分鐘)
? ? data_length=500, ? ? ? ? ?# 獲取K線數量
)
df['datetime'] = pd.to_datetime(df['datetime'], unit='ns') ?# 毫秒轉datetime
df.set_index('datetime', inplace=True) ?
df
使用tqsdk,我們不需要去管理數據,可以按需要獲取數據,這是非常方便的。
另外,tqsdk還是回測功能,真正做到策略實盤和回測一體。
02 回測篇
在30分鐘線上的回測——收盤價大于均線時做多,小于均線時平倉:
from?datetime?import?date
from?tqsdk?import?TqApi, TqAuth, TqBacktest, TargetPosTask
'''
如果當前價格大于5分鐘K線的MA15則開多倉
如果小于則平倉
回測從 2018-05-01 到 2018-10-01
'''
# 在創建 api 實例時傳入 TqBacktest 就會進入回測模式
#api = TqApi(backtest=TqBacktest(start_dt=date(2018, 5, 1), end_dt=date(2018, 10, 1)), auth=TqAuth("快期賬戶", "賬戶密碼"))
api = TqApi(backtest=TqBacktest(start_dt=date(2018,?5,?1), end_dt=date(2018,?10,?1)), auth=TqAuth(username, password))
api
# 獲得 m1901 5分鐘K線的引用
klines = api.get_kline_serial("DCE.m1901",?30*?60, data_length=15)
# 創建 m1901 的目標持倉 task,該 task 負責調整 m1901 的倉位到指定的目標倉位
target_pos = TargetPosTask(api,?"DCE.m1901")
while?True:
? ? api.wait_update()
? ??if?api.is_changing(klines):
? ? ? ? ma =?sum(klines.close.iloc[-15:]) /?15
? ? ? ??#print("最新價", klines.close.iloc[-1], "MA", ma)
? ? ? ??if?klines.close.iloc[-1] > ma:
? ? ? ? ? ??#print("最新價大于MA: 目標多頭5手")
? ? ? ? ? ??# 設置目標持倉為多頭5手
? ? ? ? ? ? target_pos.set_target_volume(5)
? ? ? ??elif?klines.close.iloc[-1] < ma:
? ? ? ? ? ??#print("最新價小于MA: 目標空倉")
? ? ? ? ? ??# 設置目標持倉為空倉
? ? ? ? ? ? target_pos.set_target_volume(0)
點擊 “查看原文”,直接訪問策略集合。
擴展 ?? ?歷史文章 ??
EarnMore(賺得更多)基于RL的投資組合管理框架:一致的股票表示,可定制股票池管理。(附論文+代碼)
年化收益200%+的策略集 | 實時板塊資金熱力圖 「aitrader 5.0系統代碼發布」
機器學習驅動的策略開發通過流程 | 普通人階層躍遷的可能路徑?
年化30.24%,最大回撤19%,綜合動量多因子評分策略再升級(python代碼+數據)
三秒鐘創建一個年化28%,夏普比1.25的策略(python系統已開放源代碼下載)
會員專屬策略可以直接下載了,多個十年年化30+%策略集|polars重構因子引擎(代碼+數據下載)
6年年化收益46%,最大回撤率為16%的策略(附python代碼)