{"id":269,"date":"2017-11-04T20:57:12","date_gmt":"2017-11-04T11:57:12","guid":{"rendered":"http:\/\/medicalfields.jp\/blog\/?p=269"},"modified":"2018-12-13T21:36:07","modified_gmt":"2018-12-13T12:36:07","slug":"oanda%e3%81%aefixprotocol%e3%81%a7%e3%83%ac%e3%83%bc%e3%83%88%e3%82%92%e5%8f%96%e5%be%97","status":"publish","type":"post","link":"https:\/\/medicalfields.jp\/blog\/fx\/oanda%e3%81%aefixprotocol%e3%81%a7%e3%83%ac%e3%83%bc%e3%83%88%e3%82%92%e5%8f%96%e5%be%97\/","title":{"rendered":"OANDA\u306eFIXprotocol\u3067\u30ec\u30fc\u30c8\u3092\u53d6\u5f97"},"content":{"rendered":"<p>\u8272\u3005\u3042\u3063\u3066\u30c9\u30eb\u5186\u3068\u304b\u306e\u30ec\u30fc\u30c8\u30c7\u30fc\u30bf\u3092\u9ad8\u901f\u3067\u53d6\u5f97\u3059\u308b\u5fc5\u8981\u304c\u3042\u3063\u305f\u3002<br \/>\n\u8abf\u3079\u305f\u3068\u3053\u308dThe Financial Information eXchange (FIX) protocol\u304c\u306a\u3093\u304b\u826f\u3044\u611f\u3058\u3067\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u3089\u3057\u3044\u304b\u3089\u305d\u308c\u3067\u69cb\u7bc9\u3059\u308b\u3053\u3068\u306b\u3057\u305f\u3002<\/p>\n<p>\u4f7f\u7528\u3057\u305f\u3082\u306e\u306fQuickFIX\/J<\/p>\n<p>http:\/\/www.quickfixj.org\/<\/p>\n<p>\u3067\u3059<\/p>\n<p>YJFX\u306eFIX\u30d7\u30ed\u30c8\u30b3\u30eb\u306f\u305d\u3053\u305d\u3053\u7d20\u76f4\u306b\u51fa\u6765\u305f\u3051\u3069OANDA\u306f\u304b\u306a\u308a\u60a9\u3093\u3060\u3002<\/p>\n<p>\u30cf\u30de\u3063\u305f\u30dd\u30a4\u30f3\u30c8\u306f\u30ec\u30fc\u30c8\u30b5\u30fc\u30d0\u30fc\u306f\u5225\u3067\u3059\uff01<br \/>\n\/\/settings.setString(&#8220;SocketConnectHost&#8221;, &#8220;fxgame-fix.oanda.com&#8221;);<br \/>\nsettings.setString(&#8220;SocketConnectHost&#8221;, &#8220;fxtrade-fix.oanda.com&#8221;);<\/p>\n<p>\u3060\u3051\u3058\u3083\u3060\u3081<\/p>\n<p>if(rateServer)settings.setString(&#8220;TargetSubID&#8221;, &#8220;RATES&#8221;);<\/p>\n<p>\u3053\u308c\u304c\u3044\u308b<\/p>\n<p>\u3053\u308c\u3042\u308b\u3068\u30ec\u30fc\u30c8\u30b5\u30fc\u30d0\u30fc\u306b\u7e4b\u3044\u3067\u304f\u308c\u307e\u3059\u3002\u305d\u3046\u3058\u3083\u306a\u3044\u3068<\/p>\n<p>toApp :8=FIX.4.4\u00019=127\u000135=V\u000134=2\u000149=USERID\u000152=20171104-11:48:06.692\u000156=OANDA\u0001262=foo\u0001263=1\u0001264=1\u0001265=1\u0001266=Y\u0001146=1\u000155=USD\/JPY\u0001267=2\u0001269=0\u0001269=1\u000110=207\u0001<\/p>\n<p>fromApp :8=FIX.4.4\u00019=108\u000135=j\u000134=3\u000149=OANDA\u000152=20171104-11:48:05.330\u000156=pp352604\u000145=2\u000158=MsgType &lt;35&gt; = V not supported.\u0001372=V\u0001380=3\u000110=180\u0001<\/p>\n<p>\u3063\u3066\u6012\u3089\u308c\u307e\u3059\u3002<\/p>\n<p>\u6b63\u3057\u3044\u30ea\u30af\u30a8\u30b9\u30c8\u2193<\/p>\n<p>toApp :8=FIX.4.4\u00019=136\u000135=V\u000134=2\u000149=USERID\u000152=20171104-11:54:35.948\u000156=OANDA\u000157=RATES\u0001262=foo\u0001263=1\u0001264=1\u0001265=1\u0001266=Y\u0001146=1\u000155=USD\/JPY\u0001267=2\u0001269=0\u0001269=1\u000110=251\u0001<\/p>\n<p>\u3093\u3067\u3059\u3079\u3066\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u306b\u6bce\u56de\u300c57=RATES\u300d\u3092\u5165\u308c\u306a\u3044\u3068\u30c0\u30e1\u3067\u3059<\/p>\n<blockquote><p>@Override<br \/>\npublic void toAdmin(Message msg, SessionID sessionID) {<\/p>\n<p>try {<br \/>\nString msgType = msg.getHeader().getString(MsgType.FIELD);<br \/>\nif(settings.isSetting(&#8220;TargetSubID&#8221;))<br \/>\ntry {<br \/>\nmsg.setString(quickfix.field.TargetSubID.FIELD,<br \/>\nsettings.getString(sessionID, &#8220;TargetSubID&#8221;));<br \/>\n} catch (ConfigError | FieldConvertError e1) {<br \/>\n\/\/ TODO Auto-generated catch block<br \/>\ne1.printStackTrace();<br \/>\n}<br \/>\nif(MsgType.LOGON.compareTo(msgType) == 0)<br \/>\n{<\/p>\n<p>try {<br \/>\nif(settings.isSetting(&#8220;Password&#8221;))msg.setString(quickfix.field.Password.FIELD,<br \/>\nsettings.getString(sessionID, &#8220;Password&#8221;));<br \/>\nmsg.setString(quickfix.field.ResetSeqNumFlag.FIELD,<br \/>\n&#8220;Y&#8221;);<\/p>\n<p>} catch (ConfigError e) {<br \/>\n\/\/ TODO Auto-generated catch block<br \/>\ne.printStackTrace();<br \/>\n} catch (FieldConvertError e) {<br \/>\n\/\/ TODO Auto-generated catch block<br \/>\ne.printStackTrace();<br \/>\n}<br \/>\n}<br \/>\n} catch (FieldNotFound e1) {<br \/>\n\/\/ TODO Auto-generated catch block<br \/>\ne1.printStackTrace();<br \/>\n}<\/p>\n<p>System.out.println(&#8220;toAdmin :&#8221;+msg.toString());<br \/>\n}<br \/>\npublic void toApp(Message msg, SessionID sessionId) throws DoNotSend {<br \/>\nif(settings.isSetting(&#8220;TargetSubID&#8221;))<br \/>\ntry {<br \/>\nmsg.setString(quickfix.field.TargetSubID.FIELD,<br \/>\nsettings.getString(sessionID, &#8220;TargetSubID&#8221;));<br \/>\n} catch (ConfigError | FieldConvertError e) {<br \/>\n\/\/ TODO Auto-generated catch block<br \/>\ne.printStackTrace();<br \/>\n}<br \/>\nSystem.out.println(&#8220;toApp :&#8221;+msg.toString());<br \/>\n}<\/p><\/blockquote>\n<p>\u30b4\u30df\u30b3\u30fc\u30c9\u3082\u7f6e\u3044\u3068\u304d\u307e\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8272\u3005\u3042\u3063\u3066\u30c9\u30eb\u5186\u3068\u304b\u306e\u30ec\u30fc\u30c8\u30c7\u30fc\u30bf\u3092\u9ad8\u901f\u3067\u53d6\u5f97\u3059\u308b\u5fc5\u8981\u304c\u3042\u3063\u305f\u3002 \u8abf\u3079\u305f\u3068\u3053\u308dThe Financial Information eXchange (FIX) protocol\u304c\u306a\u3093\u304b\u826f\u3044\u611f\u3058\u3067\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u3089\u3057\u3044\u304b\u3089\u305d\u308c &hellip; <a href=\"https:\/\/medicalfields.jp\/blog\/fx\/oanda%e3%81%aefixprotocol%e3%81%a7%e3%83%ac%e3%83%bc%e3%83%88%e3%82%92%e5%8f%96%e5%be%97\/\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">OANDA\u306eFIXprotocol\u3067\u30ec\u30fc\u30c8\u3092\u53d6\u5f97<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[2,4,7],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6kJO0-4l","_links":{"self":[{"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/posts\/269"}],"collection":[{"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/comments?post=269"}],"version-history":[{"count":1,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/posts\/269\/revisions"}],"predecessor-version":[{"id":270,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/posts\/269\/revisions\/270"}],"wp:attachment":[{"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/media?parent=269"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/categories?post=269"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/tags?post=269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}