Mor*_*ten 3 finance algorithmic-trading interactive-brokers
当通过盈透证券的API方法接收的财务数据打勾tickPrice或tickSize数据将具有下列参数
从任何其他饲料我会期望给我一个滴答
所以我的问题是:我应该保留一个字典,其中tickerId作为键,结构作为包含上述五个属性的值,这样每次提出tick事件时,我都会更新struct的相应属性并将整个struct发送到我的数据库中打勾?理想情况下,我的tick数据库看起来像这样
Date Time Symbol Side Price Quantity
2012-10-31 13:51:13.784 AAPL Bid 25.81 15007
2012-10-31 13:51:14.615 AAPL Bid 25.82 10
2012-10-31 13:51:14.633 AAPL Bid 25.81 13623
2012-10-31 13:51:14.684 AAPL Ask 25.82 2500
2012-10-31 13:52:09.168 AAPL Bid 25.80 12223
Run Code Online (Sandbox Code Playgroud)
从IB API文档:当市场数据发生变化时调用此方法.这是否意味着如果例如更新出价,其他属性将保持不变?
小智 5
你是对的.每当某个属性发生变化时,都会触发一个新的tick事件.使用结构来保存刻度快照的设计是标准方法之一.
换句话说,IB的API将在它们到达时发回每个聚合的标记.但是,这些刻度不是真正的刻度,因为它们只有0.2-0.3秒的快照.如果您正在处理HFT,那么这些数据对于订单模拟可能是可靠的.但是,如果您只是进行基本数据分析,那么它们的质量是可以接受的.
在这种情况下,它们的高价,低价和收盘价可能没有用,因为标准订单不包含高,低收盘价信息.我通常会抛弃它们.在这种情况下,出价大小和要价大小也不可靠,因为它们只是合成价格.
希望我的回答有所帮助
小智 5
这取决于您在reqMktData()方法中引入的内容:
void reqMktData( TickerId id,
const Contract &contract,
IBString &genericTicks,
bool snapshot,
const TagValueListSPtr &mktDataOptions
)
Run Code Online (Sandbox Code Playgroud)
如果你写snapshot = true,你会收到每0.2~0.5秒的数据快照.如果出价或价格已经移动,您将看到它.
如果您写信snapshot = false,您将收到一个新的变量出价或每次更改时询问.
| 归档时间: |
|
| 查看次数: |
3700 次 |
| 最近记录: |