<button id="dtqhd"></button>
    <dd id="dtqhd"><big id="dtqhd"><video id="dtqhd"></video></big></dd>
    <th id="dtqhd"></th>
    <tbody id="dtqhd"><pre id="dtqhd"></pre></tbody>
    <th id="dtqhd"></th>

    天勤量化

    簡單但強大的Python量化開發包

    0 +
    用戶數
    0 +
    已上線期貨公司
    0 +
    實盤報單量

    Python語言

    基于python語言, 在一個策略中訪問任意K線和行情數據, 還能對交易細節和賬戶執行精確控制

    即裝即用

    一分鐘安裝, 策略開發/運行/回測, 模擬/實盤交易, 實時行情/歷史行情等功能全部直接到位

    免費開源

    天勤量化開發包在 Github 完全開放,可以自由獲取或修改, 也可以與其它 python 包組合使用.

    了解 天勤 1.0.0 版本的 新增功能!,點擊下載最新版 天勤量化 Windows終端

    數據支持

    天勤提供當前所有可交易合約從上市開始的全部Tick數據和K線數據

    實盤交易

    天勤支持數十家期貨公司的實盤賬號,您可以通過這些賬號進行實盤交易

    模擬交易

    天勤提供模擬交易賬號, 用于測試您的交易策略

    歷史復盤

    可以指定歷史上任一天, 整個軟件, 行情數據和策略程序都回到那天運行

    Python策略開發

    無須安裝其它任何軟件包, 即可在天勤中開發策略程序

    可視化分析?

    天勤為每個策略提供一個專屬行情圖. 策略程序可以通過Python代碼在圖上繪制標記

    Tick級策略回測

    所有策略程序可以直接執行回測, 包括K線回測和Tick回測, 回測過程中實時生成回測報告

    VsCode插件

    提供VsCode插件,直接在VsCode中打開K線圖,運行策略和回測

    技術指標庫

    天勤提供一套完整的技術指標庫, 以Python寫成, 可以在策略程序中使用, 也可以自行修改

    套利策略?

    天勤包含了數個套利策略的完整代碼, 您可以直接使用它們, 也可以按自己的需求改進

    網格策略

    天勤包含了一個完整的網格交易策略的完整代碼, 您可以使用或修改它

    算法交易

    天勤中除完整策略外, 也支持人機混合的算法交易程序, 例如自動遷倉, 大單分拆等

    代碼示例

    from tqsdk import TqApi
    
    # 創建API實例 
    api = TqApi()
    # 獲得上期所 cu1812 的行情引用,當行情有變化時 quote 中的字段會對應更新
    quote = api.get_quote("SHFE.cu1812")
    
    while True:
        # 調用 wait_update 等待業務信息發生變化,例如: 行情發生變化, 委托單狀態變化, 發生成交等等
        api.wait_update()
        # 每當業務信息有變化時就輸出 cu1812 的最新行情時間和最新價
        # 注意:其他合約的行情的更新也會觸發業務信息變化,因此這里可能會將同一筆行情輸出多次
        print(quote.datetime, quote.last_price)
    
    from tqsdk import TqApi
    import datetime
    
    api = TqApi()
    # 獲得cu1812 tick序列的引用
    ticks = api.get_tick_serial("SHFE.cu1812")
    # 獲得cu1812 10秒K線的引用
    klines = api.get_kline_serial("SHFE.cu1812", 10)
    
    while True:
        api.wait_update()
        # 判斷整個tick序列是否有變化
        if api.is_changing(ticks):
            # ticks.iloc[-1]返回序列中最后一個tick
            print("tick變化", ticks.iloc[-1])
        # 判斷最后一根K線的時間是否有變化,如果發生變化則表示新產生了一根K線
        if api.is_changing(klines.iloc[-1], "datetime"):
            # datetime: 自unix epoch(1970-01-01 00:00:00 GMT)以來的納秒數
            print("新K線", datetime.datetime.fromtimestamp(klines.iloc[-1]["datetime"]/1e9))
        # 判斷最后一根K線的收盤價是否有變化
        if api.is_changing(klines.iloc[-1], "close"):
            # klines.close返回收盤價序列
            print("K線變化", datetime.datetime.fromtimestamp(klines.iloc[-1]["datetime"]/1e9), klines.close.iloc[-1])
    
    
    from tqsdk import TqApi
    
    api = TqApi()
    # 獲得 m1901 的持倉引用,當持倉有變化時 position 中的字段會對應更新
    position = api.get_position("DCE.m1901")
    # 獲得資金賬戶引用,當賬戶有變化時 account 中的字段會對應更新
    account = api.get_account()
    # 下單并返回委托單的引用,當該委托單有變化時 order 中的字段會對應更新
    order = api.insert_order(symbol="DCE.m1901", direction="BUY", offset="OPEN", volume=5)
    
    while True:
        api.wait_update()
        if api.is_changing(order, ["status", "volume_orign", "volume_left"]):
            print("單狀態: %s, 已成交: %d 手" % (order.status, order.volume_orign - order.volume_left))
        if api.is_changing(position, "volume_long_today"):
            print("今多頭: %d 手" % (position.volume_long_today))
        if api.is_changing(account, "available"):
            print("可用資金: %.2f" % (account.available))
    
    from tqsdk import TqApi, TargetPosTask
    
    '''
    價差回歸
    當近月-遠月的價差大于200時做空近月,做多遠月
    當價差小于150時平倉
    '''
    api = TqApi()
    quote_near = api.get_quote("SHFE.rb1810")
    quote_deferred = api.get_quote("SHFE.rb1901")
    # 創建 rb1810 的目標持倉 task,該 task 負責調整 rb1810 的倉位到指定的目標倉位
    target_pos_near = TargetPosTask(api, "SHFE.rb1810")
    # 創建 rb1901 的目標持倉 task,該 task 負責調整 rb1901 的倉位到指定的目標倉位
    target_pos_deferred = TargetPosTask(api, "SHFE.rb1901")
    
    while True:
        api.wait_update()
        if api.is_changing(quote_near) or api.is_changing(quote_deferred):
            spread = quote_near.last_price - quote_deferred.last_price
            print("當前價差:", spread)
            if spread > 200:
                print("目標持倉: 空近月,多遠月")
                # 設置目標持倉為正數表示多頭,負數表示空頭,0表示空倉
                target_pos_near.set_target_volume(-1)
                target_pos_deferred.set_target_volume(1)
            elif spread < 150:
                print("目標持倉: 空倉")
                target_pos_near.set_target_volume(0)
                target_pos_deferred.set_target_volume(0)
    

    我自己也封裝過CTP分布式接口,感覺天勤的API接口,才是真正理解交易的開發商做出來的軟件,領先免費開源軟件兩個段位,領先收費商用軟件一個段位。

    山外看山天勤用戶

    這是我見過的最好的API,比****,****等好很多,最主要就是數據不需要自己收集。

    大漠孤煙天勤用戶

    天勤的文檔是我看過的,最詳細的。

    lll天勤用戶

    學習和支持

    要學習天勤的使用或尋求支持,請訪問天勤學習和支持頁面

    有水浒传真金游戏