2017-12-27 3 views
0

を通じてインタラクティブ・ブローカーにLOOまたはMOO注文を提出、私は市場(MKT)を提出することができたと指値注文(LMT)以下の標準コードでibpy

from ib.opt import Connection, message 
from ib.ext.Contract import Contract 
from ib.ext.Order import Order 


def make_contract(symbol, sec_type, exch, prim_exch, curr): 
    Contract.m_symbol = symbol 
    Contract.m_secType = sec_type 
    Contract.m_exchange = exch 
    Contract.m_primaryExch = prim_exch 
    Contract.m_currency = curr 
    return Contract 


def make_order(action, quantity, price=None): 
    if price is not None: 
     order = Order() 
     order.m_orderType = 'LMT' 
     order.m_totalQuantity = quantity 
     order.m_action = action 
     order.m_lmtPrice = price 
    else: 
     order = Order() 
     order.m_orderType = 'MKT' 
     order.m_totalQuantity = quantity 
     order.m_action = action 

    return order 


def main(): 
    conn = Connection.create(port=7496, clientId=999) 
    conn.connect() 

    oid = 100001 
    cont = make_contract('TSLA', 'STK', 'SMART', 'SMART', 'USD') 
    offer = make_order('BUY', 100, 315) 

    conn.placeOrder(oid, cont, offer) 
    conn.disconnect() 


main() 

誰もが持っていませんLOOまたはMOOの注文を送信した経験はありますか?変更時:

order.m_orderType = 'LOO' 

例外はありませんが、IB TWS(デモ)では保留中の注文は表示されません。

答えて

1

ドキュメントによれば、通常どおりLMTまたはMKTタイプを作成しますが、tifをOPGに変更します(これは私が推測すると同じです)。

order.tif = "OPG" 
order.orderType = "LMT" 

http://interactivebrokers.github.io/tws-api/basic_orders.html#limitonopen

ノート、フィールド名は、あなたが見てみたいことがありIBの新しいPythonのAPIを使用しています。

関連する問題