5

過去の先物データをリクエストしようとしましたが、初心者にとって ibrokers.pdf ドキュメントは十分に文書化されていません。例 12 月 11 日ゴールド Miny 契約 NYSELIFFE:

goldminy<-twsFuture("YG","NYSELIFFE","201112",multiplier="33.2")
reqHistoricalData(conn,
Contract= "goldminy",
endDateTime"",
barSize = "1 S",
duration = "1 D",
useRTH = "0",
whatToShow = "TRADES","BID", "ASK", "BID_ASK",
timeFormat = "1",
tzone = "",
verbose = TRUE,
tickerId = "1",
eventHistoricalData,
file)

一部のデータ パラメータを正しく指定する方法もわかりません。

何を表示しますか?Date,Time,BidSize,Bid,Ask,AskSize,Last,LastSize,Volumeが必要です

ティッカーID ?

イベント履歴データ ?

ファイル ?

4

1 に答える 1

7

この種の頭痛の種を軽減するために、twsInstrumentパッケージ(RForge上)を作成しました。getContractは、合理的なものを提供すれば、あなたに代わって契約を見つけます。
「YG_Z1」、「YG_Z11」、「YGZ1」、「YGZ11」、「YGZ2011」、「YGDEC2011」、「YG_DEC2011」などの形式のいずれ
かが機能するはずです(conIdを使用するか、インストルメントを指定することもできます)オブジェクト、または楽器オブジェクトの名前)

> library(twsInstrument)
> goldminy <- getContract("YG_Z1")
Connected with clientId 100.
Contract details request complete. Disconnected.
> goldminy
List of 16
 $ conId          : chr "42334455"
 $ symbol         : chr "YG"
 $ sectype        : chr "FUT"
 $ exch           : chr "NYSELIFFE"
 $ primary        : chr ""
 $ expiry         : chr "20111228"
 $ strike         : chr "0"
 $ currency       : chr "USD"
 $ right          : chr ""
 $ local          : chr "YG   DEC 11"
 $ multiplier     : chr "33.2"
 $ combo_legs_desc: chr ""
 $ comboleg       : chr ""
 $ include_expired: chr "0"
 $ secIdType      : chr ""
 $ secId          : chr ""

NYSELIFFEの市場データのサブスクリプションを持っていないので、この回答の残りの部分では、2011年12月のe-mini S&Pfutureを使用します。

このような履歴データを取得できます

tws <- twsConnect()
hist.data <- reqHistoricalData(tws, getContract("ES_Z1"))

これにより、これらの列が返され、すべて「TRADES」データになります

> colnames(hist.data)
[1] "ESZ1.Open"    "ESZ1.High"    "ESZ1.Low"     "ESZ1.Close"   "ESZ1.Volume" 
[6] "ESZ1.WAP"     "ESZ1.hasGaps" "ESZ1.Count"  

whatToShowは、「TRADES」、「BID」、「ASK」、または「BID_ASK」のいずれかである必要があります。リクエストでwhatToShow='BID'を使用している場合は、BID価格のOHLCなどを取得します。「BID_ASK」は、アスク価格が高値に使用され、ビッド価格が安値に使用されることを意味します。

ビネットが高度すぎるとおっしゃっていたので、InteractiveBrokersが履歴データリクエストを60秒ごとに6つに制限していることを繰り返し述べます。したがって、各リクエストの間に10秒間一時停止する必要があります(または、大量のデータを取得する場合は、3つのリクエストを行った後、通常30秒間一時停止します。これにより、何かのBIDデータがある場合は、ASKデータもある可能性があります)

関数getBATは、BID、ASK、およびTRADESデータをダウンロードし、それらの終了値のみを次のような単一のxtsオブジェクトにマージします。

> getBAT("ES_Z1")
Connected with clientId 120.
waiting for TWS reply on ES ............. done.
Pausing 10 seconds between requests ...
waiting for TWS reply on ES .... done.
Pausing 10 seconds between requests ...
waiting for TWS reply on ES .... done.
Pausing 10 seconds between requests ...
Disconnecting ... 
[1] "ES_Z1"
> tail(ES_Z1)
                    ES.Bid.Price ES.Ask.Price ES.Trade.Price ES.Mid.Price
2011-09-27 15:09:00      1170.25      1170.50        1170.50     1170.375
2011-09-27 15:10:00      1170.50      1170.75        1170.50     1170.625
2011-09-27 15:11:00      1171.25      1171.50        1171.25     1171.375
2011-09-27 15:12:00      1171.50      1171.75        1171.50     1171.625
2011-09-27 15:13:00      1171.25      1171.50        1171.25     1171.375
2011-09-27 15:14:00      1169.75      1170.00        1170.00     1169.875
                    ES.Volume
2011-09-27 15:09:00      6830
2011-09-27 15:10:00      4509
2011-09-27 15:11:00      4902
2011-09-27 15:12:00      6089
2011-09-27 15:13:00      6075
2011-09-27 15:14:00     14380

LastSizeとVolumeの両方を要求しました。getBATが返す「ボリューム」は、バーの期間中に取引された合計金額です。つまり、1分のバーでは、その1分間に発生した合計ボリュームになります。

twsInstrumentを使用しない回答は次のとおりです。これでうまくいくとほぼ確信していますが、前述したように、必要な市場データサブスクリプションがないため、テストできません。

reqHistoricalData(tws, twsFuture("YG","NYSELIFFE","201112"))

e-mini S&Pを再度使用する:

> mydata <- reqHistoricalData(tws, twsFuture("ES","GLOBEX","201112"), barSize='1 min', duration='5 D', useRTH='0', whatToShow='TRADES')
waiting for TWS reply on ES .... done.

> head(mydata)
                    ESZ1.Open ESZ1.High ESZ1.Low ESZ1.Close ESZ1.Volume ESZ1.WAP ESZ1.hasGaps ESZ1.Count
2011-09-21 15:30:00   1155.25   1156.25  1155.00    1155.75        3335  1155.50            0        607
2011-09-21 15:31:00   1155.75   1156.25  1155.50    1155.75         917  1155.95            0        164
2011-09-21 15:32:00   1155.75   1156.25  1155.50    1156.00         859  1155.90            0        168
2011-09-21 15:33:00   1156.00   1156.25  1155.50    1155.75         642  1155.83            0        134
2011-09-21 15:34:00   1155.50   1156.00  1155.25    1155.25        1768  1155.65            0        232
2011-09-21 15:35:00   1155.25   1155.75  1155.25    1155.25         479  1155.45            0         94

試行の問題の1つは、barSizeが「1S」の場合、期間が「60S」を超えることはできないことです。IB履歴データの制限を参照してください。

于 2011-09-27T21:18:13.233 に答える