IFD-OCO注文を行うサンプル
ClickClientを使ってIFD-OCO注文を行うサンプルです。
- IFD-OCO注文は、
- IFD方式のように、通常の注文と注文確定時に有効化される決済注文を同時に行い、
- さらに、決済注文として2つの執行条件を指定することができます(OCOのように)。
- 使い方は、例によってFx Begginers - 3つの注文と二つの決済注文のサイトを参照。
- ClickClientでは、決済注文の情報(:settle)に逆指値レート(::stop_order_rate)を指定するとIFD-OCO注文となります。
以下のサンプルでは、
- 「現在のレート-0.5」になったらユーロ買い
- その後、レートが上昇し、「現在のレート+0.5」になったら約定する
- またはさらに下落し、「現在のレート-0.8」になった場合も約定(ロスカット)する
条件で注文を行っています。
require 'rubygems' require 'clickclient' USER = "<ユーザー名>" PASS = "<パスワード>" c = ClickClient::Client.new # 接続先ホストをデモ取引用ホストに切り替える。 c.host_name = "https://fx-demo.click-sec.com" c.fx_session( USER, PASS ) { | fx_session | # 現在のレートを取得 rate = fx_session.list_rates[ClickClient::FX::EURJPY] base_rate = rate.ask_rate # IFD-OCOで注文。 # 第4引数で決済注文の情報+逆指値レートを指定するとIFD-OCO注文となる。 order = fx_session.order( ClickClient::FX::EURJPY, ClickClient::FX::BUY, 1, { :rate=>rate.ask_rate - 0.5, :execution_expression=>ClickClient::FX::EXECUTION_EXPRESSION_LIMIT_ORDER, :expiration_type=>ClickClient::FX::EXPIRATION_TYPE_TODAY, :settle => { # 決済注文の指定 :unit=>1, :sell_or_buy=>ClickClient::FX::SELL, :rate=>rate.ask_rate + 0.5, # 決済レート :stop_order_rate=>rate.ask_rate - 0.8, #逆指値決済レート :expiration_type=>ClickClient::FX::EXPIRATION_TYPE_TODAY } }) puts "\n---IFD-OCO注文" puts "指値注文番号 : #{order.order_no}" puts "決済注文番号 : #{order.kessaiSashineChumonBango}" # 微妙に翻訳してねぇ! orz. puts "決済逆指値注文番号 : #{order.kessaiGyakusashiChumonBango}" #キャンセル fx_session.cancel_order( order.order_no ) }
実行結果です。
---IFD-OCO注文 指値注文番号 : 10005492358 決済注文番号 : 10005492359 決済逆指値注文番号 : 10005492360
ということで、注文関連のAPIのサンプルは一通り完了と。