文章目錄
時序
開發環境
阿里雲容器化服務
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)