Redian新闻
>
有人用tradestation/IB做过交易系统的开发吗?
avatar
有人用tradestation/IB做过交易系统的开发吗?# Stock
B*y
1
俺不是做自动交易的,基本全手动交易。准备换个交易平台,那种能比较容易作点小工
具,比如自动下载option数据,用以计算option pain啦。或者其他的简单的自动交易
的。
有过tradestation 或 IB经验的,可以指点下俺哪个更好开发,俺拿不定主意换那个平
台。当然,tradestation那些数据月费挺讨厌。
先谢啦。
avatar
m*0
2
IB没有返回options symbol list的函数,需要自己生成。
给你一个我以前用过的script,我自己从bloomberg下载的list,然后下载的options数
据,
基于IBPY, 另外IB数据很差,如果只是为了计算max pain,到处都有,没必要自己闭门造车。
#! /usr/bin/env python
# -*- coding: utf-8 -*-
from ib.ext.Contract import Contract
from ib.opt import ibConnection, message
from time import sleep
from datetime import date
# print all messages from TWS
def watcher(msg):
print msg
# show Bid and Ask quotes
def my_BidAsk(msg):
if msg.field == 1:
print '%s:%s: bid: %s' % (contractTuple[0],
contractTuple[6], msg.price)
elif msg.field == 2:
print '%s:%s: ask: %s' % (contractTuple[0], contractTuple[6], msg.
price)
def makeoptContract(constr):
contractStr = constr.split('|')
newContract = Contract()
newContract.m_symbol = contractStr[0]
newContract.m_secType = 'OPT'
newContract.m_exchange = 'SMART'
newContract.m_currency = 'USD'
newContract.m_expiry = contractStr[1]
newContract.m_strike = contractStr[2]
newContract.m_right = contractStr[3]
#newContract.m_includeExpired = 1
newContract.m_multiplier = 100
print 'Contract Values:%s,%s,%s,%s,%s,%s,%s,%s,%s:' % (newContract.m_
symbol, newContract.m_secType, newContract.m_exchange, newContract.m_
currency, newContract.m_expiry,\
newContract.m_strike, newContract.m_right, newContract.m_
includeExpired, newContract.m_multiplier)
return newContract
def printHistoricalData(msg):
if msg.date.find("finish") == -1:
timeline = msg.date[:4] + '-' + msg.date[4:6] + '-' + msg.date[6:]
print '%s,%s,%s,%s,%s,%s,%s,%s,%s' % (optContract.m_symbol + '-' +
optContract.m_expiry + '-' + optContract.m_right + optContract.m_strike,\
timeline , msg.open, msg.high, msg.low, msg.close, msg.
volume, msg.count, msg.WAP)
#with open("C:/Stock/IB_Hist/" + contractTuple[0] + ".txt", 'w') as f:
#f.writelines('%s,%s,%s,%s,%s,%s,%s,%s,%s' % (contractTuple[0], msg.
date, msg.open, msg.high, msg.low, msg.close, msg.volume, msg.count, msg.WAP
))
if __name__ == '__main__':
con = ibConnection()
con.registerAll(watcher)
#con.register(watcher, message.HistoricalData)
con.unregister(watcher, message.HistoricalData)
con.register(printHistoricalData, message.HistoricalData)
con.connect()
sleep(1)
tickId = 28
with open("C:/Stock/IBATM/weekly_options_trading_days.txt", 'r') as f:
daytimes = f.readlines()
""" get serial of days before OE
days = []
for a in daytimes:
days.append(a[:8])
print days
"""
with open("C:/Stock/IBATM/weekly_options_list.txt", 'r') as f:
#today = date.today().strftime("%Y%m%d")
#print today
for line in f:
optContract = makeoptContract(line[:-1])
#oe = line[:-1].split('|')[1]
optHistoricalLength = 30
for i in range(len(daytimes)- optHistoricalLength, len(daytimes)
):
con.reqHistoricalData(tickId, optContract, daytimes[i][:-1],
'1 D', '1 min', 'TRADES', 1 , 1)
sleep(10)
con.cancelMktData(tickId)
sleep(1)
con.disconnect()
sleep(1)

【在 B******y 的大作中提到】
: 俺不是做自动交易的,基本全手动交易。准备换个交易平台,那种能比较容易作点小工
: 具,比如自动下载option数据,用以计算option pain啦。或者其他的简单的自动交易
: 的。
: 有过tradestation 或 IB经验的,可以指点下俺哪个更好开发,俺拿不定主意换那个平
: 台。当然,tradestation那些数据月费挺讨厌。
: 先谢啦。

avatar
B*y
3
嘿嘿,果然有高手。谢谢。其实主要是想找个好用的platform入门开发这一行,以后会
开发点啥俺也不知道,option pain算俺想练手。
阁下说IB数据差是什么意思,各家数据不都应该一样吗?

闭门造车。

【在 m********0 的大作中提到】
: IB没有返回options symbol list的函数,需要自己生成。
: 给你一个我以前用过的script,我自己从bloomberg下载的list,然后下载的options数
: 据,
: 基于IBPY, 另外IB数据很差,如果只是为了计算max pain,到处都有,没必要自己闭门造车。
: #! /usr/bin/env python
: # -*- coding: utf-8 -*-
: from ib.ext.Contract import Contract
: from ib.opt import ibConnection, message
: from time import sleep
: from datetime import date

avatar
w*2
4
options你抓yahoo住容易些,虽然会晚两个小时,tradestation和ib都没有symbol 列
表。

【在 B******y 的大作中提到】
: 俺不是做自动交易的,基本全手动交易。准备换个交易平台,那种能比较容易作点小工
: 具,比如自动下载option数据,用以计算option pain啦。或者其他的简单的自动交易
: 的。
: 有过tradestation 或 IB经验的,可以指点下俺哪个更好开发,俺拿不定主意换那个平
: 台。当然,tradestation那些数据月费挺讨厌。
: 先谢啦。

avatar
m*0
5
嗯。没有chains函数。

【在 w********2 的大作中提到】
: options你抓yahoo住容易些,虽然会晚两个小时,tradestation和ib都没有symbol 列
: 表。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。