2011-08-17 27 views
5
reqMktData(tws,twsOPT("AAPL 110820C00390000")) 

याआर Ibrokers twsOPT उपयोग

reqMktData(tws,twsOPT("AAPL110820C00390000")) 

परिणाम में: TWS संदेश: 2 1 200 कोई सुरक्षा परिभाषा अनुरोध

क्यों के लिए पाया गया है?

reqMktData(tws,twsSTK("AAPL")) 

ठीक काम करता है।

मैनपेज का कहना है:

TWS पर
twsOption(local, 
      expiry="", 
      strike="", 
      right="", 
      exch="SMART", 
      primary="", 
      currency='USD', 
      symbol='', 
      multiplier="100", 
      include_expired='0', 
      conId=0) 

विकल्प अनुबंध कुछ नियम जो मानक डेटा अनुरोधों की तुलना में अलग हैं।

स्थानीय प्रतीक आवश्यक है। यह कॉन्ट्रैक्ट विवरण के तहत मुख्य TWS स्क्रीन पर या www.interactivebrokers.com पर वेब के माध्यम से

स्थानीय प्रतीक की आवश्यकता होने के बाद, अन्य सभी मान अनावश्यक हैं। स्थानीय नाम निर्दिष्ट करना सबसे अच्छा है और TWS को लुकअप प्रबंधित करने दें।

+0

मुझे यकीन है कि तुम क्यों प्रयोग कर रहे हैं नहीं कर रहा हूँ "AAPL110820C00390000 है मैं नहीं जानता ! " आप "एएपीएल" का उपयोग क्यों नहीं कर रहे हैं? मुझे नहीं लगता कि आप जिस मूल्य का उपयोग कर रहे हैं वह सही स्थानीय नाम है। – Soumendra

उत्तर

5

आपको स्थानीय सही नहीं मिल रहा है। सही प्रारूप फ़ील्ड छह वर्ण चौड़ा (ओएसआई स्पेक) का उपयोग करता है, और आप क्रमश: 5 और 4 का प्रयास कर रहे हैं।

आपको पाठ्यक्रम का उपयोग करने की आवश्यकता नहीं है, लेकिन इसके लिए अलग-अलग तर्कों के बारे में अधिक जानकारी की आवश्यकता है।

> reqContractDetails(ibg, twsOPT("AAPL 110820C00390000")) 
[[1]] 
List of 18 
    $ version  : chr "6" 
    $ contract  :List of 16 
..$ conId   : chr "86896934" 
..$ symbol   : chr "AAPL" 
..$ sectype  : chr "OPT" 
..$ exch   : chr "SMART" 
..$ primary  : chr "" 
..$ expiry   : chr "20110819" 
..$ strike   : chr "390.0" 
..$ currency  : chr "USD" 
..$ right   : chr "C" 
..$ local   : chr "AAPL 110820C00390000" 
..$ multiplier  : chr "100" 
..$ combo_legs_desc: chr "" 
..$ comboleg  : chr "" 
..$ include_expired: chr "" 
..$ secIdType  : chr "" 
..$ secId   : chr "" 
..- attr(*, "class")= chr "twsContract" 
$ marketName : chr "AAPL" 
$ tradingClass : chr "AAPL" 
$ conId   : chr "86896934" 
$ minTick  : chr "0.01" 
$ orderTypes : chr [1:44] "ACTIVETIM" "ADJUST" "ALERT" "ALGO" ... 
$ validExchanges: chr [1:12] "SMART" "AMEX" "BATS" "BOX" ... 
$ priceMagnifier: chr "1" 
$ underConId : chr "265598" 
$ longName  : chr "APPLE INC" 
$ contractMonth : chr "201108" 
$ industry  : chr "Technology" 
$ category  : chr "Computers" 
$ subcategory : chr "Computers" 
$ timeZoneId : chr "EST" 
$ tradingHours : chr "20110817:0930-1600;20110818:0930-1600" 
$ liquidHours : chr "20110817:0930-1600;20110818:0930-1600" 

आप या तो as.twsContract का उपयोग कर अनुबंध निकाल सकते हैं:

as.twsContract(reqContractDetails(ibg, twsOPT("AAPL 110820C00390000"))) 

या बस के रूप में है reqMktData अनुरोध फोन:

reqMktData(ibg, twsOPT("AAPL 110820C00390000")) 

## OR 

reqMktData(ibg, twsOPT("",symbol="AAPL",right="C", strike="390", expiry="201108")) 
+0

मैं देखता हूं। प्रत्येक टिकर के लिए 6 स्थान। आपका बहुत बहुत धन्यवाद! – Pauly

5

आप का उपयोग करके समस्याओं के इन प्रकार से बच सकते हैं twsInstrument पैकेज on R-Forge

library(twsInstrument) 

इनमें से किसी twsContract

getContract("AAPL 111217P00390000") 
getContract("AAPL  111217P00390000") #number of spaces does not matter 
getContract("AAPL20111217P00390000") #year can be 4 digits or 2 
getContract("AAPL_111217P00390000") 
getContract("AAPL111217P00390000") 
getContract("AAPL111217P390") 
getContract("AAPL_111217P390") 
getContract("AAPL_20111217P390") 
getContract("AAPL_111217P390.00") 

#by conId 
getContract("93189601") 
getContract(93189601) 

मिल जाएगा उन सब के सब आप एक ही बात दे देंगे:

> getContract(93189601) 
List of 16 
$ conId   : chr "93189601" 
$ symbol   : chr "AAPL" 
$ sectype  : chr "OPT" 
$ exch   : chr "SMART" 
$ primary  : chr "" 
$ expiry   : chr "20111216" 
$ strike   : chr "390" 
$ currency  : chr "USD" 
$ right   : chr "P" 
$ local   : chr "AAPL 111217P00390000" 
$ multiplier  : chr "100" 
$ combo_legs_desc: chr "" 
$ comboleg  : chr "" 
$ include_expired: chr "" 
$ secIdType  : chr "" 
$ secId   : chr "" 

दुर्भाग्य से, आप अनुबंध विवरण विकल्पों कि पहले से ही समाप्त हो गए हैं के लिए नहीं मिल सकता है। अगर यह IBrokers के साथ एक समस्या है, या अगर इंटरएक्टिव दलाल इसका समर्थन नहीं करता है, लेकिन पहले ही समाप्त हो वायदा अनुबंध के लिए विवरण प्राप्त करने में कोई समस्या नहीं

> getContract("ESM1") 
Connected with clientId 100. 
Trying to resolve error in contract details. Using include_expired=1 
Contract details request complete. Disconnected. 
List of 16 
$ conId   : chr "73462897" 
$ symbol   : chr "ES" 
$ sectype  : chr "FUT" 
$ exch   : chr "GLOBEX" 
$ primary  : chr "" 
$ expiry   : chr "20110617" 
$ strike   : chr "0" 
$ currency  : chr "USD" 
$ right   : chr "" 
$ local   : chr "ESM1" 
$ multiplier  : chr "50" 
$ combo_legs_desc: chr "" 
$ comboleg  : chr "" 
$ include_expired: chr "1" 
$ secIdType  : chr "" 
$ secId   : chr "" 
+1

एसओ, गेटेट में आपका स्वागत है! –