注文一覧取得のサンプル
ClickClientを使って注文一覧を取得するサンプルです。
- 一覧には、現在有効な注文以外に、キャンセルしたものや失効したものも含まれます。
- 絞込み条件として以下が指定可能です。
- 「注文の状態」.. 注文中、キャンセル、失効など、注文の状態。ClickClient::FX::ORDER_CONDITION_ALLですべての状態が対象となります。
- 「通貨ペア」
- 「注文日」
require 'rubygems' require 'clickclient' USER = "<ユーザー名>" PASS = "<パスワード>" # 注文状態コードを文字列に変換する def convert_order_state( state ) case state when ClickClient::FX::ORDER_STATE_WAITING : "待機中" when ClickClient::FX::ORDER_STATE_RECEIVED: "受付済み" when ClickClient::FX::ORDER_STATE_CANCELING: "取り消し中" when ClickClient::FX::ORDER_STATE_AGREED_NEW: "約定(新規)" when ClickClient::FX::ORDER_STATE_AGREED_SETTLEMENT: "約定(決済)" when ClickClient::FX::ORDER_STATE_EXPIRED: "失効[期限切]" when ClickClient::FX::ORDER_STATE_CANCELED: "取消済" end end 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 # いろいろ注文。 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 }) reverse = fx_session.order( ClickClient::FX::EURJPY, ClickClient::FX::BUY, 1, { :rate=>rate.ask_rate + 0.5, :execution_expression=>ClickClient::FX::EXECUTION_EXPRESSION_REVERSE_LIMIT_ORDER, :expiration_type=>ClickClient::FX::EXPIRATION_TYPE_TODAY }) oco = fx_session.order( ClickClient::FX::EURJPY, ClickClient::FX::BUY, 1, { :rate=>rate.ask_rate - 0.5, :stop_order_rate=>rate.ask_rate + 0.5, :expiration_type=>ClickClient::FX::EXPIRATION_TYPE_TODAY }) #注文一覧を取得 puts "-- 注文一覧 " orders = fx_session.list_orders( ClickClient::FX::ORDER_CONDITION_ALL, # すべての状態を対象 nil, # すべての通貨ペアを対象 Date.new(2009, 1, 31) , Date.new(2009, 1, 31) # 2009/1/31に行った注文のみ ) orders.each_pair { |k, o| # 注文番号をキーとするハッシュが返される puts <<-ORDER 注文番号 : #{k} 売り買い : #{o.sell_or_buy == ClickClient::FX::BUY ? "買" : "売" } 注文日時 : #{o.date} 状態 : #{convert_order_state(o.order_state) } ORDER } #キャンセル fx_session.cancel_order( order.order_no ) fx_session.cancel_order( reverse.order_no ) fx_session.cancel_order( oco.stop_order_no ) }
実行結果です。
-- 注文一覧 注文番号 : 10006464938 売り買い : 買 注文日時 : 2009-01-31T18:12:13+00:00 状態 : 受付済み 注文番号 : 10006464939 売り買い : 買 注文日時 : 2009-01-31T18:12:13+00:00 状態 : 受付済み 注文番号 : 10006464936 売り買い : 買 注文日時 : 2009-01-31T18:09:33+00:00 状態 : 取消済 注文番号 : 10006464930 売り買い : 買 注文日時 : 2009-01-31T18:09:04+00:00 状態 : 取消済 注文番号 : 10006464937 売り買い : 買 注文日時 : 2009-01-31T18:12:13+00:00 状態 : 受付済み 注文番号 : 10006464931 売り買い : 買 注文日時 : 2009-01-31T18:09:04+00:00 状態 : 取消済 注文番号 : 10006464929 売り買い : 買 注文日時 : 2009-01-31T18:09:04+00:00 状態 : 取消済 注文番号 : 10006464940 売り買い : 買 注文日時 : 2009-01-31T18:12:13+00:00 状態 : 受付済み 注文番号 : 10006464934 売り買い : 買 注文日時 : 2009-01-31T18:09:33+00:00 状態 : 取消済 注文番号 : 10006464935 売り買い : 買 注文日時 : 2009-01-31T18:09:33+00:00 状態 : 取消済 注文番号 : 10006464932 売り買い : 買 注文日時 : 2009-01-31T18:09:04+00:00 状態 : 取消済 注文番号 : 10006464933 売り買い : 買 注文日時 : 2009-01-31T18:09:32+00:00 状態 : 取消済