Monday, 6 November 2017

Oanda forex trading api


OANDA 1080108910871086108311001079109110771090 10921072108110831099 kaka, 10951090108610731099 1089107610771083107210901100 1085107210961080 10891072108110901099 10871088108610891090109910841080 1074 1080108910871086108311001079108610741072108510801080 1080 108510721089109010881086108010901100 10801093 10891086107510831072108910851086 108710861090108810771073108510861089109011031084 10851072109610801093 10871086108910771090108010901077108310771081. 10601072108110831099 kaka 10851077 10841086107510911090 1073109910901100 108010891087108610831100107910861074107210851099 107610831103 109110891090107210851086107410831077108510801103 10741072109610771081 10831080109510851086108910901080. 1055108610891077109710721103 108510721096 1089107210811090, 10741099 108910861075108310721096107210771090107710891100 1089 10801089108710861083110010791086107410721085108010771084 OANDA8217 109210721081108310861074 kaka 1074 108910861086109010741077109010891090107410801080 1089 10851072109610771081 10 5510861083108010901080108210861081 108210861085109210801076107710851094108010721083110010851086108910901080. 1048108510891090108810911082109410801080 10871086 107310831086108210801088108610741072108510801102 1080 10911076107210831077108510801102 109210721081108310861074 kaka, 1072 10901072108210781077 1091108710881072107410831077108510801102 108010841080 108710881080107410771076107710851099 10851072 10891072108110901077 aboutcookies. org. 1042 108910831091109510721077 10861075108810721085108010951077108510801103 1080108910871086108311001079108610741072108510801103 109210721081108310861074 kaka 108610871088107710761077108310771085108510991077 1092109110851082109410801080 108510721096107710751086 10891072108110901072 10731091107610911090 1085107710761086108910901091108710851099. 104710721075108810911079108010901100 108410861073108010831100108510991077 1087108810801083108610781077108510801103 1042109310861076 1042109910731088107210901100 1089109510771090: ampltiframe src4489469.fls. doubleclickactivityisrc4489469typenewsi0catoanda0u1fxtradeiddclatdcrdidtagforchilddirectedtreatmentord1num1 mcesrc4489469.fls. doubleclickactivityisrc4489469typenewsi0catoanda0u1fxtradeiddclatdcrdidtagforchilddirectedtreatmentord1num1 width1 height1 frameborder0 styledisplay: ingen mcestyledisplay: noneampgtampltiframeampgt 10571054104710441040104910581045 104010421058105410521040105810481047104810561054104210401053105310671045 1058105410561043105 4104210671045 105710581056104010581045104310481048 105.010.401.050 105310401057105810561054104810581068 API 105310721089109010881086108110901077 API OANDA 1074 109.010.881.080 1096107210751072: 10541090108210881086108110901077 10881077107210831100108510991081 10901086108810751086107410991081 1089109510771090 108010831080 1076107710841086-1089109510771090. 104710721087108810861089108010901077 107410721096 1082108311021095 107610831103 API. 104010511043105410561048105810521048106310451057105010401071 10581054105610431054104210511071 10541088107510721085108010791091108110901077 10871086109010861082 107610721085108510991093 1086 108210911088108910721093 1074 108810771078108010841077 108810771072108311001085108610751086 1074108810771084107710851080, 1089108610741077108810961072108110901077 10901086108810751086107410991077 10761077108110891090107410801103, 10851072108710881080108410771088 1088107210791084107710971072108110901077 10881099108510861095108510991077 1080 10831080108410801090108010881086107410721085108510991077 1087108810801082107210791099, 10871086108310911095108010901077 107610861089109010911087 1082 107410721096107710841091 10891095107710901091 OANDA 1080 1094107710851086107410861081 1080108910901086108810801080. 10511045104310501054 10481053105810451043105610481056105910491058104510571068 1042 1057104810571058104510521059 105110771075108210801077 1074 10871086108311001079108610741072108510801080 1080 1080108510 9010771075108810801088108610741072108510801080. 105610721079108810721073108610901072108110901077 10801085107610801074108010761091107210831100108510991077 1080108510901077108810921077108110891099 108710861083110010791086107410721090107710831103 108010831080 10891086107910761072108110901077 10891086107310891090107410771085108510991077 10901086108810751086107410991077 108410861076107710831080. 10541041106410481056105310671045 1056104510571059105610571067 104410511071 1056104010471056104010411054105810631048105010541042 105310721096 108710861088109010721083 108810721079108810721073108610901095108010821072 1087108610841086107810771090 107410721084 108510721095107210901100 108810721073108610901091. 1042 10741072109610771084 108810721089108710861088110310781077108510801080 10861073109610801088108510991077 1088107710891091108810891099, 1087108810801084107710881099 10821086107610861074 1080 107610861082109110841077108510901072109410801103. 1053104010631053104810581045 10581054105610431054104210 511070 10541090108210881086108110901077 1076107710841086-1089109510771090. 106910901086 1087108610841086107810771090 107410721084 10881072107910881072107310861090107210901100 10901086108810751086107410911102 108910901088107210901077107510801102. 10541090108210881086108110901077 10881077107210831100108510991081 1089109510771090 109110781077 108910771081109510721089, 1080 10741099 1089108410861078107710901077 109010861088107510861074107210901100 10951077108810771079 108510771089108210861083110010821086 10841080108510911090. 105910731099109010821080 10841086107510911090 108710881077107410991089108010901100 1080108510741077108910901080109410801080. 1057104810571058104510521040 105410411052104510531040 10481053106010541056105210401062104810451049 10551054 1057104410451051105010401052 FIX 104410831103 1076108610891090109110871072 1082 10901086108810751086107410861081 108710831072109010921086108810841077 OANDA 1092108010851072108510891086107410991077 10861088107510721085108010791072109410801080 10841086107510911090 108010891087108610831100107910861074107210901100 10 79107210961080109210881086107410721085108510991081 10821072108510721083 108610731084107710851072 1092108010851072108510891086107410861081 10801085109210861088108410721094108010771081 FIX. OANDA 108710861076107610771088107810801074107210771090 107410771088108910801080 FIX 4.2, 4.3 1080 4.4. 105410901087108810721074110010901077 107910721087108810861089 10851072 107610861089109010911087 10871086 107210761088107710891091 apioanda API REST 10.851.072 108610891085108610741077 HTTP-108710881086109010861082108610831072 1055108810801082108310721076108510991077 10871088108610751088107210841084108510991077 1080108510901077108810921077108110891099 REST OANDA 10851077 1079107210741080108911031090 10861090 11031079109910821072, 109510901086 108710861079107410861083110310771090 109010881077108110761077108810721084 108010891087108610831100107910861074107210901100 108510911078108510991077 10801084 10871088108610751088107210841084108510991077 11031079109910821080 107610831103 1085107710871086108910881077107610891090107410771085108510861081 1080108510901077107510881072109410801080 1074 10901086108810751086107410991077 1089108010891090107710841099 OANDA 8212 108.210.721.082 10881072108510771077 1088107210791088107210731086109010721085108510991077, 109010721082 1080 107410771088108910801080 20 (v 20). 106910901080 1080108510901077108810921077108110891099 8212 108010761077107210831100108510861077 1088107710961077108510801077 107610831103 10851077107910721074108010891080108410991093 109010881077108110761077108810861074, 1079107210801085109010771088107710891086107410721085108510991093 1074 1072107410901086108410721090108010791072109410801080 10901086108810751086107410991093 108910901088107210901077107510801081. 10531091107810771085 10831080 108410851077 1089109510771090 OANDA, 10951090108610731099 108010891087108610831100107910861074107210901100 API 10441072. 10631090108610731099 1089107510771085107710881080108810861074107210901100 108310801095108510991081 1082108311021095 1076108610891090109110871072 1080 108010891087108610831100107910861074107210901100 API, 107410721084 108510771086107310931086107610801084 10881077107210831100108510991081 108010831080 1076107710841086-1089109510771090 OANDA. 10631090108610731099 1089107510771085107710881080108810861074107210901100 108310801095108510991081 1082108311021095 1076108610891090109110871072, 108710771088107710811076108010901077 10851072 10891090108810721085108010941091 1711059108710881072107410831077108510801077 10761086108910901091108710861084187 107410721096107710751086 10891095107710901072 FXTrade OANDA. 105810721084 10741099 1091107410801076108010901077 108910891099108310821091 1711059108710881072107410831077108510801077 10761086108910901091108710861084 1082 API187 (105.210.861.081 1089109510771090 - gt 105.210.861.080 109110891083109110751080 - gt 1059108710881072107410831077108510801077 10761086108910901091108710861084 1082 API). 1055107710881077108110761103 10871086 1101109010861081 108910891099108310821077, 10741099 108410861078107710901077 1089107510771085107710881080108810861074107210901100 108310801095108510991081 1082108311021095 1076108610891090109110871072 1082 API OANDA, 1072 10901072108210781077 107210851085109110831080108810861074107210901100 1090107710821091109710801081 1082108311021095. 1071 10791072107310991083 1089107410861081 108310801095108510991081 1082108311021095 1076108610891090109110871072. 1052108610751091 10831080 1103 107410861089108910901072108510861074108010901100 107710751086 104210721084 10871088108010761077109010891103 107210851085109110831080108810861074107210901100 1079107210731099109010991081 1082108311021095 1076108610891090109110871072 1080 1089107510771085107710881080108810861074107210901100 10851086107410991081. 105510771088107710811076108010901077 10851072 10891090108810721085108010941091 1711059108710881072107410831077108510801077 10761086108910901091108710861084187 107410 721096107710751086 10891095107710901072 fxTrade OANDA. 105810721084 10741099 1091107410801076108010901077 108910891099108310821091 1711059108710881072107410831077108510801077 10761086108910901091108710861084 1082 API187 (105.210.861.081 1089109510771090 - gt 105.210.861.080 109110891083109110751080 - gt 1059108710881072107410831077108510801077 10761086108910901091108710861084 1082 API). 1055107710881077108110761103 10871086 1101109010861081 108910891099108310821077, 10741099 1089108410861078107710901077 107210851085109110831080108810861074107210901100 1090107710821091109710801081 1082108311021095 1076108610891090109110871072 1082 API OANDA 1080 1089107510771085107710881080108810861074107210901100 10851086107410991081. 104310761077 10841086107810851086 10851072108110901080 1088107710891091108810891099 107610831103 1088107210791088107210731086109010951080108210861074 10501072108210801077 11031079109910821080 1087108810861075108810721084108410801088108610741072108510801103 10741099 1087108610761076107710881078108010741072107710901077 API REST 10851077 1079107210741080108910801090 10861090 11031079109910821072 1087108810861075108810721084108410801088108610741072108510801103. 104410831103 1089108610871088110310781077108510801103 1089 108510721096108010841080 108910801089109010771084107210841080 10741099 108410861078107710901077 108010891087108610831100107910861074107210901 100 10831102107310861081 10801079 108010791074107710891090108510991093 107410721084 110310791099108210861074. 10501088108610841077 1090108610751086, 10.851.072 1055108610881090107210831077 108810721079108810721073108610901095108010821072 OANDA 10761086108910901091108710851086 108510771089108210861083110010821086 10911087107210821086107410971080108210861074 110310791099108210861074 1087108810861075108810721084108410801088108610741072108510801103, 109510901086 108610731083107710751095107210771090 1087108810861094107710891089. 10521086107810851086 10831080 108010891087108610831100107910861074107210901100 API OANDA 1089 v20 API REST-v20 10841086107810851086 108010891087108610831100107910861074107210901100 10891086 108910951077109010861084 v20. 10541073107710891087107710951080107410721077109010891103 10831080 108710861083108510861077 1096108010921088108610741072108510801077 10741072109610801093 1082108610841084109110851080108210721094108010861085108510991093 1082107210851072108310861074 10441072, 107.410.891.077 1082108610841084109110851080108210721094108010861085108510991077 108210721085107210831099 API 10791072109710801097107710851099 1087108810861090108610821086108310861084 SSL. 104210791080108410721077109010891103 10831080 10821072108210721103-1083108010731086 10871083107210901072 10791072 107610861089109010911087 1082 API 104410861089109010911087 1082 API 108710881077107610861089109010721074108311031077109010891103 107310771089108710831072109010851086 108710881080 1091108910831086107410801080 1085107210831080109510801103 10761086108910901072109010861095108510991093 1089108810771076108910901074 10851072 10901086108810751086107410861084 10891095107710901077 OANDA. 105810881077107310911077109010891103 10831080 1074109910871086108310851077108510801077 108710831072109010921086108810841099 OANDA 107.610.831.103 108810721073108610901099 1089 API 104.410.831.103 1080108910871086108311001079108610741072108510801103 API 10851077 109010881077107310911077109010891103 1079107210871091109710771085108510861081 10901086108810751086107410861081 108710831072109010921086108810841099 OANDA, 1093108610901103 10741099 108410861078107710901077 107410861089108710861083110010791086107410721090110010891103 10771102 107610831103 10841086108510801090108610881080108510751072 10761077108110891090107410801081 API 1074 108810771078108010841077 108810771072108311001085108610751086 1074108810771084107710851080. 105510881080 1079107210871088108610891077 API REST 1087108611031074108311031077109010891103 108610961080107310821072 HTTP 429. 106310901086 110110901086 107910851072109510801090 104210721084 1085107710861073109310861076108010841086 10721085108510911083108010881086107410721090 1100 1090107710821091109710801081 1082108311021095 1076108610891090109110871072 1080 1089107510771085107710881080108810861074107210901100 10851086107410991081. 105510771088107710811076108010901077 10851072 10891090108810721085108010941091 1711059108710881072107410831077108510801077 10761086108910901091108710861084187 107410721096107710751086 10891095107710901072 FXTrade OANDA. 105810721084 10741099 1091107410801076108010901077 108910891099108310821091 1711059108710881072107410831077108510801077 10761086108910901091108710861084 1082 API187 (105.210.861.081 1089109510771090 - gt 105.210.861.080 109110891083109110751080 - gt 1059108710881072107410831077108510801077 10761086108910901091108710861084 1082 API). 1055107710881077108110761103 10871086 1101109010861081 108910891099108310821077, 10741099 1089108410861078107710901077 107210851085109110831080108810861074107210901100 1090107710821091109710801081 1082108311021095 1076108610891090109110871072 1082 API OANDA 1080 1089107510771085107710881080108810861074107210901100 10851086107410991081. 10481089108710861083110010791091108110901077 10851086107410991081 1082108311021095 1076108610891090109110871072 107610831103 10791072108710881086108910861074 API. 1071 108010891087108610831100107910911102 API REST v1, 10851086 10861085 10851077 10881072107310861090107210771090 1089 1084108610801084 108910951077109010861084. 106310901086 107610771083107210901100 1045108910831080 1091 107410721089 108610901082108810991090 1089109510771090 v20 (108010891087108610831100107910911102109710801081 17110951077108810901086109510821080187 1074 10801076107710851090108010921080108210721090108610881077 10891095107710901072, 10851072108710881080108410771088 101-23423-105), 1085107710861073109310861076108010841086 108010891087108610831100107910861074107210901100 API v3 (REST v20). 1071 108010891087108610831100107910911102 API REST v20, 10851086 10861085 10851077 10881072107310861090107210771090 1089 1084108610801084 108910951077109010861084. 106310901086 107610771083107210901100 1045108910831080 1091 107410721089 108610901082108810991090 171108910901072108810991081187 1089109510771090 (10851077 1080108410771102109710801081 17110951077108810901086109510771082187 1074 10801076107710851090108010921080108210721090108610881077 10891095107710901072, 10851072108710881080108410771088 252.345), 1089108310771076109110771090 108010891087108610831100107910861074107210901100 API v1. 104310761077 10841086107810851086 10851072108110901080 108810771075108010891090108810721094108010861085108510991077 10921086108810841099, 10871088107210741086107410911102 1080 10901086108810751086107410911102 107610861082109110841077108510901072109410801102 OANDAOANDA använder cookies för att göra våra webbsidor lätt att använda och anpassade till våra besökare. Cookies kan inte användas för att identifiera dig personligen. Genom att besöka vår webbplats godkänner du OANDA8217s användning av cookies i enlighet med vår integritetspolicy. För att blockera, radera eller hantera cookies, besök aboutcookies. org. Att begränsa cookies hindrar dig från att använda vissa av funktionaliteten på vår webbplats. Ladda ner vår mobila Apps Hem gt FX för Business gt OANDA Valutakurser API Test Drive Forex Priser för Corporate Amp Finance Välj konto: Testa OANDAs Exchange Rate API Använd gränssnittet nedan för att bygga och testa din OANDA Exchange Rate URL-frågaOANDA 1080108910871086108311001079109110771090 10921072108110831099 cookie, 10951090108610731099 1089107610771083107210901100 1085107210961080 10891072108110901099 10871088108610891090109910841080 1074 1080108910871086108311001079108610741072108510801080 1080 108510721089109010881086108010901100 10801093 10891086107510831072108910851086 108710861090108810771073108510861089109011031084 10851072109610801093 10871086108910771090108010901077108310771081. 10601072108110831099 kaka 10851077 10841086107510911090 1073109910901100 108010891087108610831100107910861074107210851099 107610831103 109110891090107210851086107410831077108510801103 10741072109610771081 10831080109510851086108910901080. 1055108610891077109710721103 108510721096 10891072 10811090, 10741099 108910861075108310721096107210771090107710891100 1089 10801089108710861083110010791086107410721085108010771084 OANDA8217 109210721081108310861074 kaka 1074 108910861086109010741077109010891090107410801080 1089 10851072109610771081 105510861083108010901080108210861081 108210861085109210801076107710851094108010721083110010851086108910901080. 1048108510891090108810911082109410801080 10871086 107310831086108210801088108610741072108510801102 1080 10911076107210831077108510801102 109210721081108310861074 kaka, 1072 10901072108210781077 1091108710881072107410831077108510801102 108010841080 108710881080107410771076107710851099 10851072 10891072108110901077 aboutcookies. org. 1042 108910831091109510721077 10861075108810721085108010951077108510801103 1080108910871086108311001079108610741072108510801103 109210721081108310861074 kaka 108610871088107710761077108310771085108510991077 1092109110851082109410801080 108510721096107710751086 10891072108110901072 10731091107610911090 1085107710761086108910901091108710851099. 104710721075108810911079108010901100 108410861073108010831100108510991077 1087108810801083108610781077108510801103 1042109310861076 1042109910731088107210901100 1089109510771090: ampltiframe src4489469.fls. doubleclickactivityisrc4489469typenewsi0catoanda0u1fxtradeiddclatdcrdidtagforchilddirectedtreatmentord1num1 mcesrc4489469.fls. doubleclickactivityisrc4489469typenewsi0catoanda0u1fxtradeiddclatdcrdidtagforchilddirectedtreatmentord1num1 width1 height1 frameborder0 styledisplay: ingen mcestyledisplay: noneampgtampltiframeampgt 1055108610871088108610731091108110901077 1085107210961080 1087108810801079108510721085108510991077 10901086108810751086107410 991077 108710831072109010921086108810841099 10481089108210831102109510801090107710831100108510861077 1080108910871086108310851077108510801077 104110991089109010881086 1080 1085107210761077107810851086. 104210891077 10861087107710881072109410801080 1089 10741072108311021090107210841080 108710861083108510861089109011001102 1072107410901086108410721090108010791080108810861074107210851099. 106910901086 107910851072109510801090, 109510901086 1074107210961080 108910761077108310821080 10801089108710861083108511031102109010891103 107310771079 107410891103108210801093 108710861089108310771076108510801093 1087108810861089108410861090108810861074, 1086109010821072107910861074 1080 1087107710881077108210861090108010881086107410861082. 1055108810861079108810721095108510861077 109410771085108610861073108810721079108610741072108510801077 1053108010821072108210801093 10821086108410801089108910801081 10861090 108910761077108310861082 1089 10741072108311021090107210841080 1080 10821086108510901088107210 821090107210841080 10851072 1088107210791085108010941091 1080 1085108010821072108210801093 10841080108510801084107210831100108510991093 107610771087108610791080109010861074. 105510881080 1101109010861084 10741099 108710861083109110951072107710901077 1087108810861079108810721095108510911102 108410861076107710831100 109410771085108610861073108810721079108610741072108510801103 1080 107410991089108610821086108210861085108210911088107710851090108510991077 108910871088107710761099. 1060109110851082109410801080 1080 10801085108910901088109110841077108510901099 1087108610891090108810861077108510801103 10881072108910961080108810771085108510991093 10751088107210921080108210861074 10421086108910871086108311001079109110811090107710891100 10801085108510861074107210941080108610851085109910841080 1080108510891090108810911084107710851090107210841080, 1074108210831102109510721103 1087108610891090108810861077108510801077 10881072108910961080108810771085108510991093 10751088107210921080108210861074, 1072 10741090108610841072109010801079108010881086107410721085108510991081 10901077109310851080109510771089108210801081 107210851072108310801079, 10821086108410841077108510901072108810801080 1086 108910861089109010861103108510801080 108810991085108210861074 1080 10851072108910901088108610771085108011031093 109010881077108110761077108810861074. 10481089108210831102109510801090107710831100108510861077 1080108910871086108310851077108510801077 1055108810861079108810721095108510861077 109410771085108610861073108810721079108610741072108510801077 1060109110851082109410801080 1080 10801085108910901088109110841077108510901099 1087108610891090108810861077108510801103 10881072108910961080108810771085108510991093 10751088107210921080108210861074 105710821080107610821080 10871086 108610731098107710841091 1053108010821072108210801093 10841080108510801084107210831100108510991093 1086107310981077108410861074 108910761077108310821080 1053108010821072108210801093 10841080108510801084107210831100108510991093 1 07610771087108610791080109010861074 10501088109110751083108610891091109010861095108510721103 108710861076107610771088107810821072 6 1076108510771081 1074 108510771076107710831102 10581054105610431054104210401071 105510511040105810601054105610521040 104410511071 1053104010571058105410511068105310671061 10501054105210551068107010581045105610541042 105210861097108510991077 10801085108910901088109110841077108510901099 1087108610891090108810861077108510801103 10881072108910961080108810771085108510991093 10751088107210921080108210861074. 1055108810861089109010721103 1074 10871086108311001079108610741072108510801080, 1085107210891090108810721080107410721077108410721103 108710831072109010921086108810841072. 10581054105610431054104210401071 105510511040105810601054105610521040 104410511071 105210541041104810511068105310671061 105910571058105610541049105710581042 1041108610751072109010991081 10851072107310861088 108010851089109010881091108410771085109010861074 10871086108910901088108610771085108 01103 10751088107210921080108210861074 1080 109010771093108510801095107710891082108610751086 1072108510721083108010791072. 105510861089108310771076108510801077 1085108610741086108910901080 1080 tryck 10911074107710761086108410831077108510801103 METATRADER 4 104010741090108610841072109010801079108010881086107410721085108510721103 10901086108810751086107410831103 1080 10871086108310851086109410771085108510721103 108710861076107610771088107810821072 EA. 1053107210891090108810721080107410721077108410991077 1080108510761080108210721090108610881099 1080 10901086108810751086107410831103 10851072 108610891085108610741077 10751088107210921080108210861074 1053104010631053104810581045 10581054105610431054104210511070 10541090108210881086108110901077 1076107710841086-1089109510771090. 106910901086 1087108610841086107810771090 107410721084 10881072107910881072107310861090107210901100 10901086108810751086107410911102 108910901088107210901077107510801102. 10541090108210881086108110901077 10881077107210831100108510991081 1089109510771090 109110781077 108910771081109510721089, 1080 10741099 1089108410861078107710901077 109010861088107510861074107210901100 10951077108810771079 108510771089108210861083110010821086 10841080108510911090. 105910731099109010821080 10841086107510911090 108710881077107410991089108010901100 1080108510741077108910901080109410801080. 1048105310531054104210401062104810541053105310671045 10481053105710581056105910521045105310581067 1055108610871088108610731091108110901077 108510721096 1073108610751072109010991081 10851072107310861088 1080108510851086107410721094108010861085108510991093 1072108510721083108010901080109510771089108210801093 108010851089109010881091108410771085109010861074 1080 1087108810801083108610781077108510801081: 110.110.901.086 10871 08610841086107810771090 107410721084 10871088108610751085108610791080108810861074107210901100 10761074108010781077108510801077 108210881080107410861081 108710881080 108610871077108810721094108011031093 1089 10741072108311021090107210841080 1080 10821086108510901088107210821090107210841080 10851072 1088107210791085108010941091. 10501053104810431040 104710401071104210541050 105410791085107210821086108411001090107710891100 1089 1076107210851085109910841080 1086 10851072108910901088108610771085108011031093 10881099108510821072 1074 108810771078108010841077 108810771072108311001085108610751086 1074108810771084107710851080 1080 1087108610891084108610901088108010901077, 109510771084 108910771081109510721089 1090108610881075109111021090 1085107210961080 1082108310801077108510901099. Week Ahead Dollar Högre Inför Fed Minuter uppleva alla handelsfunktionalitet amp hastighet du behöver med OANDAs mobilkortshandel. Ladda ner appen till henne. t. copwMeX0PkTJForex Handelsdagbok 1 - Automatiserad Forex Trading med OANDA API Jag nämnde tidigare i QuantStart: 2014 I Review-artikeln att jag skulle spendera några av 2015 som skriver om automatiserad valutahandel. Med tanke på att jag själv brukar bedriva forskning på aktie - och terminsmarknader trodde jag att det skulle vara kul (och pedagogiskt) att skriva om mina erfarenheter av att gå in på valutamarknaden i stil med en dagbok. Varje dagbokspost kommer att försöka bygga på alla tidigare, men ska också vara relativt självständiga. I denna första posten i dagboken beskrivs Ill hur man skapar ett nytt mäklarekonto med OANDA, samt hur man skapar en grundläggande multithreaded händelsesdriven handelsmotor som automatiskt kan utföra handlar i både en praxis och en levande inställning. Förra året spenderade vi mycket tid på den händelsestyrda backtesteren. främst för aktier och ETF. Den som jag presenterar nedan är inriktad mot forex och kan användas för antingen pappershandel eller live trading. Jag har skrivit alla följande instruktioner för Ubuntu 14.04, men de borde enkelt översättas till Windows eller Mac OS X, med en Python-distribution som Anaconda. Det enda extra biblioteket som används för Pythons handelsmotor är begäran-biblioteket, vilket är nödvändigt för HTTP-kommunikation till OANDA API. Eftersom det här är det första inlägget direkt om handel med valutahandel och koden som presenteras nedan kan anpassas direkt till en levande handelsmiljö, skulle jag vilja presentera följande ansvarsfriskrivningar: Ansvarsbegränsning: Valutahandling på margin ger hög risk, och kanske inte är lämplig för alla investerare. Tidigare resultat är inte en indikation på framtida resultat. Den höga hävstångseffekten kan fungera mot dig såväl som för dig. Innan du bestämmer dig för att investera i utländsk valuta bör du noggrant överväga dina investeringsmål, nivå av erfarenhet och risk aptit. Möjligheten finns att du kan bibehålla en förlust av vissa eller alla dina initiala investeringar och därför borde du inte investera pengar som du inte har råd att förlora. Du bör vara medveten om alla risker som är förknippade med valutahandel och söka råd från en oberoende finansiell rådgivare om du är osäker. Denna programvara tillhandahålls enligt vad som är och eventuella uttryckliga eller underförstådda garantier, inklusive men inte begränsade till, de underförstådda garantierna för säljbarhet och lämplighet för ett visst ändamål avvisas. Regenterna eller bidragsgivarna ska under inga omständigheter vara ansvariga för direkta, indirekta, tillfälliga, speciella, exemplifierande eller följdskador (inklusive, men inte begränsat till, upphandling av ersättningsvaror eller tjänster förlust av användning, data eller vinst eller affärsavbrott ) orsakade och på grund av eventuella teorier om ansvar, oavsett om det var kontrakt, strikt ansvar eller skadestånd (inklusive försummelse eller annat) som uppstod i någon av användningen av denna programvara, även om det rådde om möjligheten för sådan skada. Ställa in ett konto med OANDA Den första frågan som kommer att tänka är att välja OANDA. Enkelt uttryckt, efter en del Googling runt för Forex-mäklare som hade API, såg jag att OANDA nyligen hade släppt ett korrekt REST API som lätt kunde kommuniceras med från nästan vilket språk som helst på ett extremt enkelt sätt. Efter att ha läst igenom dokumentationen för utvecklarens API. Jag bestämde mig för att försöka, åtminstone med ett praktikkonto. För att vara tydlig - Jag har ingen tidigare eller befintlig relation med OANDA och tillhandahåller endast denna rekommendation baserat på min begränsade erfarenhet att leka med sina praktik API och en kort användning (för marknadsdata nedladdning) när de anställdes i en fond tidigare. Om någon har stött på några andra forex-mäklare som också har ett liknande modernt API, så är Id glatt att ge dem en titt också. Innan du använder API: n måste du registrera dig för ett träningskonto. För att göra detta, gå till registreringslänken. Du kommer att se följande skärm: Du kan sedan logga in med dina inloggningsuppgifter. Se till att du väljer fliken fxTradePractice från inloggningsskärmen: En gång i måste du notera ditt konto-ID. Den är listad under den svarta rubriken Mina fonder bredvid Primär. Gruvan är ett 7-siffrigt nummer. Dessutom behöver du också skapa en personlig API-token. För att göra detta klickar du på Hantera API-åtkomst under fliken Övriga åtgärder längst ned till vänster: I det här skedet kan du skapa en API-token. Du behöver nyckeln för användning senare, så se till att skriva ner den också. Du vill nu starta FXTrade Practice-programmet, vilket gör det möjligt för oss att se de utförda orderna och vår (pappers) vinstförlust. Om du kör ett Ubuntu-system måste du installera en lite annorlunda version av Java. I synnerhet Oracle-versionen av Java 8. Om du inte gör det kommer träningssimulatorn inte att laddas från webbläsaren. Jag körde dessa kommandon på mitt system: Du kommer nu att kunna starta träningshandelns miljö. Återgå till OANDA-instrumentpanelen och klicka på den gröna markerade Launch FXTrade Practice-länken. Det kommer att hämta en Java-dialogruta som frågar om du vill köra den. Klicka på Kör och fxTrade Practice-verktyget laddas. Mine misstänktes till ett 15-min-ljusdiagram över EURUSD med citatpanelen till vänster: Vid denna tidpunkt är vi redo att börja utforma och koda vårt automatiserade valutahandel mot OANDA API. Översikt över handelsarkitektur Om du har följt den händelsestyrda backtesterserien för aktier och ETFs som jag skapade förra året, kommer du att vara medveten om hur ett sådant händelsestyrt handelssystem fungerar. För de av er som är nya till händelsesstyrd programvara. Jag rekommenderar starkt att läsa igenom artikeln för att få insikt om hur de fungerar. I huvudsak utförs hela programmet i en infinett medan slinga som bara slutar när handelssystemet stängs av. Programmets centrala kommunikationsmekanism ges via en kö som innehåller händelser. Kön efterfrågas ständigt för att leta efter nya händelser. När en händelse har tagits bort överst i köen måste den hanteras av en lämplig del av programmet. Därför kan ett marknadsdata-flöde skapa TickEvent s som placeras på köen när ett nytt marknadspris kommer. Ett signalgenererande strategibjekt kan skapa OrderEvent s som ska skickas till en mäklare. Nyttan av ett sådant system ges av det faktum att det inte spelar någon roll vilken ordning eller typer av händelser som är placerade i kön, eftersom de alltid kommer att hanteras korrekt av rätt komponent inom programmet. Dessutom kan olika delar av programmet köras i separata trådar. vilket betyder att det aldrig finns någon som väntar på någon viss komponent innan de behandlar någon annan. Detta är extremt användbart i algoritmiska handelssituationer där marknadsdatahanterare och strategisignalgeneratorer har väsentligt olika prestandaegenskaper. Huvudhandelslingan ges av följande Python pseudokod: Som vi nämnde ovan körs koden i en oändlig loop. För det första pollas köen för att hämta en ny händelse. Om köen är tom, startar slingan helt enkelt efter en kort sömnperiod som kallas hjärtslaget. Om en händelse hittas bedöms dess typ och därefter aktiveras den relevanta modulen (antingen strategin eller exekveringshanteraren) för att hantera händelsen och eventuellt generera nya som går tillbaka till köen. De grundläggande komponenter som vi kommer att skapa för vårt handelssystem inkluderar följande: Streaming Price Handler - Detta kommer att hålla en långvarig anslutning öppen för OANDAs servrar och skicka kryssdata (dvs. bidragen) över anslutningen för alla instrument som var intresserade av. Strategi Signal Generator - Detta kommer att ta en sekvens av tick händelser och använda dem för att generera handelsorder som kommer att utföras av exekveringshanteraren. Execution Handler - Tar en uppsättning orderhändelser och utför dem sedan blankt med OANDA. Händelser - Dessa objekt utgör de meddelanden som skickas runt på händelsekön. Vi behöver bara två för denna implementering, nämligen TickEvent och OrderEvent. Huvudinmatningspunkt - Huvudingångspunkten innehåller också handelsling som kontinuerligt pollar meddelandekön och skickar meddelanden till rätt komponent. Detta kallas ofta händelsesslingan eller händelseshanteraren. Vi kommer nu att diskutera genomförandet av koden i detalj. Längst ned i artikeln finns en fullständig lista över alla källkodsfiler. Om du placerar dem i samma katalog och kör python trading. py börjar du generera order, förutsatt att du har fyllt i ditt konto-ID och autentiseringstoken från OANDA. Python-implementering Det är dåligt att lagra lösenord eller autentiseringsnycklar inom en kodbas, eftersom du aldrig kan förutsäga vem som får slutligen få tillgång till ett projekt. I ett produktionssystem skulle vi lagra dessa referenser som miljövariabler med systemet och sedan fråga dessa envvars varje gång koden omfördelas. Detta säkerställer att lösenord och autotoken aldrig lagras i ett versionsstyrningssystem. Eftersom vi enbart är intresserade av att bygga ett leksakshandelssystem och inte är oroade över produktionsdetaljerna i den här artikeln kommer vi istället att skilja dessa autentoken till en inställningsfil. I följande settings. py konfigurationsfil har vi en ordbok med namnet MILJÖ som lagrar API-ändpunkterna för både OANDA-prisöverförings API och handels API. Varje delordbok innehåller tre separata API-slutpunkter: real. träning och sandlåda. Sandbox API är enbart för testkod och för att kontrollera att det inte finns några fel eller fel. Det har inte uppehållstillstånd för de riktiga eller praktiska API: erna. Practice API, i huvudsak, ger möjlighet till pappershandel. Det innebär att det ger alla funktioner i det verkliga API-en på ett simulerat träningskonto. Det verkliga API är just det - det är live trading Om du använder den slutpunkten i din kod kommer den att handla mot ditt livekontosaldo. VAR MYCKET NÄRVÄNDIG VIKTIGT: När du handlar mot övnings API kommer du ihåg att en viktig transaktion kostar, det som påverkar marknaden. beaktas inte. Eftersom inga affärer faktiskt placeras i miljön måste denna kostnad redovisas på ett annat sätt på annat håll med hjälp av en marknadsimpactmodell om du vill realistiskt bedöma prestanda. I det följande använder vi övningskontot som ges av DOMAIN-inställningen. Vi behöver två separata ordböcker för domänerna, en vardera för streaming och trading API-komponenter. Slutligen har vi ACCESSTOKEN och ACCOUNTID. Ive fyllde de två nedan med dummy-ID-er, så du måste använda din egen, som kan nås från OANDA-kontosidan: Nästa steg är att definiera händelser som köen ska använda för att hjälpa alla enskilda komponenter att kommunicera. Vi behöver två: TickEvent och OrderEvent. Den första lagrar information om instrumentmarknadsdata som (bäst) budskapet och handelstiden. Den andra används för att överföra order till exekveringshanteraren och innehåller sålunda instrumentet, antalet enheter att handla, ordertypen (marknad eller gräns) och sidan (dvs köp och sälj). För framtidssäkra vår händelsekod kommer vi att skapa en basklass som heter Event och har alla händelser arv från detta. Koden finns nedan i händelser. py: Nästa klass vi ska skapa kommer att hantera handelsstrategin. I den här demonstrationen kommer vi att skapa en ganska nonsensisk strategi som helt enkelt tar emot alla markpinnar och varje femte kryssning köper eller säljer 10.000 enheter av EURUSD. Tydligen är det en löjlig strategi Men det är fantastiskt för teständamål eftersom det är enkelt att koda och förstå. I framtida dagboksposter kommer vi att ersätta detta med något betydligt mer spännande som kommer att (förhoppningsvis) göra en vinst. Strategy. py-filen finns nedan. Låt oss arbeta igenom det och se vad som händer. För det första importerar vi det slumpmässiga biblioteket och OrderEvent-objektet från events. py. Vi behöver den slumpmässiga lib för att välja en slumpmässig köp - eller säljorder. Vi behöver OrderEvent eftersom det här är hur strategibjektet skickar order till händelsekön, som senare kommer att köras av exekveringshanteraren. Klassen TestRandomStrategy tar helt enkelt instrumentet (i detta fall EURUSD), antalet enheter och händelsekön som en uppsättning parametrar. Den skapar sedan en ticks counter som används för att berätta hur många TickEvent-instanser den har sett. Det mesta av arbetet sker i beräkningsignalmetoden, som helt enkelt tar en händelse, bestämmer om det är en TickEvent (annars ignorerar) och ökar tick-räknaren. Den kontrollerar sedan för att se om räkningen är delbar med 5 och sedan slumpmässigt köper eller säljer, med en marknadsordning, det angivna antalet enheter. Det är verkligen inte världens största handelsstrategi, men det kommer att vara mer än lämpligt för våra OANDA-mäklare API-teständamål. Nästa komponent är exekveringshanteraren. Denna klass har till uppgift att agera på OrderEvent-instanser och göra förfrågningar till mäklaren (i detta fall OANDA) på ett dumt sätt. Det innebär att det inte finns någon riskhantering eller överbyggnad av potetkonstruktion. Exekveringshanteraren kommer enkelt att genomföra någon order som den har gett. Vi måste skicka all autentiseringsinformation till Exekveringsklassen, inklusive domänen (övning, verklig eller sandlåda), åtkomsttoken och konto-ID. Vi skapar sedan en säker anslutning med httplib. en av Pythons byggda i bibliotek. Det mesta av arbetet sker i exekuteorder. Metoden kräver en händelse som en parameter. Den bygger sedan två ordböcker - rubrikerna och parametrarna. Dessa ordböcker kommer då att kodas korrekt (delvis av urllib. Ett annat Python-bibliotek) som ska skickas som en HTTP POST-begäran till OANDAs API. Vi skickar parametrarna Content Type och Authorization, som inkluderar vår autentiseringsinformation. Dessutom kodar vi parametrarna, som inkluderar instrumentet (EURUSD), enheter, ordertyp och sida (buysell). Slutligen gör vi förfrågan och sparar svaret: Den mest komplexa delen av handelssystemet är StreamingForexPrices-objektet, som hanterar marknadsprisuppdateringarna från OANDA. Det finns två metoder: connecttostream och streamtoqueue. Den första metoden använder Python-förfrågningsbiblioteket för att ansluta till ett strömmande uttag med lämpliga rubriker och parametrar. Parametrarna inkluderar konto-ID och den nödvändiga instrumentlistan som ska lyssnas till för uppdateringar (i det här fallet är det bara EURUSD). Notera följande rad: Detta berättar att anslutningen ska strömma och därmed hållas öppen på ett långvarigt sätt. Den andra metoden, streamtoqueue. försöker verkligen ansluta till strömmen. Om svaret inte lyckas (det vill säga svarskoden är inte HTTP 200), så returnerar vi helt enkelt och avslutar. Om det lyckas försöker vi ladda JSON-paketet som returneras till en Python-ordlista. Slutligen konverterar vi Python-lexikonet med instrumentet, budskapet och tidstämpeln till ett TickEvent som skickas till händelsekön: Vi har nu alla huvudkomponenter på plats. Det sista steget är att paketera upp allt vi har skrivit hittills i ett huvudprogram. Målet med den här filen, som kallas trading. py. är att skapa två separata trådar. varav den ena driver prissättaren och den andra som driver handelshanteraren. Varför behöver vi två separata trådar Enkelt så utför vi två separata kodstycken, som båda löper kontinuerligt. Om vi ​​skulle skapa ett icke-gängat program, skulle strömmenheten som används för prissättning uppdateringar aldrig någonsin släppa tillbaka till huvudkodsstigen och därför skulle vi aldrig faktiskt utföra någon handel. På samma sätt, om vi sprang affärslingan (se nedan), skulle vi aldrig faktiskt återvända flödesbanan till prisströmmar. Därför behöver vi flera trådar, en för varje komponent, så att de kan utföras självständigt. De kommer båda att kommunicera med varandra via evenemangskön. Låt oss undersöka detta lite längre. Vi skapar två separata trådar med följande rader: Vi överför funktions - eller metodnamnet till målordsordsargumentet och skickar sedan en iterbar (till exempel en lista eller tupel) till args-nyckelordsargumentet, som sedan skickar dessa argument till den faktiska metodfunktionen . Slutligen startar vi båda trådarna med följande rader: Således kan vi springa två, effektivt oändliga looping, kodsegment självständigt, vilka båda kommunicerar genom händelsekön. Observera att Python Threading-biblioteket inte producerar en sann multi-core multithreaded miljö på grund av CPython-implementeringen av Python och Global Interpreter Lock (GIL). Om du vill läsa mer om multithreading på Python, ta en titt på den här artikeln. Låt oss undersöka resten av koden i detalj. För det första importerar vi alla nödvändiga bibliotek, inklusive kö. gängning och tid. Vi importerar sedan alla ovanstående kodfiler. Jag föredrar personligen att kapitalisera alla konfigurationsinställningar, vilket är en vana jag hämtade upp från att arbeta med Django. Efter det definierar vi handelsfunktionen, som förklarades i Python-pseudokod ovan. En oändlig stundslinga utförs (medan True:) som kontinuerligt pollar från händelsekön och hoppar bara om slingan om den är tom. Om en händelse hittas är det antingen en TickEvent eller en OrderEvent och då kallas lämplig komponent för att utföra det. I det här fallet är det antingen en strategi eller exekveringshanterare. Slingan sover då enkelt för hjärtslags sekunder (i detta fall 0,5 sekunder) och fortsätter. Slutligen definierar vi huvudkoden för koden i huvudfunktionen. Det är väl kommenterat nedan, men jag kommer att sammanfatta här. I huvudsak instanserar vi händelsekön och definierar instrumentenheterna. Vi skapar sedan StreamingForexPrices prisströmmande klass och sedan Exekveringsexekveringshanteraren. Båda får de nödvändiga autentiseringsuppgifter som ges av OANDA när de skapar ett konto. Vi skapar då TestRandomStrategy-förekomsten. Slutligen definierar vi de två trådarna och startar dem: För att köra koden behöver du helt enkelt placera alla filer i samma katalog och ringa följande på terminalen: Observera att för att stoppa koden på detta stadium krävs en hård död av Python-processen. via Ctrl-Z eller motsvarande Jag har inte lagt till en extra tråd för att hantera letar efter sys. exit () som skulle behövas för att stoppa koden på ett säkert sätt. Ett potentiellt sätt att stoppa koden på en UbuntuLinux-maskin är att skriva: Och sedan mata utmatningen av detta (ett processnummer) till följande: Där PROCESSID måste bytas ut med utmatningen från pgrep. Observera att detta inte är särskilt bra. I senare artiklar kommer vi att skapa en mer sofistikerad stopstart-mekanism som använder sig av Ubuntus processövervakning för att handelssystemet ska kunna köra 247. Utgången efter 30 sekunder eller så, beroende på tiden för dag i förhållande till de viktigaste handelstiderna för EURUSD, för ovanstående kod, ges nedan: De fem första raderna visar JSON-kryssdata returnerad från OANDA med budpris. Därefter kan du se Exekveringsorderutgången samt JSON-svaret som returneras från OANDA, vilket bekräftar öppnandet av en köphandel för 10 000 enheter av EURUSD och priset som uppnåddes på. Detta fortsätter att löpa på obestämd tid tills du dödar programmet med ett Ctrl-Z-kommando eller liknande. Vad är nästa? I senare artiklar kommer vi att utföra några nödvändiga förbättringar, bland annat: Verkliga strategier - Korrekt Forex-strategier som ger lönsamma signaler. Produktion infrastruktur - Remote server implementering och 247 övervakade handelssystem, med stopstart kapacitet. Portfölj och riskhantering - Portfölj - och risköverlagringar för alla förslag till order från strategin. Flera strategier - Konstruera en portfölj av strategier som integreras i riskhanteringsöverläggningen Som med aktiehändelsesdrivna backtester behöver vi också skapa en forex-backtesting-modul. Det gör att vi kan göra snabb forskning och göra det lättare att distribuera strategier. settings. py (kom ihåg att ändra ACCOUNTID och ACCESSTOKEN): Kom precis igång med kvantitativ handel

No comments:

Post a Comment