MD 行情解說

時序

api前置櫃檯req Connectnew api/reg spi/regfront/init/join連接建立on FrontConnected0 - no errorreq UserLogininvestor/password/broker/api_id/auth_code驗證登錄信息驗證結果on RspUserLogin0 - no errorreq SubscribeMarketDatainstrument_id訂閱行情訂閱響應on RspSubscribeMarketData0 - no error行情推送on RtnMarketDatastruct MarketDatareq userlogout & release斷開on FrontDisconnected0/4097api前置櫃檯md時序圖練習

開發環境

阿里雲容器化服務

Demo

環境準備

docker run -itd --name pyctp haifengat/pyctp:2.3.2

docker pull haifengat/pyctp

demo

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from py_ctp.quote import CtpQuote
from py_ctp.enums import *
import time

class TestQuote(object):
    """TestQuote"""

    def __init__(self, addr: str, broker: str, investor: str, pwd: str):
        """"""
        self.front = addr
        self.broker = broker
        self.investor = investor
        self.pwd = pwd

        self.q = CtpQuote()
        self.q.OnConnected = self.onconnect
        self.q.OnUserLogin = self.onrspuserlogin

    def run(self):
        self.q.ReqConnect(self.front)

    def onconnect(self, obj):
        print("connected")
        self.q.ReqUserLogin(self.investor, self.pwd, self.broker)

    def onrspuserlogin(self, obj, info):
        print(info)
        self.q.ReqSubscribeMarketData('rb2009')

    def release(self):
        self.q.ReqUserLogout()

if __name__ == "__main__":

    front_quote = 'tcp://180.168.146.187:10111'
    broker = '9999'
    investor = '008105'
    pwd = '1'
    appid = 'simnow_client_test'
    auth_code = '0000000000000000'
    if investor == '':
        investor = input('invesotr:')
        pwd = input('password:')
        appid = input('appid:')
        auth_code = input('auth code:')
    qq = TestQuote(front_quote, broker, investor, pwd)
    qq.run()

    input()
    qq.release()
    input()

QA

官方地址 http://www.simnow.com.cn/

帳號

測試

註冊simnow,獲取帳號密碼。

生產&仿真

開通期貨帳號獲得生產帳號密碼(具體事宜諮詢期貨公司),開通正式帳號後可申請仿真環境。

前置

測試

前置

​ Broker: 9999

​ 第一組:Trade Front:180.168.146.187:10100,Market Front:180.168.146.187:10110;【電信】(看穿式前置,使用監控中心生產祕鑰)

​ 第二組:Trade Front:180.168.146.187:10101,Market Front:180.168.146.187:10111;【電信】(看穿式前置,使用監控中心生產祕鑰)

​ 第三組:Trade Front:218.202.237.33 :10102,Market Front:218.202.237.33 :10112;【移動】(看穿式前置,使用監控中心生產祕鑰)

​ 用戶註冊後,默認的APPID爲simnow_client_test,認證碼爲0000000000000000(16個0),默認不開終端認證,程序化用戶可以選擇不開終端認證接入。

​ 交易階段(服務時間):與實際生產環境保持一致。

CTP FIX 網關(看穿式):

​ 第一組:Trade Front: 180.168.146.187:10104,Market Front:180.168.146.187:10114;【電信】

​ CTP FIX網關相關資料請到常用下載->綜合交易平臺api下載頁面查看。

​ 交易階段(服務時間):與實際生產環境保持一致。

成交規則

1、期貨交易按照交易所公佈的買一賣一價對價成交;

2、買入時:如果委託價大於等於賣一價,則成交,成交價爲委託價、賣一價、最新價三價取中,如果委託價小於賣一價,不能成交,等待更優的行情才能成交;

3、賣出時:如果委託價小於等於買一價,則成交,成交價爲委託價、買一價、最新價三價取中,如果委託價大於買一價,不能成交,等待更優的行情才能成交。

生產&仿真

諮詢期貨公司

前置連接失敗

telnet 前置地址 端口

登錄

默認行情登錄不驗證,某些期貨公司有開了驗證的,需要正確填寫Broker/Investorid/password/。

收不到訂閱的行情

檢查訂閱的合約是否正確(注意大小寫)和有行情

檢查端口號爲行情端口而非交易端口

Tick與分筆

國內期貨只有tick數據,即行情快照。快照數量各交易所不同,不同行情服務也不同,通常爲2次/秒。

Tradingday與Actionday

tradingday爲交易日,actionday爲實際行情日期。

不要使用行情中的actionday,某些交易所actionday不正確。

actionday計算方法

取當前交易日 tradingday
取前一交易日 pre_tradingday
取前一交易日的後一自然日 next_pre_day
行情時間 >= 20:00:00 actionday = pre_tradingday
行情時間 <= 03:00:00 actionday = next_pre_day
其他時間 actionday = tradingday

ExchangeID

行情中的Exchangeid字段可能爲NULL不要用

行情中的double.max

遇到漲跌停或其他沒有行情的情況,某些字段會被 double.max (即FFFFFFFF) 填充,需要過濾掉。

AveragePrice

均價,即實時圖中的黃線。

除鄭商所合約(CZCE)外需除以合約乘數(VOLUMEPULTIPLE)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章