トレイダーズ証券くりっく365WebAPI④

23. 3月 2011 08:23

これまでトレイダーズ証券のくりっく365のAPIいじりながらいろいろ試してきたけど、

結論として、下記の問題があるため、完全自動売買のシステムには使えないようです。 

決済注文について問い合わせを行ったところ、新規で逆のポジションを建て、建玉整理機能で両建てのポジションを解消してください。という回答をいただきました。

もちろん、 両建てになったポジションを建玉整理機能で解消する場合は、手数料はかかりませんが新規の注文を行うための証拠金がないと発注できません。

建玉整理機能を実行するAPIが提供されていないため、手動でWebの取引ページにログインし、建玉整理を行う必要があります。

つまりAPIのみを使って取引を行っていくと、両建てのポジションが増え続け、すぐに証拠金不足になってしまうため、自動売買としては致命的です。 

APIのみで自動売買システムを作ろうとした場合、一日に数回程度の売買で、毎日、手動で建玉整理を実行する必要がある、半自動のシステムしか作れないようです。

せめて建玉ポジションを指定して決済注文の機能と、4本値取得の機能くらいは追加して欲しいですね。

 

.NETからトレイダーズ証券くりっく365のWebApiを簡単に利用できるライブラリを作りましたので一応公開しておきます。

トレイダーズ証券くりっく365WebAPIライブラリのインターフェイスの呼び出しをテストするアプリ画面です。

Traders365Apiライブラリ のソースのダウンロード

traders365api_ver1.0.zip (690.61 kb)

 

※ご利用に当たってトレイダーズ証券くりっく365の口座アカウントが必要になります。 また注文の約定時には手数料が発生しますので十分に注意した上でお使いください。

※このソフトウェアを使用したことによって生じたすべての障害・損害・不具合等に関しては、私と私の関係者および私の所属するいかなる団体・組織とも、一切の責任を負いません。各自の責任においてご使用ください。

トレイダーズ証券くりっく365WebAPI③

14. 3月 2011 18:33

前回に続いて注文、注文取消、建玉照会、口座照会です。

注文処理

USDJPYを1枚成行買注文する場合

リクエストURL: https://api.click365.tradersfx.jp/order/0/0/1/0/USDJPY/0.0
レスポンスデータ: {"seq": 1}
 seqは注文番号として、未約定注文取消や建玉照会に使用する。

 

USDJPYを1枚成行売注文する場合

リクエストURL: https://api.click365.tradersfx.jp/order/0/0/1/1/USDJPY/0.0
レスポンスデータ: {"seq": 2}

 

建玉照会 

リクエストURL: :https://api.click365.tradersfx.jp/position/1
レスポンスデータ: [{"swp": 0, "price": "82.08", "lot": 1, "exc": 0, "seq": 1}]

swpは獲得スワップポイント
priceは約定価格
lotは約定枚数
excは約定番号seqは注文seq

注文取消

リクエストURL: https://api.click365.tradersfx.jp/orddel/1
レスポンスデータ: {"num": 1}

numは取消枚数
 

口座照会

リクエストURL: https://api.click365.tradersfx.jp/position/account
レスポンスデータ: {"available": "104554", "availableOrder": "104554", "deposit": "103454", "comission": "0", "swap": "0"}

available  有効証拠金
availableOrder  発注可能額
deposit 証拠金預託額
comission 未払手数料(税込)
swap 獲得スワップポイント

 

トレイダーズ証券くりっく365WebAPI②

1. 3月 2011 08:23

前回に続いてログインとレート取得関連とログアウト処理です。

ログイン処理

リクエストURL: https://api.click365.tradersfx.jp/login
POSTパラメータ:

userId=XXXXXXX&passwd=YYYYYY 

※XXXはユーザID、YYYYはパスワード

レスポンスデータ:

{"FQDN": "autoprice.click365.tradersfx.jp", "KEY": "7ce9efa0cf822aae5f59da2f2ec7a251"}

※FQDNはレート取得時のアドレスになる http://autoprice.click365.tradersfx.jp

※KEYは"7ce9efa0cf822aae5f59da2f2ec7a251"はレート取得時のアドレスの一部になる。

※ヘッダーのSet-CookieでセッションID(sessionid )が発行されるので、レート取得以外の処理を行う場合に設定する。

ログイン失敗時

500 その他認識できないエラー

結果はjson形式のパーサーで簡単にデータ化できる。 

 

 レート取得①(単一通貨ペア指定時)

レート取得はhttp://[ログイン時のFQDN]/rate/[ログイン時のKEY]/[通貨ペア+BまたはS]の形式でアクセスするだけ。

結果は[シーケンス番号.{通貨ペア : [始値, 高値, 安値, 終値]という形式で2秒間の4本値らしいです。シーケンス番号は週始めを0とし、連番で割り振られるらしい。

リクエストURL:

http://autoprice.click365.tradersfx.jp/rate/7ce9efa0cf822aae5f59da2f2ec7a251/

USDJPYB

レスポンスデータ: [34478, {"USDJPYB": ["83.120000", "83.120000", "83.120000", "83.120000"]}]

 レート取得①(複数通貨ペア指定時)

リクエストURL:

http://autoprice.click365.tradersfx.jp/rate/7ce9efa0cf822aae5f59da2f2ec7a251

/USDJPYB/USDJPYS/EURJPYB/EURJPYS/GBPJPYB/GBPJPYS/

レスポンスデータ: [34597, {"EURJPYS": ["113.710000", "113.710000", "113.710000", "113.710000"], "GBPJPYS": ["134.910000", "134.910000", "134.910000", "134.910000"], "USDJPYS": ["83.140000", "83.140000", "83.140000", "83.140000"], "EURJPYB": ["113.690000", "113.690000", "113.690000", "113.690000"], "GBPJPYB": ["134.870000", "134.870000", "134.870000", "134.870000"], "USDJPYB": ["83.120000", "83.120000", "83.120000", "83.120000"]}]

 結果がやや特殊なでの、正規表現をつかってパースすると良い。

 

レート取得②(単一通貨ペア)

取得するレートのシーケンス番号が指定できるタイプ

リクエストURL:

http://autoprice.click365.tradersfx.jp/ret_rate/7ce9efa0cf822aae5f59da2f2ec7a251/

68000/USDJPYB

レスポンスデータ: [68000, {"USDJPYB": ["82.740000", "82.740000", "82.740000", "82.740000"]}]

ただし取得できるシーケンス番号の範囲には限りがあるらしい。現在値のシーケンス番号から3500番くらい前までしかとれないようで、

リクエストエラー: 500 その他認識できないエラーになります。

レート取得②(複数通貨ペア) 

リクエストURL:

http://autoprice.click365.tradersfx.jp/ret_rate/7ce9efa0cf822aae5f59da2f2ec7a251/

68000/USDJPYS/EURUSDS/GBPJPYS/

レスポンスデータ: [68000, {"EURUSDS": ["1.365500", "1.365500", "1.365500", "1.365500"], "GBPJPYS": ["133.500000", "133.500000", "133.500000", "133.500000"], "USDJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}]

 

レート取得③(単一通貨ペア)

短期ヒストリが取得できるタイプ 

シーケンス番号の次が"DDhhmm"形式の時間文字列、取得できる範囲は狭いので、レートを蓄積させていくには1分以内で取得し続ける必要ありそう。

リクエストURL:

http://autoprice.click365.tradersfx.jp/hist_rate/7ce9efa0cf822aae5f59da2f2ec7a251/

USDJPYS

レスポンスデータ: [[70403, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70402, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70401, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70400, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70399, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70398, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70397, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70396, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70395, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70394, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70393, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70392, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70391, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70390, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70389, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70388, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70387, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70386, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70385, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70384, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70383, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70382, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70381, "230830", {"USDJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70380, "230830", {"USDJPYS": ["82.720000", "82.730000", "82.720000", "82.730000"]}], [70379, "230830", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70378, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70377, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70376, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70375, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70374, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70373, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70372, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70371, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70370, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70369, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70368, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70367, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70366, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70365, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70364, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70363, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70362, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70361, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70360, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70359, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70358, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70357, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70356, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}], [70355, "230829", {"USDJPYS": ["82.720000", "82.720000", "82.720000", "82.720000"]}]]

レート取得③(複数通貨ペア)

リクエストURL:

http://autoprice.click365.tradersfx.jp/hist_rate/7ce9efa0cf822aae5f59da2f2ec7a251/

USDJPYS.EURJPYS/GBPJPYS/

レスポンスデータ: [[70441, "230832", {"GBPJPYS": ["133.760000", "133.770000", "133.750000", "133.770000"], "USDJPYS.EURJPYS": ["82.760000", "82.760000", "82.760000", "82.760000"]}], [70440, "230832", {"GBPJPYS": ["133.760000", "133.760000", "133.750000", "133.760000"], "USDJPYS.EURJPYS": ["82.750000", "82.760000", "82.750000", "82.760000"]}], [70439, "230832", {"GBPJPYS": ["133.760000", "133.760000", "133.760000", "133.760000"], "USDJPYS.EURJPYS": ["82.760000", "82.760000", "82.750000", "82.750000"]}], [70438, "230832", {"GBPJPYS": ["133.760000", "133.760000", "133.760000", "133.760000"], "USDJPYS.EURJPYS": ["82.760000", "82.760000", "82.760000", "82.760000"]}], [70437, "230832", {"GBPJPYS": ["133.760000", "133.760000", "133.760000", "133.760000"], "USDJPYS.EURJPYS": ["82.760000", "82.760000", "82.760000", "82.760000"]}], [70436, "230831", {"GBPJPYS": ["133.760000", "133.760000", "133.760000", "133.760000"], "USDJPYS.EURJPYS": ["82.760000", "82.760000", "82.760000", "82.760000"]}], [70435, "230831", {"GBPJPYS": ["133.760000", "133.760000", "133.760000", "133.760000"], "USDJPYS.EURJPYS": ["82.760000", "82.760000", "82.760000", "82.760000"]}], [70434, "230831", {"GBPJPYS": ["133.760000", "133.770000", "133.760000", "133.760000"], "USDJPYS.EURJPYS": ["82.760000", "82.760000", "82.760000", "82.760000"]}], [70433, "230831", {"GBPJPYS": ["133.770000", "133.770000", "133.760000", "133.760000"], "USDJPYS.EURJPYS": ["82.760000", "82.760000", "82.760000", "82.760000"]}], [70432, "230831", {"GBPJPYS": ["133.770000", "133.770000", "133.770000", "133.770000"], "USDJPYS.EURJPYS": ["82.760000", "82.760000", "82.760000", "82.760000"]}], [70431, "230831", {"GBPJPYS": ["133.770000", "133.770000", "133.770000", "133.770000"], "USDJPYS.EURJPYS": ["82.760000", "82.760000", "82.760000", "82.760000"]}], [70430, "230831", {"GBPJPYS": ["133.770000", "133.770000", "133.750000", "133.770000"], "USDJPYS.EURJPYS": ["82.760000", "82.760000", "82.760000", "82.760000"]}], [70429, "230831", {"GBPJPYS": ["133.750000", "133.770000", "133.750000", "133.770000"], "USDJPYS.EURJPYS": ["82.750000", "82.760000", "82.750000", "82.760000"]}], [70428, "230831", {"GBPJPYS": ["133.750000", "133.750000", "133.750000", "133.750000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}], [70427, "230831", {"GBPJPYS": ["133.750000", "133.750000", "133.750000", "133.750000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}], [70426, "230831", {"GBPJPYS": ["133.750000", "133.750000", "133.750000", "133.750000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}], [70425, "230831", {"GBPJPYS": ["133.750000", "133.750000", "133.750000", "133.750000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}], [70424, "230831", {"GBPJPYS": ["133.750000", "133.750000", "133.750000", "133.750000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}], [70423, "230831", {"GBPJPYS": ["133.750000", "133.750000", "133.750000", "133.750000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}], [70422, "230831", {"GBPJPYS": ["133.750000", "133.750000", "133.750000", "133.750000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}], [70421, "230831", {"GBPJPYS": ["133.750000", "133.750000", "133.750000", "133.750000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}], [70420, "230831", {"GBPJPYS": ["133.750000", "133.750000", "133.750000", "133.750000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}], [70419, "230831", {"GBPJPYS": ["133.750000", "133.750000", "133.750000", "133.750000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}], [70418, "230831", {"GBPJPYS": ["133.750000", "133.750000", "133.750000", "133.750000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}], [70417, "230831", {"GBPJPYS": ["133.750000", "133.750000", "133.750000", "133.750000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}], [70416, "230831", {"GBPJPYS": ["133.750000", "133.750000", "133.740000", "133.750000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}], [70415, "230831", {"GBPJPYS": ["133.740000", "133.750000", "133.740000", "133.750000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.750000", "82.750000"]}], [70414, "230831", {"GBPJPYS": ["133.740000", "133.740000", "133.740000", "133.740000"], "USDJPYS.EURJPYS": ["82.750000", "82.750000", "82.740000", "82.750000"]}], [70413, "230831", {"GBPJPYS": ["133.740000", "133.740000", "133.740000", "133.740000"], "USDJPYS.EURJPYS": ["82.740000", "82.750000", "82.740000", "82.750000"]}], [70412, "230831", {"GBPJPYS": ["133.740000", "133.740000", "133.740000", "133.740000"], "USDJPYS.EURJPYS": ["82.740000", "82.740000", "82.740000", "82.740000"]}], [70411, "230831", {"GBPJPYS": ["133.730000", "133.740000", "133.730000", "133.740000"], "USDJPYS.EURJPYS": ["82.740000", "82.740000", "82.740000", "82.740000"]}], [70410, "230831", {"GBPJPYS": ["133.730000", "133.730000", "133.730000", "133.730000"], "USDJPYS.EURJPYS": ["82.740000", "82.740000", "82.740000", "82.740000"]}], [70409, "230831", {"GBPJPYS": ["133.720000", "133.730000", "133.720000", "133.730000"], "USDJPYS.EURJPYS": ["82.740000", "82.740000", "82.740000", "82.740000"]}], [70408, "230831", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.740000", "82.740000", "82.740000", "82.740000"]}], [70407, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.740000", "82.740000", "82.730000", "82.740000"]}], [70406, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.730000", "82.740000", "82.730000", "82.740000"]}], [70405, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70404, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70403, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70402, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70401, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70400, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70399, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70398, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70397, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70396, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70395, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70394, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}], [70393, "230830", {"GBPJPYS": ["133.720000", "133.720000", "133.720000", "133.720000"], "USDJPYS.EURJPYS": ["82.730000", "82.730000", "82.730000", "82.730000"]}]]

 

NOP

セッション維持のために使うらしい。

リクエストURL: https://api.click365.tradersfx.jp/nop
レスポンスデータ: {}

 

ログアウト

エラーコードが返ってこなければ、ログアウト成功らしい。

リクエストURL: https://api.click365.tradersfx.jp/logout
レスポンスデータ: {}

トレイダーズ証券くりっく365WebAPI①

1. 3月 2011 08:19

クリック証券のWebApiが使えなくなったので、

トレイダーズ証券のFXのWebApiを使ってみることにした。

公開されているAPI仕様書がこれ

http://www.traderssec.com/forex/click365/apidoc/traders365API.pdf

ざっくり使える機能が下記のとおりになっているようです。

API 機能概要
/login ログインを行う
/logout ログアウトを行う
/nop 何もしない
/order/type/exp/lot/bs/pair/rate 注文を行う
/orddel/seq1/seq2/… 未約定注文の取消を行う
/position/seq1/seq2/… 建玉照会を行う
/position/account 口座状況照会を行う
/rate/KEY/PAIR1/PAIR2/・・・ 指定した通貨ペアのレートを取得する
/ret_rate/KEY/seq/PAIR1/PAIR2/・・・ 指定したシーケンス番号および通貨ペアのレートを取得する
/hist_rate/KEY/PAIR1/PAIR2/・・・ 指定した通貨ペアの短期ヒストリカルレートを取得する

 

これをざっくりクラスに置き換えしてとりあえずこんな感じ、基本Trader365ApiManagerクラスの関数を呼び出すだけで使えるように作れるはず。

レート取得時のKEYとFQDNの管理も内部に組み込んでおけば問題なさそう。

クラス 概要
Trader365ApiManager トレーダーズ365Apiマネージャ
RequestExecutor リクエスト実行クラス
BaseRequest ベースリクエスト
LoginRequest ログインを行うリクエスト
LogoutRequest ログアウトを行うリクエスト
NopRequest 何もしないリクエスト
OrderRequest 注文を行うリクエスト
OrddelRequest 未約定注文の取消を行うリクエスト
PositionRequest 建玉照会を行うリクエスト
AcountRequest 口座状況照会を行うリクエスト
RateRequest 指定した通貨ペアのレートを取得するリクエスト
RetRateRequest 指定したシーケンス番号および通貨ペアのレートを取得するリクエスト
HistRateRequest 指定した通貨ペアの短期ヒストリカルレートを取得するリクエスト
RequestException リクエスト例外
ResponseCode リクエストエラーコード列挙体

 

エラー処理はRequestExceptionクラスで仕様書に定義されているエラーをResponseCodeの列挙体で対応させると下記になる。

API リクエストに対応したエラー ResponseCode
/login 400 受渡値不正 C400ParamError
  500 その他認識できないエラー C500OtherError
/logout 401 ログインが認識できない C401LoginError
  500 その他認識できないエラー C500OtherError
/nop 401 ログインが認識できない C401LoginError
  500 その他認識できないエラー C500OtherError
/order/type/exp/lot/bs/pair/rate 400 受渡値不正 C400ParamError
  401 ログインが認識できない C401LoginError
  402 注文に必要な証拠金が不足している C402NotEnoughMoneyError
  500 その他認識できないエラー C500OtherError
/orddel/seq1/seq2/… 400 受渡値不正 C400ParamError
  401 ログインが認識できない C401LoginError
  404 指定された注文は存在しない C404NoOrderError
  500 その他認識できないエラー C500OtherError
/position/seq1/seq2/… 400 要求されたseqは期限切れであるか、または存在しない C400NoSeqError
  401 ログインが認識できない C401LoginError
  404 要求されたseqの注文は全て未約定 C404NoYakujoError
  500 その他認識できないエラー C500OtherError
/position/account 400 受渡値不正 C400ParamError
  401 ログインが認識できない C401LoginError
  500 その他認識できないエラー C500OtherError
/rate/KEY/PAIR1/PAIR2/・・・ 400 受渡値不正 C400ParamError
  402 KEYが誤っている C402InvalidKeyError
  404 受渡変数が足りない C404NotEnoughParamError
  500 その他認識できないエラー C500OtherError
/ret_rate/KEY/seq/PAIR1/PAIR2/・・・ 400 受渡値不正 C400ParamError
  402 KEYが誤っている C402InvalidKeyError
  409 同一通貨ペアかつ同一売買区分の要求が複数指定された C409DuplicationError
  500 その他認識できないエラー C500OtherError
/hist_rate/KEY/PAIR1/PAIR2/・・・ 400 受渡値不正 C400ParamError
  402 KEYが誤っている C402InvalidKeyError
  404 受渡変数が足りない C404NotEnoughParamError
  500 その他認識できないエラー C500OtherError

今週作れたのはここまで

口座開設のログインパスワードが郵送でようやっと届くらしい、申込してから5営業日もかかるとは(-_-メ)

次はログイン、ログアウト処理とレート取得くらいまで作る予定。

プロフィール

 

 

名前:あれく

職種:システムエンジニア(プログラム)

地域:北海道

FX歴:4年

twitter: http://twitter.com/arekunet

 

Amazonで検索

2008-2011 areku.jp All rights reserved