我在努力處理ScannerSubscription
的結果。
例如,如果我要求:使用IbPy檢索ScannerSubscription結果
qqq_id = 0
subscript = ScannerSubscription()
subscript.numberOfRows(15)
subscript.m_scanCode = 'HIGH_OPEN_GAP'
subscript.m_instrument = 'STK'
subscript.m_averageOptionVolumeAbove = ''
subscript.m_couponRateAbove = ''
subscript.m_couponRateBelow = ''
subscript.m_abovePrice = '5'
subscript.m_belowPrice = ''
subscript.m_marketCapAbove = ''
subscript.m_marketCapBelow = ''
subscript.m_aboveVolume = '100000'
subscript.m_stockTypeFilter = 'ALL'
subscript.locationCode('STK.US.MAJOR')
tws_conn.reqScannerSubscription(qqq_id, subscript)
tws_conn.reqScannerParameters()
我收到這樣的scannerData
響應:
<scannerData reqId=0, rank=0, contractDetails=<ib.ext.ContractDetails.ContractDetails object at 0x00000000036EFA58>, distance=None, benchmark=None, projection=None, legsStr=None>
等等
但我不能檢索的結果值,例如:
reqScannerParameters()
xml結果指定<colId>390</colId>
作爲的colIdvalue:
<ScanType>
<displayName>Top Close-to-Open % Gainers</displayName>
<scanCode>HIGH_OPEN_GAP</scanCode>
<instruments>STK,STOCK.NA,STOCK.EU,STOCK.HK,FUT.US,FUT.HK,FUT.EU,FUT.NA</instruments>
<absoluteColumns>false</absoluteColumns>
<Columns varName="columns">
<Column>
<colId>390</colId>
<name>Gap</name>
<display>true</display>
<section>m</section>
<displayType>DATA</displayType>
</Column>
如何檢索GAP值?
這甚至可能嗎?
只是一個猜測,但是當您在scannerData回調中獲得合約後,使用它來請求reqMktData的快照。然後你可以計算開放差距。 – brian
@brian這是我的第一個方法,但我試圖避免任何額外的請求和計算,它沒有任何意義,ib api應該返回值。不管怎樣,謝謝你。 –
我剛剛在雅虎交易平臺API小組閱讀了一些評論,其他人提到你通常必須要求數據,因爲你只是在scannerData中獲得最低限度的回報。 – brian