中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Jupyter NoteBook進行IB查詢和交易以及使用算法交易

發布時間:2021-11-30 16:53:39 來源:億速云 閱讀:202 作者:小新 欄目:編程語言

這篇文章主要介紹如何使用Jupyter NoteBook進行IB查詢和交易以及使用算法交易,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

Script_engine的大多操作都是針對main_engine的封裝,類似的邏輯,其他交易相關App,也可以用類似方法調用,真的很方便,比起之前調試來說。其實算法交易調用也很直接,直接傳入algo setting 的dict就可以。

應為Jupyter NoteBook代碼不好貼,我這里又改寫會直接python code。在啟動tws登錄后,可以直接運行。
另外IB接口的返回信息采用一個中wrapper機制,有點類似Spring的反轉調用,可以理解為本地返回方法是被IBapi調用的寫入。

from vnpy.app.script_trader import init_cli_trading
from vnpy.gateway.ib import IbGateway
from time import sleep
# 連接到服務器
setting = {
    "TWS地址": "127.0.0.1",
    "TWS端口": 7497,
    "客戶號":5 #每個鏈接用一個獨立的鏈接號,一個IBAPI支持32個來同時鏈接
}
engine = init_cli_trading([IbGateway]) #返回Script_engine 示例,并且給main_engine注冊了gateway
engine.connect_gateway(setting, "IB") #鏈接
# 查詢資金 - 自動
sleep(10)
print(engine.get_all_accounts(use_df = True))
# 查詢持倉
print(engine.get_all_positions(use_df = True))
# 訂閱行情
from vnpy.trader.constant import Exchange
from vnpy.trader.object import SubscribeRequest
# 從我測試直接用Script_engine有問題,IB的品種太多,get_all_contracts命令不行,需要指定具體后才可以,這里使用main_engine訂閱
req1 = SubscribeRequest("152791428",Exchange.SEHK) #創建行情訂閱,騰訊
req2 = SubscribeRequest("332623976",Exchange.SEHK) #創建行情訂閱,美團
req3 = SubscribeRequest("12087792",Exchange.IDEALPRO) #創建行情訂閱,美團
engine.main_engine.subscribe(req1,"IB")
engine.main_engine.subscribe(req2,"IB")
engine.main_engine.subscribe(req3,"IB")
# 返回行情
sleep(10)
print(engine.get_all_contracts(use_df = True)) #返回所有已經訂閱的contact
print(engine.get_contract("152791428.SEHK",use_df = True)) #返回單個訂閱的contact
print(engine.get_ticks(["152791428.SEHK","332623976.SEHK"],use_df = True)) #返回訂閱的tick
# 委托下單,返回訂單號
from vnpy.trader.constant import OrderType
vt_orderid = engine.buy(vt_symbol = "12087792.IDEALPRO",price = 1.20, volume = 50000, order_type = OrderType.LIMIT)
print(vt_orderid)
# 按照訂單號查詢委托狀態,這里也可以用get_orders, 查詢訂單號隊列
sleep(10)
print(engine.get_order(vt_orderid)) #
print(engine.get_trades(vt_orderid, use_df= True))
# 再次查詢持倉
print(engine.get_all_positions(use_df = True))
# 使用算法交易引擎
from vnpy.app.algo_trading import AlgoTradingApp
engine.main_engine.add_app(AlgoTradingApp) #加入app
AlgoInstance = engine.main_engine.get_engine("AlgoTrading") #為了方便,這里直接用返回的AlgoInstance
# 創建算法交易的要執行交易內容, 這個可以復制 algo_trading_setting.json的內容,這里這里策略是,100秒內每隔10秒下單一次,每次購買10000
AlgotradingDict1 = {
        "template_name": "TwapAlgo",
        "vt_symbol": "12087792.IDEALPRO",
        "direction": "多",
        "price": 1.0985,
        "volume": 10000.0,
        "time": 100,
        "interval": 10,
        "offset": ""
    }
AlgoInstance.start_algo(setting = AlgotradingDict1)
# 再次查詢持倉
print(engine.get_all_positions(use_df = True))

以上是“如何使用Jupyter NoteBook進行IB查詢和交易以及使用算法交易”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凌海市| 颍上县| 吉林省| 湖南省| 贵定县| 枣阳市| 蓬莱市| 淳安县| 阿勒泰市| 太仆寺旗| 财经| 绥阳县| 盐亭县| 漳浦县| 丰原市| 东兰县| 大连市| 冕宁县| 曲阳县| 招远市| 息烽县| 云龙县| 游戏| 灯塔市| 常熟市| 双流县| 曲松县| 肃南| 千阳县| 中宁县| 道真| 葵青区| 连南| 修文县| 阳春市| 石嘴山市| 娱乐| 黄梅县| 松江区| 石林| 新邵县|