IFD-OCO注文を行うサンプル
IFD-OCO注文の動作確認も完了。
→GitHub - unageanu/sbiclient
- IFD-OCO注文は、指値or逆指値での注文と、それの決済注文x2を同時に行う発注方法です。
- 決済注文は、以下の2つを同時に指定できます。
- APIとしては、通常の注文に加えて、決済注文レートと決済注文逆指値レートを指定することでIFD-OCO注文になります。
require 'sbiclient' require 'common' # ログイン c = SBIClient::Client.new c.fx_session( USER, PASS, ORDER_PASS ) {|session| # レートを取得 rates = session.list_rates ## IFD-OCO注文 # :settleで決済注文レートと決済注文逆指値レートを指定するとIFD-OCO注文になる # 指値 begin order_id = session.order( SBIClient::FX::EURJPY, SBIClient::FX::BUY, 1, { :rate=>rates[SBIClient::FX::EURJPY].ask_rate - 0.5, :settle=> { :rate=>rates[SBIClient::FX::EURJPY].ask_rate + 0.5, :stop_order_rate=>rates[SBIClient::FX::EURJPY].ask_rate - 1 }, :execution_expression=>SBIClient::FX::EXECUTION_EXPRESSION_LIMIT_ORDER, :expiration_type=>SBIClient::FX::EXPIRATION_TYPE_TODAY }) print_order( session ) ensure session.cancel_order(order_id.order_no) if order_id end }
実行結果です。
--- order_no : 16969279 trade_type : TRADE_TYPE_NEW order_type : IFD_OCO execution_expression : LIMIT_ORDER sell_or_buy : BUY pair : EURJPY count : 1 rate : 133.29 order_state : 発注中