Interactive Brokers Python API (官方原生) 新手教學
本帖最後由 綠茶妹 於 23-1-31 23:49 編輯Interactive Brokers Python API (官方原生)
下面這一篇寫的很清楚。
我也不知道原生API有沒有比第三方API好用。反正就學學看
https://algotrading101.com/learn ... n-api-native-guide/
今天做到中間這裡 ,還滿好上手的。
我的測試
TrendRover 發表於 23-2-1 23:51
好久不見 ,最近好嗎?
我本業做的不錯,現在是中階主管。
但是我越來越討厭上班。
過去一年多晚上會看MYM MNQ期貨,我工作太忙了,不能長期睡這麼少。
現在想試程式交易。
取出1分鐘線的程式碼
from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.contract import Contract
import threading
import time
class IBapi(EWrapper, EClient):
def __init__(self):
EClient.__init__(self, self)
self.data = [] #Initialize variable to store candle
def historicalData(self, reqId, bar):
print(f'Time: {bar.date} Close: {bar.close}')
self.data.append()
def run_loop():
app.run()
app = IBapi()
app.connect('127.0.0.1', 7497, 123)
#Start the socket in a thread
api_thread = threading.Thread(target=run_loop, daemon=True)
api_thread.start()
time.sleep(1) #Sleep interval to allow time for connection to server
#Create contract object
contract = Contract()
contract.symbol = "MYM"
contract.secType = "FUT"
contract.exchange = "CBOT"
contract.currency = "USD"
contract.lastTradeDateOrContractMonth = "202303"
#Request historical candles
app.reqHistoricalData(1, contract, '', '5 D', '1 min', 'TRADES', 1, 2, False, [])
time.sleep(10) #sleep to allow enough time for data to be returned
#Working with Pandas DataFrames
import pandas
df = pandas.DataFrame(app.data, columns=['DateTime', 'Open','High','Low','Close'])
df['DateTime'] = pandas.to_datetime(df['DateTime'],unit='s')
df.to_csv('MYM-1min.csv')
print(df)
app.disconnect()
結果如下
MYM取資料也OK了。(一樣是上面這篇教學)
程式碼如下:
from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.contract import Contract
import threading
import time
class IBapi(EWrapper, EClient):
def __init__(self):
EClient.__init__(self, self)
def tickPrice(self, reqId, tickType, price, attrib):
if tickType == 2 and reqId == 1:
print('The current ask price is: ', price)
def run_loop():
app.run()
app = IBapi()
app.connect('127.0.0.1', 7497, 123)
#Start the socket in a thread
api_thread = threading.Thread(target=run_loop, daemon=True)
api_thread.start()
time.sleep(1) #Sleep interval to allow time for connection to server
#Create contract object
contract = Contract()
contract.symbol = "MYM"
contract.secType = "FUT"
contract.exchange = "CBOT"
contract.currency = "USD"
contract.lastTradeDateOrContractMonth = "202303"
#Request Market Data
app.reqMktData(1, contract, '', False, False, [])
time.sleep(10) #Sleep interval to allow time for incoming price data
app.disconnect()
好久不見 ,最近好嗎? 不考慮用 multichart 嗎?
amp 期或有免費的絹商版 multichart.net 用 C# 寫
或是ninjatrader 也是 C# 寫 , ninjatrader在下單前都是免費
也就是回測開發策略階段都是免費使用 amp地當沖保證金是 1/10-1/20,所以可以寫當沖 mym mnq 每1000U 可以下 3~5 口順勢
賺錢加碼策略 ,每天 收盤前 30分還是 15分鐘要平倉 ,沒平,他會幫你平收高手續費(以前碰過是
25U ,現在多少你要問問) ,amp缺點是除了 mc.net 或 mc 外你無法在 ampclearing 的 user portal 裡看到 order position 等等
如果要看得到那麼可以選 deepdiscounttrading 他的 user portal 可以看order
不過他要下單前都要email 要求開放 ,做 op還不准隨便做賣方---需要嚴格批准(資金族也要request ,margin 安全控管嚴格) ---ddt 的CQG 也比較貴 https://deepdiscounttrading.com/trading-margins/
ddt 的當沖是 1/4
https://www.ampfutures.com/news/margin-changes-economic-news-releases?utm_campaign=Client%20Notice&utm_medium=email&_hsmi=244216889&_hsenc=p2ANqtz--5aqrTNXSgdTaLM35mZJuooagNTYJB1MYIfoF5gesZjU5S9YNzPcjBFFBObXCZe-_m50l3x2fBCRIjGA7MxceEnrjeEA&utm_content=244216889&utm_source=hs_email 你如果用 python api 換一家要寫一次,很不方便
若C# 就可以換 tool 換 broker marketdata
用 powerlanguage 就簡單幾行,其餘交給 multichart 我只需要MYM MNQ期貨就可以了,不用選擇權。
剛才上網找一下,DDT與AMP好像都比IB有優勢。
請問用這2家都有multichart嗎?手續費是多少?
綠茶妹 發表於 23-2-4 22:22
我只需要MYM MNQ期貨就可以了,不用選擇權。
剛才上網找一下,DDT與AMP好像都比IB有優勢。
AMP選CQG 平台費低於DDT
都可以選 MC的連線
AMP有 mc.net 免平台費 卷商版
DDT要租或自備 mc
market data 的費用都可以訂 cme 一個level1 1.5USD就好 MYM +MNQ要訂兩個交易所 cbot + cme
TrendRover 發表於 23-2-10 02:33
AMP選CQG 平台費低於DDT
都可以選 MC的連線
感謝分享!
MC好像比較簡單,Python我覺得比較有彈性,但是基礎的環境要弄起來也要花不少時間。
每星期只有假日才有空來做。
TrendRover 發表於 23-2-3 02:29
不考慮用 multichart 嗎?
amp 期或有免費的絹商版 multichart.net 用 C# 寫
或是ninjatrader 也是 C# 寫 ...
請問大大amp 免費的mc.net有詳細的資料嗎,想開戶但受限於資料太少都沒開成
s4709110.tw 發表於 23-2-15 02:26
請問大大amp 免費的mc.net有詳細的資料嗎,想開戶但受限於資料太少都沒開成
...
https://www.ampfutures.com/trading-platform/multicharts-ampmc-net-free
頁:
[1]