1、通过ibapi 下 EClient 和 EWrapper 创建新SimpleClient()类,其中EClient负责 connet()链接tws 发送req____ 请求,EWrapper负责 处理服务器发回的数据 利用回调函数处理。
2、实例 请求 EUR USD 历史数据
(1)定义 contract (人话:就是告诉服务器 我要EURUSD的历史数据)
from ibapi.client import EClient, Contract
contract = Contract()
contract.symbol = "EUR"
contract.secType = "CASH"
contract.currency = "USD"
contract.exchange = "IDEALPRO"
contract = Contract()
contract.symbol = "ES"
contract.secType = "FUT"
contract.exchange = "GLOBEX"
contract.currency = "USD"
contract.lastTradeDateOrContractMonth = "201903"
(2)展示代码
### SimpleClient 是上个文章中新定义的类 下面要魔改以下回调函数
from SC import SimpleClient
import datetime
client = SimpleClient('127.0.0.1', 7497, 0)
### 设置请求时间(人话:就是咱们得告诉服务器 我需要什么时间段的历史数据)
queryTime = (datetime.datetime.today() - datetime.timedelta(days=180)).strftime("%Y%m%d %H:%M:%S")
### 发送请求
client.reqHistoricalData(4102, contract, queryTime,"1 M", "1 day", "MIDPOINT", 1, 1, False, [])
(3)魔改回调函数
import pandas as pd
from datetime import datetime
from threading import Thread
import time
import sys
from ibapi.client import EClient, Contrac