読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

IFD-OCO注文を行うサンプル

Ruby SBI証券スクレイピング

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 : 発注中