免责声明:
本人在这一行积累的一点东西,开始输出点东西。
本人及本人所在地球,对本文所产生的盈利或损失概不负责,不关心。
相关代码如果没有特殊说明,遵循随便用,随便改,随便发布的三随协议。
本文目的:
通过python-ctp的demo(这是[传送门] https://github.com/tradercoder/python-ctp
[记得带回程卷轴,免得错失下文精彩故事])使更多人能够快速上手,通过接收行情并保存下来,通过行情数据的研究,参与交易。从而带动量化交易;为地球,太阳系,银河系的资本市场贡献一份代码。
-----------------------------------------------------------------------------------------
这是唯一一条分割线
python不愧为被称为胶水语言,更确切的说是万能胶,啥都能粘。无论是ABCDE
++语言, python它都能收下;从1+1=2 ,
到深度学习,到处是它的天下;尼玛还抢了点matlab的碗饭;策略回测简直是神器;简直是得python得天下。:)
python回测相关说明 请参考网页:
https://robusttechhouse.com/python-backtesting-libraries-for-quant-trading-strategies/
贴段代码,证明下我不是文科生。(这blog的代码排版简直不能用:(); 有请传送门
https://github.com/tradercoder/python-ctp/blob/master/src/md_2_hbase/marketdatademo.py
class TestMD
CThostFtdcMdSpi): |
|
m_nRequestID = 0 |
|
m_szBrokerID =
"" |
|
m_szUserID =
"" |
|
m_szPassword =
"" |
|
m_vecSubIntruments = [] |
|
|
|
rowkeyindex = 1 |
|
|
|
def
__init__(self,
front, szBrokerID, szUserID,
szPassword,vecSubIntruments): |
|
CThostFtdcMdSpi.__init__(self) |
|
|
|
self.m_szBrokerID = szBrokerID |
|
self.m_szUserID = szUserID |
|
self.m_szPassword = szPassword |
|
self.m_vecSubIntruments =
vecSubIntruments |
|
|
|
self.api =
CThostFtdcMdApi_CreateFtdcMdApi("") |
|
self.api.RegisterSpi(self) |
|
self.api.RegisterFront(front) |
|
self.api.Init() |
|
|
|
return |
|
|
|
def
join(self): |
|
self.api.Join() |
|
|
|
def
OnFrontConnected(self): |
|
print("MD
FrontConnected") |
|
field = CThostFtdcReqUserLoginField() |
|
field.BrokerID =
self.m_szBrokerID |
|
field.UserID = self.m_szUserID |
|
field.Password =
self.m_szPassword |
|
self.m_nRequestID +=
1 |
|
self.api.ReqUserLogin(field,
self.m_nRequestID) |
|
return |
|
|
|
def
OnRspUserLogin(self,
pRspUserLogin, pRspInfo,
nRequestID, bIsLast): |
|
print("MD
OnRspUserLogin") |
|
print pRspInfo.ErrorMsg |
|
|
|
if (pRspInfo.ErrorID ==
0): |
|
self.api.SubscribeMarketData(self.m_vecSubIntruments) |
|
return |
|
|
|
def
OnRtnDepthMarketData(self,
pDepthMarketData): |
|
#print
pDepthMarketData.InstrumentID,pDepthMarketData.UpdateTime ,
pDepthMarketData.UpdateMillisec ,pDepthMarketData.LastPrice
,pDepthMarketData.Volume ,pDepthMarketData.AskPrice1
,pDepthMarketData.AskVolume1 ,pDepthMarketData.BidPrice1
,pDepthMarketData.BidVolume1 |
|
|
|
有了行情数据,我们就可以进行回测了,无论你是基于矩阵的回测还是基于行情驱动的回测, python统统适合你。什么!?
你用周易,易经,金刚经,神学,菠萝菠萝蜜,穿越术
!**!*&!HH进行交易的,这个pyhon帮不了你,都成神仙了,成道,成魔了,还交易啥,洗洗回家吧。
进入主题
好了回到主题,
Life is short, you need Python
后期会推出
统一接口
横向,纵向的风控体系
尽情期待。
(完)
加载中,请稍候......