Thursday 16 November 2017

Oanda forex trading api


Punkty końcowe dla laboratoriów Forex Zwracają informacje o kalendarzu gospodarczym trwającym do 1 roku, istotne dla danego instrumentu. Na przykład, jeśli instrumentem jest EURUSD, zostaną uwzględnione wszystkie informacje ekonomiczne istotne dla Euro i dolara amerykańskiego. Niektóre z nich to ścisłe informacje o ważnym spotkaniu, inne wpisy mogą zawierać dane wskaźników ekonomicznych. Instrument parametru kwerendy wejściowej: Opcjonalne Nazwa instrumentu do pobierania danych kalendarza. Obsługiwane są wszystkie transakcyjne instrumenty. Jeśli zostanie to pominięte, informacje o wszystkich zbywalnych instrumentach zostaną zwrócone. period: Required Okres czasu w sekundach umożliwiający pobieranie danych kalendarza. Wartości nie wymienione na poniższej liście zostaną automatycznie dostosowane do najbliższej wartości prawidłowej. Prawidłowe wartości to: 3600 - 1 godzina 43200 - 12 godzin 86400 - 1 dzień 604800 - 1 tydzień 2592000 - 1 miesiąc 7776000 - 3 miesiące 15552000 - 6 miesięcy 31536000 - 1 rok JSON Response Fields title: Tytuł wydarzenia. timestamp: czas zdarzenia, zwrócony jako czas uniksowy. jednostka: To pole opisuje dane znalezione w prognozie. poprzednio. rzeczywistych i rynkowych. Niektóre możliwe wartości to: oznacza to, że dane są procentami, k oznacza tysiące jednostek lub puste, jeśli nie ma danych związanych z wydarzeniem. waluta: jest to waluta, na którą ma wpływ wydarzenie wiadomości. Prognoza: przewidywana wartość. previous: Pokazuje wartość poprzedniego wydania tego samego zdarzenia. rzeczywisty: rzeczywista wartość jest dostępna dopiero po zdarzeniu. rynek: oczekiwanie rynku na wartość. Zwraca do 1 roku wartości informacji rozproszonej dla obsługiwanego instrumentu. Zwrócone dane są dzielone w odstępach co 15 minut. Dla każdego okresu zapewniamy średnie ważone, minimalne i maksymalne rozprzestrzenianie. Więcej informacji na naszej stronie Forex Labs. Parametr kwerendy wejściowej instrument: Wymagane Nazwa instrumentu do pobierania danych rozproszenia. Obsługiwane są wszystkie transakcyjne instrumenty. period: Wymagany okres czasu w sekundach, aby pobrać dane rozprzestrzeniania dla. Wartości nie wymienione na poniższej liście zostaną automatycznie dostosowane do najbliższej wartości prawidłowej. Prawidłowe wartości to: 3600 - 1 godzina 43200 - 12 godzin 86400 - 1 dzień 604800 - 1 tydzień 2592000 - 1 miesiąc 7776000 - 3 miesiące 15552000 - 6 miesięcy 31536000 - 1 rok unikalny: Opcjonalnie Ten parametr określa, czy zwrócić identyczne sąsiednie produkty do smarowania. Jeśli 0, wszystkie spready są zwracane. Jeśli 1, pomijane są duplikaty duplikatów. Służy do zmniejszenia zużycia pasma. Wartością domyślną dla unikatowego jest 1, jeśli nie określono unikatowego parametru. Pola odpowiedzi JSON Główna odpowiedź hash ma 3 klucze: max, min i średnio. Odpowiednio do tych 3 klawiszy są tablice wpisów rozproszonych. max: maksimum rozproszenia w odstępach 15-minutowych. Min: Minimalne rozproszenie w odstępach 15-minutowych. średnio: średnie różnice w odstępach co 15 minut. timestamp: Jest to pierwsze pole tablicy, reprezentujące czas pod koniec 15 minutowego odstępu, zwracane jako uniksowy timestamp. spread: Jest to drugie pole tablicy, reprezentujące rozpiętość w odstępie 15-minutowym. Parametr kwerendy wejściowej instrument: Wymagane Nazwa instrumentu do pobierania danych z książki telefonicznej. Obsługiwane instrumenty: AUDJPY, AUDUSD, EURAUD, EURCHF, EURGBP, EURJPY, EURUSD, GBPCHF, GBPJPY, GBPUSD, NZDUSD, USDCAD, USDCHF, USDJPY, XAUUSD, XAGUSD. period: Wymagany Okres czasu w sekundach umożliwiający pobieranie danych z książki telefonicznej. Wartości nie wymienione na poniższej liście zostaną automatycznie dostosowane do najbliższej wartości prawidłowej. Prawidłowe wartości to: 3600 - 1 godzina - 20 minut migawek 21600 - 6 godzin - 20 minut migawek 86400 - 1 dzień - 2 godziny migawek 604800 - 1 tydzień - dwie codzienne migawki o 04:00 i 16:00 GMT 2592000 - 1 miesiąc - Migawki 1 dzień o godzinie 16:00 GMT 31536000 - 1 rok - migawki z pierwszego miesiąca o godzinie 12:00 GMT Pola odpowiedzi JSON Odpowiedź składa się z par klucz-wartość. Każdy klucz jest uniksowym sygnaturą czasową migawki. Każda migawka składa się z mieszania punktów cenowych i wpisu do ceny. Każdy punkt cenowy jest parą wartości kluczowej. Wprowadzanie kursów jest ceną rynkową w momencie migawki. os: Odsetki krótkich zamówień ol: Odsetki długich zamówień ps: Odsetki krótkich pozycji pl: Odsetki długich pozycji: to jest stawka w tym konkretnym czasie Wzorce autochartistyczne Zwraca nasze ulubione sygnały z Autochartist. Te sygnały mogą być wzorem wykresu lub kluczowym poziomem. Wzory wykresu składa się z górnej i dolnej linii tworzącej wzór, czasu zakończenia wzorca i pola premiksu. Poziomy kluczowe mają tylko poziom cen. Parametry zapytania do zapytania Następujące parametry są opcjonalne. Jeśli nie zostaną określone żadne parametry, wszystkie bieżące wzorce Ulubione i kluczowe poziomy zostaną zwrócone. Wzory te są aktualizowane co 15 minut. instrument: Opcjonalne Nazwa instrumentu, aby pobrać wzorce dla. Okres: Opcjonalny Wiek wzoru w sekundach do wyszukania. Prawidłowe wartości to: jakość: opcjonalna Jakość wzoru wykresu, który ma zostać wyszukany. Prawidłowe wartości to: 1, 2, 3. 10 typów. Opcjonalny typ wzoru do wyszukania. Prawidłowe wartości to: chartpattern - zwraca tylko wzorce wykresu, takie jak kliny, kanały, klasa klawiszy itd. - zwraca tylko kluczowe poziomy, takie jak opór, linie wsparcia. kierunek: opcjonalny Kierunek wzoru do wyszukania. Poprawne wartości to: uproszczone pola odpowiedzi JSON dla wzorca wykresu meta. zakończyła się meta danych. 1, jeśli sygnał jest zakończony, 0, jeśli pojawia się sygnał. Dane Autochartists o tej jednolitej jakości sygnału. wartości wynoszą 1. 10 jakość. wartości to 1. 10 breakout. wartości są 1. 10 początkowe. wartości to 1. 10 przejrzystości. wartości są 1. 10 prawdopodobieństwem. prawdopodobieństwo sukcesu dla tego sygnału, maks. 100 odstępów. granularność świecznika tego wzoru, w minutach, 60 to kierunek 1 godziny. kierunek tego wzoru, 1 jest uparty, -1 jest niechcianym wzorem. długość nazwy wzoru. liczba świec, nad którymi powstał wzorzec historycznych znaków. statystyki historyczne oparte na godzinie dnia, typie wzoru i symbolu hourofday. historyczne statystyki oparte na łącznej sumie godzin. całkowite wzorce, dla których statystyki czasu dziennego są oparte na procentach. procent sukcesu według godziny dziennie (poprawna suma), maks. 100 poprawnych. liczba poprawnych przewidywań według wzoru dnia. historyczne statystyki oparte na sumie typu wzoru. 2917 całkowitych wzorców dla procentowego typu wzoru. 64.45 procent sukcesu według typu wzoru (correcttotal), maks. 100 poprawnych. 1880 liczba poprawnych przewidywań według symbolu typu wzoru. historyczne statystyki oparte na sumie symboli. całkowite wzory dla procentu symboli. procent sukcesu poprzez symbol (correcttotal), max 100 poprawne. liczba poprawnych przewidywań według symbolu trendtype. typ trendu, ciąg dalszy lub odwrotny id. Narzędzie identyfikatora wzoru Autochartist. typ nazwy przyrządu. typ wzorca, wzornik wykresu lub wzorzec klucza danych. znacznik czasu unix wskazujący koniec oporu punktów wzoru. górna część wzoru x0. x0 i x1 są w uniksowym znaczniku czasowym x1. y0 i y1 są wartościami cenowymi. dolna część wzoru x0. x0 i x1 są w uniksowym znaczniku czasowym x1. y0 i y1 są predykcją wartości cen. informacje o przewidywaniu, pojawiają się tylko wtedy, gdy wzorzec jest kompletny. najwcześniejszego znaczka czasu uniksowego (po lewej stronie) w polu cen predykcji. najnowszy znacznik czasu uniksowego (po prawej stronie) ceny pola predykcyjnego cenowo. górna strona cennika predykcyjnego pricelow. dolna strona dostawcy pola premiowego. nazwa dostawcy sygnału Response Wykresy danych w polu odpowiedzi na JSON dla sygnałów o kluczu kluczowym. każdy wpis jest sygnałem meta obiektu. zakończyła się meta danych. 1, jeśli sygnał jest zakończony, 0, jeśli pojawia się sygnał. Autochartists metrics o tej jakości sygnału jakość. wartości to 1. 10 wzorców. typ wzoru, prawdopodobieństwo osiągnięcia lub zerwania. prawdopodobieństwo sukcesu dla tego sygnału, maks. 100 odstępów. granularność świecową tego wzoru w minutach, 240 oznacza kierunek 6 godzin. kierunek tego wzoru, 1 jest uparty, -1 jest niechcianym wzorem. długość nazwy wzoru. liczba świec, nad którymi wzór utworzył historyczną historię. historycznych statystyk, zobacz Diagram w celu uzyskania szczegółów. Przyrząd ID wzoru Autochartis. typ nazwy przyrządu. typ wzorca, dane wykresu lub klucza: cena. cena za wzorzec czasowego. uniksowy znacznik czasu zakończenia tego wzoru punkty: keelt. do 10 znaczników czasu uniksowego dla tego wzoru 1. w tym przykładzie dostępne są 4 kluczowe znaczniki czasu, dostępne informacje o przewidywaniu przewidywania, pojawiają się tylko wtedy, gdy wzorzec jest kompletny. najwcześniejszego znaczka czasu uniksowego (po lewej stronie) w polu cen predykcji. ostatni znacznik czasowy uniks (po prawej stronie) pasków czasu przedziału cen predykcji. liczba świec do trafienia ceny predykcji po wzorcu jest uznawana za wysoką cenę. górna strona cennika predykcyjnego pricelow. dolna strona oknie cenowym przewidywania Klucz odpowiedzi LevelOANDA 1080108910871086108311001079109110771090 10921072108110831099 cookie 10951090108610731099 1089107610771083107210901100 1085107210961080 10891072108110901099 10871088108610891090109910841080 1074 1080108910871086108311001079108610741072108510801080 1080 108510721089109010881086108010901100 10801093 10891086107510831072108910851086 108710861090108810771073108510861089109011031084 10851072109610801093 10871086108910771090108010901077108310771081. 10601072108110831099 cookies 10851077 10841086107510911090 1073109910901100 108010891087108610831100107910861074107210851099 107610831103 109110891090107210851086107410831077108510801103 10741072109610771081 10831080109510851086108910901080. 1055108610891077109710721103 108510721096 1089107210811090, 10741099 108910861075108310721096107210771090107710891100 1089 10801089108710861083110010791086107410721085108010771084 OANDA8217 109210721081108310861074 plik cookie 1074 10891086108610901074 1077109010891090107410801080 1089 10851072109610771081 105510861083108010901080108210861081 108210861085109210801076107710851094108010721083110010851086108910901080. 1048108510891090108810911082109410801080 10871086 107310831086108210801088108610741072108510801102 1080 10911076107210831077108510801102 109210721081108310861074 cookie 1072 10901072108210781077 1091108710881072107410831077108510801102 108010841080 108710881080107410771076107710851099 10851072 10891072108110901077 aboutcookies. org. 1042 108910831091109510721077 10861075108810721085108010951077108510801103 1080108910871086108311001079108610741072108510801103 109210721081108310861074 cookies 108610871088107710761077108310771085108510991077 1092109110851082109410801080 108510721096107710751086 10891072108110901072 10731091107610911090 1085107710761086108910901091108710851099. 104710721075108810911079108010901100 108410861073108010831100108510991077 1087108810801083108610781077108510801103 1042109310861076 1042109910731088107210901100 1089109510771090 ampltiframe src4489469.fls. doubleclickactivityisrc4489469typenewsi0catoanda0u1fxtradeiddclatdcrdidtagforchilddirectedtreatmentord1num1 mcesrc4489469.fls. doubleclickactivityisrc4489469typenewsi0catoanda0u1fxtradeiddclatdcrdidtagforchilddirectedtreatmentord1num1 width1 height1 frameborder0 styledisplay: brak mcestyledisplay: noneampgtampltiframeampgt 1055108610871088108610731091108110901077 1085107210961080 1087108810801079108510721085108510991077 109010861088107510861074109 91077 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 108210861085109010881072108 21090107210841080 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, 10721 0741090108610841072109010801079108010881086107410721085108510991081 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 10 7610771087108610791080109010861074 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 108710861089109010881086107710851080 1103 10751088107210921080108210861074 1080 109010771093108510801095107710891082108610751086 1072108510721083108010791072. 105510861089108310771076108510801077 1085108610741086108910901080 1080 push-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: 110110901086 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. Tydzień Ahead Praca i Fedspeak aby poprowadzić Dollar szybki, łatwy amp w podróży . Ruchoma platforma OANDA ma wszystko, czego potrzebują zaawansowani handlowcy w jednym widoku. t. co3yH9venuZPForex Trading Diary 1 - Automatyczny Handel Forex z OANDA API Wspomnieliśmy wcześniej w artykule QuantStart: 2017 W artykule przeglądu, na którym opublikowałbym około 2018 pisania o automatycznym handlu forex. Biorąc pod uwagę, że ja zwykle przeprowadzam badania na rynkach akcji i rynkach kontraktów terminowych, myślałem, że byłoby zabawne (i edukacyjne) pisanie o moich doświadczeniach związanych z wejściem na rynek forex w stylu pamiętnika. Każdy wpis w dzienniku będzie próbował wykorzystać te wszystkie wcześniej, ale powinien być stosunkowo samowystarczalny. W tym pierwszym wpisie pamiętnika Ill opisuje jak założyć nowe konto pośrednictwa w praktyce z OANDA oraz jak stworzyć podstawowy wielowątkowy silnik handlu zdarzeniami, który może automatycznie wykonywać zawody w praktyce i na żywo. W zeszłym roku spędziliśmy dużo czasu patrząc na zdarzenie oparte na backtesterze. przede wszystkim na akcje i ETF. Ten, który przedstawię poniżej, jest ukierunkowany na forex i może być używany do obrotu papierem lub handlu na żywo. Napisałem wszystkie poniższe instrukcje dotyczące Ubuntu 14.04, ale powinny one łatwo przetłumaczyć na system Windows lub Mac OS X, używając dystrybucji Pythona, takiej jak Anaconda. Jedyną dodatkową biblioteką używaną do silnika handlu Python jest biblioteka żądań, która jest niezbędna do komunikacji HTTP z interfejsem API OANDA. Ponieważ jest to pierwszy post bezpośrednio dotyczący handlu zagranicznego, a przedstawiony poniżej kod może być bezpośrednio dostosowany do żywych warunków handlowych, chciałbym przedstawić następujące zastrzeżenia: Zastrzeżenie: Handel walutami obcymi na marży wiąże się z wysokim poziomem ryzyka, i może nie być odpowiedni dla wszystkich inwestorów. Dotychczasowe wyniki nie wskazują na przyszłe wyniki. Wysoki stopień dźwigni może działać zarówno przeciwko tobie, jak i dla Ciebie. Przed podjęciem decyzji o inwestowaniu w walutę obcą należy dokładnie rozważyć cele inwestycyjne, poziom doświadczenia i apetyt na ryzyko. Istnieje prawdopodobieństwo, że można podtrzymać stratę jakiejś lub całości inwestycji początkowej, a zatem nie należy inwestować pieniędzy, których nie można sobie pozwolić na stracenie. Powinieneś być świadomy wszystkich ryzyk związanych z obrotem dewizowym i zasięgnąć porady niezależnego doradcy finansowego, jeśli masz jakieś wątpliwości. Niniejsze oprogramowanie jest dostarczane w takim stanie, jak i wszelkie wyraźne lub dorozumiane gwarancje, w tym między innymi dorozumiane gwarancje dotyczące sprzedaży i przydatności do określonego celu. W żadnym wypadku regenci ani podmioty przekazujące dane nie ponoszą odpowiedzialności za żadne bezpośrednie, pośrednie, przypadkowe, szczególne, przykładowe lub wynikowe szkody (w tym, między innymi, zamawianie towarów lub usług zastępczych, utratę praw do użytkowania, danych lub zysków lub przerwę w działalności gospodarczej; ) jednak spowodowane i na jakiejkolwiek teorii odpowiedzialności, czy to w umowie, odpowiedzialności bezpośredniej lub deliktowej (w tym zaniedbaniu lub w inny sposób) powstałej w wyniku korzystania z tego oprogramowania, nawet jeśli powiadomiono o możliwości wystąpienia takiej szkody. Konfigurowanie konta w OANDA Pierwsze pytanie, o którym warto wspomnieć, jest Dlaczego wybrać OANDA. Mówiąc po kawałku Googlinga dla maklerów z forexami, które miały API, zobaczyłem, że firma OANDA wydała niedawno odpowiedni interfejs REST, który można łatwo komunikować z niemal każdego języka w bardzo prosty sposób. Po przeczytaniu ich dokumentacji API programisty. Postanowiłem spróbować, przynajmniej z kontem ćwiczeń. Żeby było jasne - nie mam żadnych wcześniejszych lub istniejących relacji z OANDA i przekazuję tę rekomendację wyłącznie na podstawie mojego ograniczonego doświadczenia, bawiąc się ich praktycznym interfejsem API i krótkim wykorzystaniem (do pobierania danych rynkowych), podczas gdy poprzednio pracowałem w funduszu. Jeśli ktoś natknął się na inne forex brokerów, które mają również podobne API, a następnie Id chętnie da im też spojrzenie. Przed użyciem interfejsu API konieczne jest zarejestrowanie konta ćwiczeń. W tym celu przejdź do linku rejestracji. Pojawi się następujący ekran: będziesz mógł się zalogować za pomocą poświadczeń logowania. Na ekranie logowania wybierz kartę fxTraderPractice: raz musisz wprowadzić notatkę swojego identyfikatora konta. Jest on umieszczony pod czarnym nagłówkiem My Funds obok pozycji Primary. Kopalnia ma 7-cyfrową liczbę. Dodatkowo musisz wygenerować osobisty token API. Aby to zrobić, kliknij Zarządzaj dostępem API pod kartą Inne działania w lewym dolnym rogu: Na tym etapie będziesz mógł wygenerować token API. Potrzebny jest klucz do użycia później, więc pamiętaj, aby go zapisać. Teraz chcesz uruchomić aplikację FXTrade Practice, która pozwoli nam zobaczyć zrealizowane zlecenia i naszą (papierową stratę zysków). Jeśli używasz systemu Ubuntu, musisz zainstalować nieco inną wersję Javy. W szczególności wersja Oracle Javy 8. Jeśli nie zrobisz tego, symulator ćwiczeń nie zostanie załadowany z przeglądarki. W moim systemie uruchomiłem te polecenia: teraz będziesz mógł uruchomić środowisko handlu praktykami. Wróć do pulpitu nawigacyjnego OANDA i kliknij zielony podświetlony link Launch FXTrade Practice. Spowoduje to wyświetlenie okna dialogowego Java z pytaniem, czy chcesz go uruchomić. Kliknij przycisk Uruchom i załadujesz narzędzie fxTrade Practice. Moja kopia została pominięta na 15-minutowym wykresie świec w EURUSD z panelem wyceny po lewej: W tym momencie jesteśmy gotowi rozpocząć projektowanie i kodowanie naszego automatycznego systemu handlu forex w stosunku do OANDA API. Przegląd architektury handlowej Jeśli kierował się zdarzeniem seria backtesterów na akcje i ETF, które stworzyłem w zeszłym roku, będziesz świadomy, jak funkcjonuje taki system obsługi zdarzeń. Dla tych, którzy są nowi w oprogramowaniu opartym na zdarzeniach. Gorąco polecam przeczytanie artykułu, aby uzyskać jak najwięcej wiedzy na temat ich działania. W istocie cały program jest wykonywany w pętli infinite, która kończy się tylko wtedy, gdy system handlu jest wyłączony. Centralny mechanizm komunikacyjny programu jest przekazywany przez kolejkę zawierającą zdarzenia. Kolejka jest stale sprawdzana w celu sprawdzenia nowych wydarzeń. Gdy zdarzenie zostanie usunięte z góry kolejki, musi być obsługiwane przez odpowiedni składnik programu. Stąd kanał danych rynkowych może utworzyć TickEvent s, które są umieszczane w kolejce, gdy pojawi się nowa cena rynkowa. Obiekt strategii generowania sygnału może utworzyć sekwencje OrderEvent, które mają zostać wysłane do pośrednictwa. Użyteczność tego systemu wynika z faktu, że niezależnie od tego, jaki porządek lub rodzaje zdarzeń są umieszczane w kolejce, zawsze będą prawidłowo obsługiwane przez właściwy komponent programu. Ponadto różne części programu mogą być uruchamiane w oddzielnych wątkach. co oznacza, że ​​nie trzeba czekać na jakiś konkretny składnik przed przetwarzaniem jakichkolwiek innych. Jest to niezwykle użyteczne w sytuacjach handlu algorytmicznego, w których generatory danych danych rynkowych i generatory sygnałów strategicznych mają bardzo różne właściwości wydajnościowe. Główna pętla transakcyjna jest podawana przez następujący pseudo-kod Pythona: jak wspomniano powyżej, kod działa w nieskończonej pętli. Po pierwsze kolejka jest odpytywana w celu pobrania nowego zdarzenia. Jeśli kolejka jest pusta, pętla po prostu uruchamia się ponownie po krótkim okresie snu znanym jako bicie serca. Jeśli zdarzenie zostanie odnalezione, jego typ zostanie oceniony, a następnie wezwany jest odpowiedni moduł (strategia lub wykonawca) do obsługi zdarzenia i ewentualnie generuje nowe, które wracają do kolejki. Podstawowe składniki, które utworzymy dla naszego systemu handlowego, obejmują: Handler ceny za przesyłanie strumieniowe - zachowuje długotrwałe połączenie otwarte dla serwerów OANDAs i wysyła dane dotyczące kresek (tzn. Bidask) w połączeniu z wszystkimi zainteresowanymi instrumentami. Generator sygnałów strategicznych - potrwa sekwencję zdarzeń typu tick i użyje ich do generowania zleceń handlowych, które będą wykonywane przez operatora obsługi. Wykonywanie czynności - podejmuje zestaw zdarzeń zamówienia, a następnie ślepo je wykonuje z OANDA. Zdarzenia - obiekty te stanowią komunikaty przekazywane w kolejce zdarzeń. Do tej implementacji potrzebujemy tylko dwóch, a mianowicie TickEvent i OrderEvent. Główny punkt wejścia - główny punkt wejścia obejmuje również pętlę handlową, która nieustannie sprawdza kolejkę komunikatów i wysyła wiadomości do poprawnego składnika. Często jest to pętla zdarzenia lub obsługi zdarzeń. Omówimy teraz szczegółowo implementację kodu. W dolnej części artykułu znajduje się pełna lista wszystkich plików kodu źródłowego. Jeśli umieścisz je w tym samym katalogu i uruchom uruchomienie python trading. py, zaczniesz generować zlecenia, zakładając, że wypełniłeś ID swojego konta i tokenu uwierzytelniającego z OANDA. Implementacja Pythona Zła praktyka polega na przechowywaniu haseł lub kluczy uwierzytelniających w bazie kodu, ponieważ nigdy nie można przewidzieć, kto będzie w końcu mógł uzyskać dostęp do projektu. W systemie produkcyjnym będziemy przechowywać te poświadczenia jako zmienne środowiskowe w systemie, a następnie zapytać te envvars za każdym razem, gdy kod zostanie przesunięty. Zapewnia to, że hasła i identyfikatory autentyczności nigdy nie są przechowywane w systemie kontroli wersji. Ponieważ jednak interesuje nas tylko budowanie systemu handlu zabawkami i nie dotyczy szczegółów produkcji w tym artykule, zamiast tego oddzielić te pliki tożsamości do pliku ustawień. W następującym pliku konfiguracyjnym settings. py mamy słownik zwany ŚRODOWISKO, które przechowuje punkty końcowe interfejsu API zarówno dla interfejsu API cen transakcyjnych OANDA, jak i interfejsu API handlu. Każdy słownik podrzędny zawiera trzy różne punkty końcowe interfejsu API: prawdziwe. praktyce i piaskownicy. Sandbox API jest przeznaczony wyłącznie do testowania kodu i sprawdzania, czy nie ma błędów ani błędów. Nie ma gwarancji dostępności rzeczywistych lub praktycznych interfejsów API. Praktyka API w zasadzie zapewnia możliwość handlu papierem. Oznacza to, że zawiera wszystkie funkcje prawdziwego API na symulowanym koncie ćwiczeń. Prawdziwym interfejsem API jest to, że jest to handel na żywo Jeśli użyjesz tego punktu końcowego w kodzie, będzie on działał na Twoim koncie na koncie. BARDZO UWADZUJĄCE SIĘ: Podczas handlu z praktyką API pamiętaj, że ważny koszt transakcji, wpływ na rynek. nie jest brane pod uwagę. Ponieważ transakcje nie są rzeczywiście wprowadzane do środowiska, koszt ten należy rozliczać w inny sposób gdzie indziej, używając modelu wpływu na rynek, jeśli chcesz realistycznie ocenić wydajność. Poniżej używamy konta ćwiczeń podanego przez ustawienie DOMAIN. Potrzebujemy dwóch oddzielnych słowników dla domen, po jednym dla komponentów strumieniowych i handlowych. Wreszcie mamy ACCESSTOKEN i ACCOUNTID. Wypełniłem dwa poniżej identyfikatorami, więc trzeba będzie wykorzystać własne, które można uzyskać na stronie konta OANDA: Następnym krokiem jest zdefiniowanie zdarzeń, które kolejka używa, aby pomóc wszystkimi poszczególnym elementom komunikować się. Potrzebujemy dwóch: TickEvent i OrderEvent. Pierwsze przechowuje informacje o danych dotyczących rynku instrumentów, takich jak: (najlepiej) bidask i czas wymiany handlowej. Druga jest używana do przesyłania zamówień do obsługi wykonawczej, a zatem zawiera instrument, liczbę jednostek handlowych, rodzaj zlecenia (rynek lub limit) oraz z boku (tzn. Kupno i sprzedaż). Aby w przyszłości udowodnić nasz kod zdarzenia, utworzymy klasę bazową o nazwie Zdarzenie i wszystkie dziedziny zostaną odziedziczone. Kod jest podany poniżej w events. py: następna klasa, którą utworzymy, obsłuży strategię handlową. W tym demo zamierzamy stworzyć dość nonsensowną strategię, która po prostu otrzymuje wszystkie kleszcze rynkowe, a co 5-krotki losowo kupuje lub sprzedaje 10.000 jednostek EURUSD. Oczywiście jest to śmieszna strategia. Jednak jest ona fantastyczna dla celów testowych, ponieważ jest prosta w obsłudze kodu i zrozumienia. W przyszłych pamiętnikach będziemy zastąpić to coś znacznie bardziej ekscytującym, co przyniesie (miejmy nadzieję) zysk Z pliku strategii. py można znaleźć poniżej. Pozwól mi to sprawdzić i zobaczyć, co się dzieje. Najpierw importujemy losową bibliotekę i obiekt OrderEvent z event. py. Potrzebujemy losowego lib w celu wybrania losowego zamówienia kupna lub sprzedaży. Potrzebny jest OrderEvent, ponieważ ten obiekt strategiczny wysyła zlecenia do kolejki zdarzeń, które później będą obsługiwane przez operatora obsługi. Klasa TestRandomStrategy po prostu przyjmuje instrument (w tym przypadku EURUSD), liczbę jednostek i kolejkę zdarzeń jako zestaw parametrów. Następnie tworzy kreskę licznik, który jest używany do stwierdzenia, ile widzeń TickEvent widział. Większość pracy występuje w metodzie calculatesignals, która po prostu przyjmuje zdarzenie, określa, czy jest to TickEvent (w przeciwnym razie ignoruje) i zwiększa licznik tick. Następnie sprawdza, czy liczba jest podzielna na 5, a następnie losowo kupuje lub sprzedaje, z zamówieniem na rynek, określoną liczbę jednostek. Z pewnością nie jest to największa na świecie strategia handlowa, ale będzie to coś więcej niż nadaje się do celów testowania API dla pośredników w firmie OANDA Następnym składnikiem jest obsługi wykonawczej. Ta klasa ma zadanie działać na instancje OrderEvent i składać wnioski do brokera (w tym przypadku OANDA) w sposób głupi. Oznacza to, że nie ma pokrycia kosztów zarządzania ryzykiem ani potfolio. Operator wykonawczy będzie po prostu wykonał każde zlecenie, które zostało mu podane. Musimy przekazać wszystkie informacje uwierzytelniające do klasy Wykonanie, w tym domenę (praktyka, prawdziwa lub piaskownica), token dostępu i identyfikator konta. Następnie tworzymy bezpieczne połączenie z httplib. jeden z Pythonów wbudowanych w biblioteki. Większość pracy występuje w executeorder. Metoda wymaga zdarzenia jako parametru. Następnie konstruuje dwa słowniki - nagłówki i params. Te słowniki będą następnie poprawnie szyfrowane (częściowo przez bibliotekę urllib. Inną bibliotekę Pythona), które będą wysyłane jako żądanie HTTP POST do interfejsu API OANDAs. Przepuszczamy parametry nagłówka Content-Type i Authorization, które zawierają nasze informacje uwierzytelniające. Dodatkowo kodujemy parametry, w tym instrument (EURUSD), jednostki, typ zlecenia i stronę (buysell). Na koniec składamy wniosek i zapisujemy odpowiedź: Najbardziej skomplikowanym elementem systemu handlowego jest obiekt StreamingForexPrices, który obsługuje aktualizacje cen rynkowych firmy OANDA. Istnieją dwie metody: connecttostream i streamtoqueue. Pierwsza metoda używa biblioteki żądań Pythona do łączenia się z gniazdem transmisji strumieniowej z odpowiednimi nagłówkami i parametrami. Parametry zawierają Identyfikator konta i niezbędną listę instrumentów, które powinny być wysłuchane do aktualizacji (w tym przypadku jest to tylko EURUSD). Zauważ następującą linię: Powoduje, że połączenie ma być przesyłane strumieniowo, a tym samym pozostawione otwarte w długotrwały sposób. Druga metoda, streamtoqueue. faktycznie próbuje połączyć się ze strumieniem. Jeśli odpowiedź nie powiedzie się (tj. Kodem odpowiedzi nie jest protokołem HTTP 200), po prostu wracamy i kończymy. Jeśli się powiedzie, staramy się załadować zwrócony pakiet JSON do słownika Python. Na koniec konwertujemy słownik z Pythona przy użyciu przyrządu, talizera i znacznika czasu w TickEvent, który jest wysyłany do kolejki zdarzeń: teraz mamy wszystkie główne składniki w miejscu. Ostatnim krokiem jest zamknięcie wszystkiego, co napisaliśmy do tej pory, w programie głównym. Cel tego pliku, znany jako trading. py. jest utworzenie dwóch oddzielnych wątków. z których jedna uruchamia obsługę cenową, a druga uruchamia handler. Dlaczego potrzebujemy dwóch oddzielnych wątków Po prostu, wykonujemy dwa osobne fragmenty kodu, z których oba są ciągle uruchamiane. Gdybyśmy stworzyli program niegwintowany, to gniazdo strumieniowe używane do aktualizacji cen nigdy nie powróci do głównej ścieżki kodu, a zatem nigdy byśmy nigdy nie prowadzili żadnego obrotu. Podobnie, jeśli uruchomiliśmy pętlę handlową (patrz poniżej), nigdy nie powrócimy ścieżki przepływu do gniazda transmisji danych. W związku z tym potrzebujemy wielu wątków, po jednym dla każdego składnika, dzięki czemu mogą być wykonywane niezależnie. Będą komunikować się ze sobą za pośrednictwem kolejki zdarzeń. Pozwólcie sprawdzić to trochę dalej. Tworzymy dwa osobne wątki z następującymi liniami: przekazujemy nazwę funkcji lub metody do argumentu docelowego słowa kluczowego, a następnie przekazujemy numer iterowalny (taki jak lista lub krotka) do argumentu argumentu args, który następnie przekazuje te argumenty do faktycznej metodyfunkcji . Na koniec zaczynamy obydwa wątki z następującymi wierszami: dzięki temu możemy uruchomić dwa, skutecznie nieskończone pętlowanie, niezależnie od segmentów kodu, które komunikują się za pośrednictwem kolejki zdarzeń. Zauważ, że biblioteka wątków Pythona nie generuje prawdziwego wielowątkowego środowiska wielordzeniowego ze względu na implementację Python i CPYthon Global Głębokie interpreter (GIL). Jeśli chcesz przeczytać więcej o wielowątkowości w Pythonie, spójrz na ten artykuł. Pozwala szczegółowo zbadać resztę kodu. Po pierwsze importujemy wszystkie potrzebne biblioteki, w tym kolejkę. gwintowanie i czas. Następnie zaimportujemy wszystkie powyższe pliki kodu. Osobiście wolę wykorzystać wszelkie ustawienia konfiguracyjne, co jest zwyczajem, który podjąłem z pracy z Django. Następnie definiujemy funkcję handlową, która została wyjaśniona w Pythonie-pseudokodie powyżej. Nieskończona pętla while jest wykonywana (while True:), która ciągle odpytywuje się od kolejki zdarzeń i tylko pomija pętlę, jeśli jest pusta. Jeśli zdarzenie zostanie znalezione to jest to TickEvent lub OrderEvent, a następnie wywoływany jest odpowiedni składnik. W takim przypadku jest to strategia lub program obsługi. Pętla wtedy po prostu śpi na sekundę bicia serca (w tym przypadku 0,5 sekundy) i trwa. Na koniec definiujemy główny punkt wejścia kodu w funkcji głównej. Jest dobrze komentowane poniżej, ale podsumuję tutaj. W istocie budujemy kolejkę zdarzeń i określamy instrumenty. Następnie tworzymy klasę strumieni cenowych StreamingForexPrices, a następnie wykonanie obsługi wykonawczej. Obie otrzymują niezbędne informacje uwierzytelniania podane przez firmę OANDA podczas tworzenia konta. Następnie tworzymy instancję TestRandomStrategy. Na koniec definiujemy dwa wątki, a następnie je uruchamiamy: Aby uruchomić kod, wystarczy umieścić wszystkie pliki w tym samym katalogu i wywołać w terminalu: Należy pamiętać, że zatrzymanie kodu na tym etapie wymaga ciężkiego zabicia Proces w Pythonie. za pomocą Ctrl-Z lub odpowiednika Ive nie dodał dodatkowego wątku do obsługi, szukając sys. exit (), który byłby potrzebny do bezpiecznego zatrzymania kodu. Potencjalnym sposobem na zatrzymanie kodu na maszynie UbuntuLinux jest wpisanie: a następnie przekazać wynik tego (numeru procesowego) w następujący sposób: Jeśli PROCESSID musi zostać zastąpiony przez wyjście z pgrep. Zauważ, że nie jest to szczególnie dobra praktyka W późniejszych artykułach stworzymy bardziej wyrafinowany mechanizm stopstart, który wykorzystuje nadzór procesu Ubuntus w celu uruchomienia systemu handlowego 247. Wyjście po 30 sekundach, w zależności od czasu dzień w stosunku do głównych godzin handlowych EURUSD dla powyższego kodu przedstawiono w poniższej tabeli: pierwsze pięć wierszy przedstawia dane z kresek JSON zwrócone z OANDA z cenami bidasha. Następnie można zobaczyć wyjście zlecenia realizacji, jak również odpowiedź JSON z OANDA potwierdzającą otwarcie transakcji kupna na 10.000 jednostek EURUSD i cenę, jaką osiągnięto. To będzie działało na czas nieokreślony, dopóki nie zabijesz programu poleceniem Ctrl-Z lub podobnym. Co dalej W późniejszych artykułach będziemy przeprowadzać kilka niezbędnych ulepszeń, w tym: Prawdziwe strategie - właściwe strategie forex generujące zyskowne sygnały. Infrastruktura produkcyjna - zdalne wdrożenie serwera i 247 monitorowany system handlu, z możliwością stopstart. Portfolio i zarządzanie ryzykiem - Portfolio i nakładki ryzyka dla wszystkich sugerowanych zleceń ze strategii. Wiele strategii - stworzenie portfolio strategii zintegrowanych z zarządzaniem ryzykiem Podobnie jak w przypadku backtesteru opartego na zdarzeniach, należy utworzyć moduł testów forex. To pozwoli nam przeprowadzić szybkie badania i ułatwić rozmieszczanie strategii. settings. py (pamiętaj, aby zmienić accountid i ACCESSTOKEN): Just Getting Started with ilościowa TradingOANDA 1080108910871086108311001079109110771090 10921072108110831099 pliku cookie, 10951090108610731099 1089107610771083107210901100 1085107210961080 10891072108110901099 10871088108610891090109910841080 1074 1080108910871086108311001079108610741072108510801080 1080 108510721089109010881086108010901100 10801093 10891086107510831072108910851086 108710861090108810771073108510861089109011031084 10851072109610801093 10871086108910771090108010901077108310771081. 10601072108110831099 cookies 10851077 10841086107510911090 1073109910901100 108010891087108610831100107910861074107210851099 107610831103 109110891090107210851086107410831077108510801103 10741072109610771081 10831080109510851086108910901080. 1055108610891077109710721103 108510721096 1089107210811090, 10741099 108910861075108310721096107210771090107710891100 1089 10801089108710861083110010791086107410721085108010771084 OANDA8217 1092107 21081108310861074 ciasteczko 1074 108910861086109010741077109010891090107410801080 1089 10851072109610771081 105510861083108010901080108210861081 108210861085109210801076107710851094108010721083110010851086108910901080. 1048108510891090108810911082109410801080 10871086 107310831086108210801088108610741072108510801102 1080 10911076107210831077108510801102 109210721081108310861074 cookie 1072 10901072108210781077 1091108710881072107410831077108510801102 108010841080 108710881080107410771076107710851099 10851072 10891072108110901077 aboutcookies. org. 1042 108910831091109510721077 10861075108810721085108010951077108510801103 1080108910871086108311001079108610741072108510801103 109210721081108310861074 cookies 108610871088107710761077108310771085108510991077 1092109110851082109410801080 108510721096107710751086 10891072108110901072 10731091107610911090 1085107710761086108910901091108710851099. 104710721075108810911079108010901100 108410861073108010831100108510991077 1087108810801083108610781077108510801103 1042109310861076 1042109910731088107210901100 1089109510771090 ampltiframe src4489469.fls. doubleclickactivityisrc4489469typenewsi0catoanda0u1fxtradeiddclatdcrdidtagforchilddirectedtreatmentord1num1 mcesrc4489469.fls. doubleclickactivityisrc4489469typenewsi0catoanda0u1fxtradeiddclatdcrdidtagforchilddirectedtreatmentord1num1 width1 height1 frameborder0 styledisplay: brak mcestyledisplay: noneampgtampltiframeampgt 10571054104710441040104910581045 104010421058105410521040105810481047104810561054104210401053105310671045 10581054105610431054 104210671045 105710581056104010581045104310481048 105010401050 105310401057105810561054104810581068 API 105310721089109010881086108110901077 API OANDA 1074 109010881080 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 odpoczynek 10851072 +108610891085108610741077 HTTP-108710881086109010861082108610831072 1055108810801082108310721076108510991077 10871088108610751088107210841084108510991077 1080108510901077108810921077108110891099 odpoczynek Oanda 10851077 +1079107210741080108911031090 10861090 +11031079109910821072, 109510901086 108710861079107410861083110310771090 109010881077108110761077108810721084 108010891087108610831100107910861074107210901100 108510911078108510991077 10801084 10871088108610751088107210841084108510991077 11031079109910821080 107610831103 1085107710871086108910881077107610891090107410771085108510861081 1080108510901077107510881072109410801080 1074 10901086108810751086107410991077 1089108010891090107710841099 Oanda 8212 108210721082 +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 (105210861081 1089109510771090 - gt 105210861080 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 (105210861081 1089109510771090 - gt 105210861080 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, 10851072 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, 107410891077 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 107610831103 108810721073108610901099 1089 API 104410831103 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 (105210861081 1089109510771090 - gt 105210861080 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 252345), 1089108310771076109110771090 108010891087108610831100107910861074107210901100 API v1. 104310761077 10851072108110901080 108810771075108010891090108810721094108010861085108510991077 10921086108810841099, 10871088107210741086107410911102 1080 10901086108810751086107410911102 107610861082109110841077108510901072109410801102 OANDA

No comments:

Post a Comment