決済APIを実装
FX取引の決済APIを実装。(通常決済・成り行き決済をサポート/OCO決済は未サポート)
使い方
require 'gmoclient' c = GMO::Client.new c.fx_session( <ユーザーID>, <パスワード> ) { | fx_session | # 通貨ペア一覧取得 # 引数で取得する通貨ペアコードを配列で指定 # 指定しない場合すべての通貨ペアの情報を取得。 puts "\n--- list_currency_pairs" list = fx_session.list_currency_pairs [GMO::USDJPY, GMO::EURJPY] list.each{ |currency_pair_code, value| puts value } # レート一覧取得 puts "\n--- list_rates" list = fx_session.list_rates list.each{ |currency_pair_code, value| puts value } # 成り行き注文 puts "\n--- order - buy" puts fx_session.order( GMO::USDJPY, GMO::BUY, 2 ) puts "\n--- order - sell" result = fx_session.order( GMO::USDJPY, GMO::SELL, 1, { :slippage=>99, :slippage_base_rate=>list[GMO::USDJPY].bid_rate }) puts result # 成り行き決済注文 puts "\n--- settle" puts fx_session.settle( result.order_no, 1 ) puts fx_session.settle( result.order_no, 2, { :slippage=>99, :slippage_base_rate=>list[GMO::USDJPY].bid_rate }) # 通常注文 puts "\n--- order - basic sell" result = fx_session.order( GMO::USDJPY, GMO::SELL, 1, { :rate=>145.19, :execution_expression=>GMO::EXECUTION_EXPRESSION_LIMIT_ORDER, :expiration_type=>GMO::EXPIRATION_TYPE_SPECIFIED, :expiration_date=>DateTime.new( 2007, 11, 5, 0 ) }) puts result # 注文変更 puts "\n--- edit_order" fx_session.edit_order( result.order_no, { :rate=>145.19, :expiration_type=>GMO::EXPIRATION_TYPE_TODAY }) # 注文取消し puts "\n--- cancel_order" fx_session.cancel_order( result.order_no ) # 通常決済注文 puts "\n--- settle - basic" result = fx_session.order( GMO::USDJPY, GMO::SELL, 2, { :rate=>145.19, :execution_expression=>GMO::EXECUTION_EXPRESSION_LIMIT_ORDER, :expiration_type=>GMO::EXPIRATION_TYPE_TODAY }) puts fx_session.settle( result.order_no, 2, { :rate=>146.20, :execution_expression=>GMO::EXECUTION_EXPRESSION_LIMIT_ORDER, :expiration_type=>GMO::EXPIRATION_TYPE_SPECIFIED, :expiration_date=>DateTime.new( 2007, 11, 5, 0 ) }) # 注文一覧取得 # 引数で、注文状態コード(必須)、通貨ペアコード、注文日期間開始日、注文日期間終了日を指定可能。 puts "\n--- list_orders" list = fx_session.list_orders GMO::ORDER_CONDITION_ALL, GMO::EURJPY, Date.new( 2007, 10, 1 ), Date.new( 2007, 11, 1 ) list.each{ |item| puts item } # 建玉一覧取得 # 引数で、通貨ペアコードを指定可能。(省略可) puts "\n--- list_open_interests" list = fx_session.list_open_interests( GMO::EURJPY ) list.each{ |item| puts item } # 約定一覧取得 # 引数で、取得期間(開始日,終了日)(必須)、通貨ペアコード、取引タイプ(新規Or決済)を指定可能。 puts "\n--- list_execution_results" list = fx_session.list_execution_results( Date.new( 2007, 10, 1 ), Date.new( 2007, 11, 1 ) ) list.each{ |item| puts item } list = fx_session.list_execution_results( Date.new( 2007, 10, 1 ), Date.new( 2007, 11, 1 ), GMO::TRADE_TYPE_NEW, GMO::EURJPY ) list.each{ |item| puts item } # 余力情報の取得 puts "\n--- get_margin" puts fx_session.get_margin # お知らせ一覧取得 puts "\n--- list_messages" list = fx_session.list_messages list.each{ |item| puts item.to_s } }
実行結果です
--- list_currency_pairs @max_trade_quantity=3000000, @maxTorihikiSuryo=3000000, @name=USDJPY, @tsukaPairCode=1, @trade_unit=10000, @torihikiTani=10000, @currency_pair_code=1, @tsukaPairName=USDJPY, @min_trade_quantity=10000, @minTorihikiSuryo=10000 --- list_rates @bid=88.38, @buy_swap=175, @hasseibi=2007-06-12T00:00:00Z, @ask_rate=88.45, @bidHigh=88.47, @days_of_grant=1, @tsukaPair=, @bid_low=88.22, @kaiSwap=175, @bid_rate=88.38, @zenjitsuhi=6, @date=2007-06-12T00:00:00Z, @bid_high=88.47, @currency_pair_code=5, @uriSwap=-178, @ask=88.45, @sell_swap=-178, @fuyoNissu=1, @day_before_to=6.0, @bidLow=88.22 @bid=0.8179, @buy_swap=20, @hasseibi=2007-06-12T00:00:00Z, @ask_rate=0.8198, @bidHigh=0.8196, @days_of_grant=1, @tsukaPair=, @bid_low=0.8175, @kaiSwap=20, @bid_rate=0.8179, @zenjitsuhi=2, @date=2007-06-12T00:00:00Z, @bid_high=0.8196, @currency_pair_code=11, @uriSwap=-23, @ask=0.8198, @sell_swap=-23, @fuyoNissu=1, @day_before_to=2.0, @bidLow=0.8175 @bid=111.92, @buy_swap=108, @hasseibi=2007-06-12T00:00:00Z, @ask_rate=111.98, @bidHigh=112.0, @days_of_grant=1, @tsukaPair=, @bid_low=111.68, @kaiSwap=108, @bid_rate=111.92, @zenjitsuhi=7, @date=2007-06-12T00:00:00Z, @bid_high=112.0, @currency_pair_code=6, @uriSwap=-111, @ask=111.98, @sell_swap=-111, @fuyoNissu=1, @day_before_to=7.0, @bidLow=111.68 @bid=1.6538, @buy_swap=71, @hasseibi=2007-06-12T00:00:00Z, @ask_rate=1.6544, @bidHigh=1.6546, @days_of_grant=1, @tsukaPair=, @bid_low=1.6526, @kaiSwap=71, @bid_rate=1.6538, @zenjitsuhi=4, @date=2007-06-12T00:00:00Z, @bid_high=1.6546, @currency_pair_code=12, @uriSwap=-74, @ask=1.6544, @sell_swap=-74, @fuyoNissu=1, @day_before_to=4.0, @bidLow=1.6526 @bid=121.64, @buy_swap=159, @hasseibi=2007-06-12T00:00:00Z, @ask_rate=121.79, @bidHigh=121.66, @days_of_grant=1, @tsukaPair=, @bid_low=121.4, @kaiSwap=159, @bid_rate=121.64, @zenjitsuhi=18, @date=2007-06-12T00:00:00Z, @bid_high=121.66, @currency_pair_code=1, @uriSwap=-161, @ask=121.79, @sell_swap=-161, @fuyoNissu=1, @day_before_to=18.0, @bidLow=121.4 @bid=98.99, @buy_swap=42, @hasseibi=2007-06-12T00:00:00Z, @ask_rate=99.04, @bidHigh=99.02, @days_of_grant=1, @tsukaPair=, @bid_low=98.63, @kaiSwap=42, @bid_rate=98.99, @zenjitsuhi=18, @date=2007-06-12T00:00:00Z, @bid_high=99.02, @currency_pair_code=7, @uriSwap=-46, @ask=99.04, @sell_swap=-46, @fuyoNissu=1, @day_before_to=18.0, @bidLow=98.63 @bid=2.4267, @buy_swap=200, @hasseibi=2007-06-12T00:00:00Z, @ask_rate=2.4275, @bidHigh=2.4298, @days_of_grant=1, @tsukaPair=, @bid_low=2.4256, @kaiSwap=200, @bid_rate=2.4267, @zenjitsuhi=-11, @date=2007-06-12T00:00:00Z, @bid_high=2.4298, @currency_pair_code=13, @uriSwap=-205, @ask=2.4275, @sell_swap=-205, @fuyoNissu=1, @day_before_to=-11.0, @bidLow=2.4256 @bid=163.78, @buy_swap=143, @hasseibi=2007-06-12T00:00:00Z, @ask_rate=163.83, @bidHigh=163.8, @days_of_grant=1, @tsukaPair=, @bid_low=163.39, @kaiSwap=143, @bid_rate=163.78, @zenjitsuhi=33, @date=2007-06-12T00:00:00Z, @bid_high=163.8, @currency_pair_code=2, @uriSwap=-147, @ask=163.83, @sell_swap=-147, @fuyoNissu=1, @day_before_to=33.0, @bidLow=163.39 @bid=17.18, @buy_swap=370, @hasseibi=2007-06-12T00:00:00Z, @ask_rate=17.25, @bidHigh=17.19, @days_of_grant=1, @tsukaPair=, @bid_low=17.12, @kaiSwap=370, @bid_rate=17.18, @zenjitsuhi=6, @date=2007-06-12T00:00:00Z, @bid_high=17.19, @currency_pair_code=8, @uriSwap=-390, @ask=17.25, @sell_swap=-390, @fuyoNissu=1, @day_before_to=6.0, @bidLow=17.12 @bid=1.2273, @buy_swap=100, @hasseibi=2007-06-12T00:00:00Z, @ask_rate=1.23, @bidHigh=1.2285, @days_of_grant=1, @tsukaPair=, @bid_low=1.2264, @kaiSwap=100, @bid_rate=1.2273, @zenjitsuhi=-3, @date=2007-06-12T00:00:00Z, @bid_high=1.2285, @currency_pair_code=14, @uriSwap=-104, @ask=1.23, @sell_swap=-104, @fuyoNissu=1, @day_before_to=-3.0, @bidLow=1.2264 @bid=240.29, @buy_swap=301, @hasseibi=2007-06-12T00:00:00Z, @ask_rate=240.37, @bidHigh=240.33, @days_of_grant=1, @tsukaPair=, @bid_low=239.86, @kaiSwap=301, @bid_rate=240.29, @zenjitsuhi=30, @date=2007-06-12T00:00:00Z, @bid_high=240.33, @currency_pair_code=3, @uriSwap=-306, @ask=240.37, @sell_swap=-306, @fuyoNissu=1, @day_before_to=30.0, @bidLow=239.86 @bid=1.345, @buy_swap=-68, @hasseibi=2007-06-12T00:00:00Z, @ask_rate=1.3463, @bidHigh=1.3454, @days_of_grant=1, @tsukaPair=, @bid_low=1.344, @kaiSwap=-68, @bid_rate=1.345, @zenjitsuhi=6, @date=2007-06-12T00:00:00Z, @bid_high=1.3454, @currency_pair_code=9, @uriSwap=64, @ask=1.3463, @sell_swap=64, @fuyoNissu=1, @day_before_to=6.0, @bidLow=1.344 @bid=99.74, @buy_swap=148, @hasseibi=2007-06-12T00:00:00Z, @ask_rate=99.8, @bidHigh=99.88, @days_of_grant=1, @tsukaPair=, @bid_low=99.49, @kaiSwap=148, @bid_rate=99.74, @zenjitsuhi=18, @date=2007-06-12T00:00:00Z, @bid_high=99.88, @currency_pair_code=4, @uriSwap=-152, @ask=99.8, @sell_swap=-152, @fuyoNissu=1, @day_before_to=18.0, @bidLow=99.49 @bid=1.9723, @buy_swap=-2, @hasseibi=2007-06-12T00:00:00Z, @ask_rate=1.9747, @bidHigh=1.9733, @days_of_grant=1, @tsukaPair=, @bid_low=1.9719, @kaiSwap=-2, @bid_rate=1.9723, @zenjitsuhi=-5, @date=2007-06-12T00:00:00Z, @bid_high=1.9733, @currency_pair_code=10, @uriSwap=-3, @ask=1.9747, @sell_swap=-3, @fuyoNissu=1, @day_before_to=-5.0, @bidLow=1.9719 --- order - buy @limit_order_no=, @tategyokuBango=10000000001, @open_interest_no=10000000001, @chumonBango=10000000001, @settlement_order_no=, @stop_order_no=, @order_no=10000000001 --- order - sell @limit_order_no=, @tategyokuBango=10000000001, @open_interest_no=10000000001, @chumonBango=10000000001, @settlement_order_no=, @stop_order_no=, @order_no=10000000001 --- settle @kessaiTategyokuBango=1, @open_interest_no=1, @stop_settlement_order_no=, @chumonBango=10000000001, @settlement_order_no=10000000001, @limit_settlement_order_no= @kessaiTategyokuBango=1, @open_interest_no=1, @stop_settlement_order_no=, @chumonBango=10000000001, @settlement_order_no=10000000001, @limit_settlement_order_no= --- order - basic sell @limit_order_no=, @open_interest_no=, @chumonBango=10000000001, @settlement_order_no=, @stop_order_no=, @order_no=10000000001 --- edit_order --- cancel_order --- settle - basic @kessaiTategyokuBango=1, @open_interest_no=1, @stop_settlement_order_no=, @chumonBango=10000000001, @settlement_order_no=10000000001, @limit_settlement_order_no= --- list_orders @sell_or_buy=0, @fuseiritsuRiyu=0, @failure_reason=0, @hatchuNichiji=2007-05-29T13:17:00Z, @execution_expression=1, @baibai=0, @trade_type=0, @chumonJotai=20, @order_state=20, @shikko=1, @rate=121.0, @yakujoNichiji=, @torihiki=0, @agreement_date=, @date=2007-05-29T13:17:00Z, @enable_change_or_cancel=true, @yukoNichiji=, @chumonBango=10000000001, @expiration_date=, @chumonRate=121.0, @trade_quantity=10000.0, @yakujoRate=, @henkoTorikeshiKano=1, @agreement_rate=, @order_no=10000000001, @yukoKigen=0, @expiration_type=0, @hatchuSuryo=10000 @sell_or_buy=1, @fuseiritsuRiyu=0, @failure_reason=0, @hatchuNichiji=2007-05-29T13:17:00Z, @execution_expression=1, @baibai=1, @trade_type=1, @chumonJotai=10, @order_state=10, @shikko=1, @rate=122.0, @yakujoNichiji=, @torihiki=1, @agreement_date=, @date=2007-05-29T13:17:00Z, @enable_change_or_cancel=true, @yukoNichiji=, @chumonBango=10000000002, @expiration_date=, @chumonRate=122, @trade_quantity=10000.0, @yakujoRate=, @henkoTorikeshiKano=1, @agreement_rate=, @order_no=10000000002, @yukoKigen=0, @expiration_type=0, @hatchuSuryo=10000 @sell_or_buy=1, @fuseiritsuRiyu=0, @failure_reason=0, @hatchuNichiji=2007-05-29T13:17:00Z, @execution_expression=1, @baibai=1, @trade_type=1, @chumonJotai=10, @order_state=10, @shikko=1, @rate=120.0, @yakujoNichiji=, @torihiki=1, @agreement_date=, @date=2007-05-29T13:17:00Z, @enable_change_or_cancel=true, @yukoNichiji=, @chumonBango=10000000003, @expiration_date=, @chumonRate=120, @trade_quantity=10000.0, @yakujoRate=, @henkoTorikeshiKano=1, @agreement_rate=, @order_no=10000000003, @yukoKigen=0, @expiration_type=0, @hatchuSuryo=10000 --- list_open_interests @hyokaRate=121.09, @baibai=0, @chumonKano=1, @tategyokuBango=10000000001, @tsukaPair=, @tategyokuRate=121.15, @yakujoNichiji=2007-05-29T13:17:00Z, @hyokaSoneki=-600, @currency_pair_code=1, @chumonSuryo=0, @ruikeiSwap=1404, @suryo=10000 --- list_execution_results @yakujoSuryo=100000, @kessaiSoneki=-14000, @baibai=1, @tsukaPair=, @kessaiTaisho=10000000001, @tategyokuRate=121.7, @tesuryo=0, @yakujoNichiji=2007-05-29T13:17:00Z, @torihiki=1, @chumonBango=10000000003, @currency_pair_code=1, @ukewatashibi=2007-05-31T00:00:00Z, @yakujoRate=121.56, @ruikeiSwap=0 @yakujoSuryo=100000, @kessaiSoneki=-14000, @baibai=1, @tsukaPair=, @kessaiTaisho=10000000001, @tategyokuRate=121.7, @tesuryo=0, @yakujoNichiji=2007-05-29T13:17:00Z, @torihiki=1, @chumonBango=10000000003, @currency_pair_code=1, @ukewatashibi=2007-05-31T00:00:00Z, @yakujoRate=121.56, @ruikeiSwap=0 --- get_margin @balance_in_account=9235360, @genkinZandaka=9251160, @required_guarantee_money=1211600, @guarantee_money_status=1, @hitsuyoShokokin=1211600, @shokokinIjiritsu=738.3, @settlement_profit_or_loss_of_next_business_day=0, @kessaiSonekiT1=0, @appraisal_profit_or_loss_of_open_interest=-290000, @kozaZandaka=9235360, @freezed_guarantee_money=1211600, @transferable_money_amount=7733760, @kosokuShokokin=1211600, @shokokinStatus=1, @settlement_profit_or_loss_of_today=0, @kessaiSonekiT=0, @guarantee_money_list=@torihikiShokokin=12116, @guarantee_money=12116, @tsukaPairCode=1, @currency_pair_code=1@torihikiShokokin=16261, @guarantee_money=16261, @tsukaPairCode=2, @currency_pair_code=2@torihikiShokokin=24063, @guarantee_money=24063, @tsukaPairCode=3, @currency_pair_code=3@torihikiShokokin=9929, @guarantee_money=9929, @tsukaPairCode=4, @currency_pair_code=4@torihikiShokokin=8794, @guarantee_money=8794, @tsukaPairCode=5, @currency_pair_code=5@torihikiShokokin=11175, @guarantee_money=11175, @tsukaPairCode=6, @currency_pair_code=6@torihikiShokokin=9865, @guarantee_money=9865, @tsukaPairCode=7, @currency_pair_code=7@torihikiShokokin=16930, @guarantee_money=16930, @tsukaPairCode=8, @currency_pair_code=8@torihikiShokokin=16259, @guarantee_money=16259, @tsukaPairCode=9, @currency_pair_code=9@torihikiShokokin=24062, @guarantee_money=24062, @tsukaPairCode=10, @currency_pair_code=10@torihikiShokokin=9918, @guarantee_money=9918, @tsukaPairCode=11, @currency_pair_code=11@torihikiShokokin=16259, @guarantee_money=16259, @tsukaPairCode=12, @currency_pair_code=12@torihikiShokokin=24058, @guarantee_money=24058, @tsukaPairCode=13, @currency_pair_code=13@torihikiShokokin=12110, @guarantee_money=12110, @tsukaPairCode=14, @currency_pair_code=14, @market_value=8945360, @torihikiShokokinList= , @tategyokuHyokaSoneki=-290000, @swap_profit_or_loss=-15800, @margin=7733760, @swapSoneki=-15800, @furikaeKano=7733760, @balance_of_cach=9251160, @shimegoFurikae=0, @ordered_guarantee_money=0, @guarantee_money_maintenance_ratio=738.3, @chumonShokokin=0, @jikaHyokaSogaku=8945360, @settlement_profit_or_loss_of_next_next_business_day=0, @kessaiSonekiT2=0, @yoryoku=7733760 --- list_messages @riyo=0, @text=お知らせ内容の本文です。, @taishosha=1, @title=2007年05月18日(金)お知らせ内容のタイトル