Saturday 16 December 2017

Jforex api zgłoszenie


Metoda DetailOplikujPrzedstawia nowe zamówienie. Zwrócone zamówienie znajduje się w stanie IOrder. State. CREATED i zostanie zaktualizowane do stanu IOrder. State. OPENED po potwierdzeniu serwera. Parametry: etykieta - zdefiniowany przez użytkownika identyfikator zamówienia. Etykieta musi być unikatowa dla danego konta użytkownika wśród bieżących zamówień. Dozwolone znaki: litery, cyfry i. Etykieta musi zawierać co najwyżej 256 znaków. instrument - zamówienie instrumentuCommand - rodzaj złożonej kwoty zamówienia - kwota w milisekach na cenę zlecenia - preferowana cena za zamówienie. Jeśli zero, to będzie używana ostatnia cena rynkowa widoczna na JForex. Cena powinna być podzielna przez 0.1 pips lub zamówienie zostanie odrzucone. W przypadku zleceń rynkowych, nieprawidłowa cena (gorsza niż obecny rynek) zostanie zmieniona na aktualną cenę i poślizg poślizgowy - poślizg. Wartość poślizgu oznacza następujące: jeśli wartość ujemna to domyślna wartość 5 pipsów jest używana, jeśli Double. isNaN (ślizganie) jest prawdziwy, a nie poślizg jest używany inaczej, poślizg jest ustawiony w pipsach, należy przekazać 1, a nie 0.0001 stopLossPrice - cena zatrzymaj straty. Cena powinna być podzielna przez 0.1 pipsów lub zamówienie zostanie odrzucone takeProfitPrice - cena z zysku z zysku. Cena powinna być podzielna przez 0.1 pipsów lub zamówienie zostanie odrzucone goodTillTime - jak długo zamówienie powinno żyć, jeśli nie zostanie wykonane. Tylko jeśli 0, a następnie orderCommand nie powinien być ani IEngine. OrderCommand. BUY ani IEngine. OrderCommand. SELL na rynku. comment - komentarz, który zostanie zapisany w kolejności Zwroty: instancja nowego zamówienia w stanie IOrder. State. CREATED Naciśnie: JFException - jeśli etykieta nie jest poprawna lub już istnieje, jeśli goodTillTime 0 i orderCommand nie jest BIDOFFER, jeśli kwota jest mniejsza niż dozwolona minimalna , jeśli niektóre z wymaganych parametrów są null submitOrder Składa nowe zamówienie. Zwrócony porządek jest w stanie IOrder. State. CREATED i zostanie zaktualizowany do statusu IOrder. State. OPENED po potwierdzeniu serwera Parametry: etykieta - zdefiniowany przez użytkownika identyfikator zamówienia. Etykieta musi być unikatowa dla danego konta użytkownika wśród bieżących zamówień. Dozwolone znaki: litery, cyfry i. Etykieta musi zawierać co najwyżej 256 znaków. instrument - zamówienie instrumentuCommand - rodzaj złożonej kwoty zamówienia - kwota w milisekach na cenę zlecenia - preferowana cena za zamówienie. Jeśli zero, to będzie używana ostatnia cena rynkowa widoczna na JForex. Cena powinna być podzielna przez 0.1 pips lub zamówienie zostanie odrzucone. W przypadku zleceń rynkowych, nieprawidłowa cena (gorsza niż obecny rynek) zostanie zmieniona na aktualną cenę i poślizg poślizgowy - poślizg. Wartość poślizgu oznacza następujące: jeśli wartość ujemna to domyślna wartość 5 pipsów jest używana, jeśli Double. isNaN (ślizganie) jest prawdziwy, a nie poślizg jest używany inaczej, poślizg jest ustawiony w pipsach, należy przekazać 1, a nie 0.0001 stopLossPrice - cena zatrzymaj straty. Cena powinna być podzielna przez 0.1 pipsów lub zamówienie zostanie odrzucone takeProfitPrice - cena z zysku z zysku. Cena powinna być podzielna przez 0.1 pipsów lub zamówienie zostanie odrzucone goodTillTime - jak długo zamówienie powinno żyć, jeśli nie zostanie wykonane. Tylko jeśli 0, a następnie orderCommand nie powinien być ani IEngine. OrderCommand. BUY ani IEngine. OrderCommand. SELL na rynku. Zwraca: instancja nowego zamówienia w stanie IOrder. State. CREATED Naciśnie: JFException - jeśli etykieta nie jest poprawna lub już istnieje, jeśli goodTillTime 0 i orderCommand nie jest BIDOFFER, jeśli ilość jest mniejsza niż dozwolona minimalna, jeśli niektóre z wymaganych parametrów są nieważne submitOrder Złożenie nowego zamówienia. Zwrócony porządek jest w stanie IOrder. State. CREATED i zostanie zaktualizowany do statusu IOrder. State. OPENED po potwierdzeniu serwera Parametry: etykieta - zdefiniowany przez użytkownika identyfikator zamówienia. Etykieta musi być unikatowa dla danego konta użytkownika wśród bieżących zamówień. Dozwolone znaki: litery, cyfry i. Etykieta musi zawierać co najwyżej 256 znaków. instrument - zamówienie instrumentuCommand - rodzaj złożonej kwoty zamówienia - kwota w milisekach na cenę zlecenia - preferowana cena za zamówienie. Jeśli zero, to będzie używana ostatnia cena rynkowa widoczna na JForex. Cena powinna być podzielna przez 0.1 pips lub zamówienie zostanie odrzucone. W przypadku zleceń rynkowych, nieprawidłowa cena (gorsza niż obecny rynek) zostanie zmieniona na aktualną cenę i poślizg poślizgowy - poślizg. Wartość poślizgu oznacza następujące: jeśli wartość ujemna to domyślna wartość 5 pipsów jest używana, jeśli Double. isNaN (ślizganie) jest prawdziwy, a nie poślizg jest używany inaczej, poślizg jest ustawiony w pipsach, należy przekazać 1, a nie 0.0001 stopLossPrice - cena zatrzymaj straty. Cena powinna być podzielna przez 0.1 pipsów lub zamówienie zostanie odrzucone takeProfitPrice - cena z zysku z zysku. Cena powinna być podzielna przez 0.1 pipsów lub zlecenie zostanie odrzucone Zwroty: nowa instancja zamówienia w stanie IOrder. State. CREATED Rzuca: JFException - jeśli etykieta nie jest ważna lub już istnieje, jeśli ilość jest mniejsza niż dozwolona minimalna, jeśli niektóre z wymaganych parameters jest null submitOrder Złoża nowe zamówienie. Zwrócony porządek jest w stanie IOrder. State. CREATED i zostanie zaktualizowany do statusu IOrder. State. OPENED po potwierdzeniu serwera Parametry: etykieta - zdefiniowany przez użytkownika identyfikator zamówienia. Etykieta musi być unikatowa dla danego konta użytkownika wśród bieżących zamówień. Dozwolone znaki: litery, cyfry i. Etykieta musi zawierać co najwyżej 256 znaków. instrument - zamówienie instrumentuCommand - rodzaj złożonej kwoty zamówienia - kwota w milisekach na cenę zlecenia - preferowana cena za zamówienie. Jeśli zero, to będzie używana ostatnia cena rynkowa widoczna na JForex. Cena powinna być podzielna przez 0.1 pips lub zamówienie zostanie odrzucone. W przypadku zleceń rynkowych, nieprawidłowa cena (gorsza niż obecny rynek) zostanie zmieniona na aktualną cenę i poślizg poślizgowy - poślizg. Wartość poślizgu oznacza następujące: jeśli wartość ujemna to domyślna wartość 5 pipsów jest używana, jeśli Double. isNaN (ślizganie) jest prawdziwy, nie stosuje się poślizgu inaczej, poślizg jest ustawiany w pipsach, należy przekazać 1, a nie 0.0001 Zwroty: instancja nowego zamówienia w stanie IOrder. State. CREATED Rzuca: JFException - jeśli etykieta nie jest poprawna lub już istnieje, jeśli ilość jest mniejsza niż dozwolona minimalnie, jeśli niektóre z wymaganych parametrów są null submitOrder Złożenie nowego zamówienia. Zwrócone zamówienie znajduje się w stanie IOrder. State. CREATED i zostanie zaktualizowane do stanu IOrder. State. OPENED po potwierdzeniu serwera. Uwaga: domyślna wartość 5 poślizgów pióra jest używana. Aby określić niestandardową poślizgność lub w ogóle wyłączyć, użyj metod rozszerzenia SubmitOrder (.). Parametry: etykieta - zdefiniowany przez użytkownika identyfikator zamówienia. Etykieta musi być unikatowa dla danego konta użytkownika wśród bieżących zamówień. Dozwolone znaki: litery, cyfry i. Etykieta musi zawierać co najwyżej 256 znaków. instrument - zamówienie instrumentuCommand - rodzaj złożonej kwoty zamówienia - kwota w milisekach na cenę zlecenia - preferowana cena za zamówienie. Jeśli zero, to będzie używana ostatnia cena rynkowa widoczna na JForex. Cena powinna być podzielna przez 0.1 pips lub zamówienie zostanie odrzucone. W przypadku zleceń rynkowych, nieprawidłowa cena (gorsza niż obecny rynek) zostanie zmieniona na aktualną cenę i poślizg Zwroty: nowa instancja zamówienia w stanie IOrder. State. CREATED Wymaga: JFException - jeśli etykieta nie jest poprawna lub już istnieje, jeśli kwota jest mniej niż dozwolone minimum, jeśli niektóre z wymaganych parametrów są null Patrz także: submitOrder (String, Instrument, OrderCommand, double, double, double). submitDrder (String, Instrument, OrderCommand, podwójne, podwójne, podwójne, podwójne, podwójne). SubmitOrder (String, Instrument, OrderCommand, podwójne, podwójne, podwójne, podwójne, podwójne, długie). SubmitOrder (String, Instrument, ZamówienieCommand, Podwójny, Podwójny, Podwójny, Podwójny, Podwójny, Długi, String). Zwrócone zamówienie znajduje się w stanie IOrder. State. CREATED i zostanie zaktualizowane do stanu IOrder. State. OPENED po potwierdzeniu serwera. Uwaga: domyślna wartość 5 poślizgów pióra jest używana. Aby określić niestandardową poślizgność lub w ogóle wyłączyć, użyj metod rozszerzenia SubmitOrder (.). Parametry: etykieta - zdefiniowany przez użytkownika identyfikator zamówienia. Etykieta musi być unikatowa dla danego konta użytkownika wśród bieżących zamówień. Dozwolone znaki: litery, cyfry i. Etykieta musi zawierać co najwyżej 256 znaków. instrument - zamówienie instrumentuCommand - rodzaj złożonego zlecenia. Tylko IEngine. OrderCommand. BUY i IEngine. OrderCommand. SELL dozwolone w tej metodzie - kwota w miliscie dla zlecenia Zwroty: instancja nowego zamówienia w stanie IOrder. State. CREATED Wrażeń: JFException - jeśli etykieta nie jest poprawna lub już istnieje, jeśli kwota jest mniejsza niż dozwolona minimalna, jeśli niektóre z wymaganych parametrów są puste, lub jeśli polecenieCommand nie jest KUPEM lub SPRZEDAJEM Zobacz także: submitOrder (String, Instrument, OrderCommand, podwójne, podwójne, podwójne). submitDrder (String, Instrument, OrderCommand, podwójne, podwójne, podwójne, podwójne, podwójne). SubmitOrder (String, Instrument, OrderCommand, podwójne, podwójne, podwójne, podwójne, podwójne, długie). Jeśli nie znaleziono żadnego zlecenia getOrderById Parametry: orderId - id zlecenia Zwraca: porządek lub wartość null. Mając badanie, anatomia pustej strategii JForex (część 1 i 2), jej czas na przełamanie pracy. MAPlay jest strategią dołączoną do każdego pobrania JForex API jako demonstracji. Pełny kod źródłowy tej strategii można znaleźć w pliku srcsinglejartest w pakiecie z pakietem JForex API. Przypomnijmy, że pierwsza metoda interfejsu, która działa na początku strategii, jest na początku. Metoda onStart z mapowania jest odtwarzana poniżej. Silnik zmiennych. wskaźniki. i konsola są polami klasy MAPlay. Są to zmienne globalne w klasie. Jakie linie 42-44 robią to, aby zapisać IEngine. Idyktory. i obiekty IConsole do późniejszego wykorzystania. Ostatnia linia onStart, wiersz 45 to tylko wydrukowanie wiadomości w konsoli programu JForex, aby powiadomić użytkownika, że ​​strategia została uruchomiona. Po ukończeniu przetwarzania onStart serwer prawdopodobnie zadzwoni do systemu Tick, jeśli pojawi się błąd na rynku. Jeśli nie w godzinach rynkowych, to nie ma kleszczu, a inne zdarzenie może się zdarzyć, zamiast w systemie. Pomyśl o metodach jako zdarzeniach niż o liniowym procesie. Opracowujesz strategię JForex zgodnie z tym, co chcesz zrobić z każdym z sześciu imprez IStrategy Interface. W tej konkretnej strategii programista decyduje się na wdrożenie swojej strategii na poziomie kleszcza. Jako taki wiele algorytmów handlu znajduje się w pliku onTick dla MAPlay. Należy pamiętać, że jest to wybór projektu, jeśli chcesz, aby strategia była przetwarzana na poziomie paska, można użyć onBar (lub użyć zarówno funkcji onTick, jak i onBar). Działa kod źródłowy dla onTick w MAPlay. Na pierwszy rzut oka można zauważyć, że zmienne ma0 i ma1 odgrywają kluczową rolę w określaniu konfiguracji. Wskazówka: w celu odwzorowania strategii, można łatwiej pracować do tyłu od momentu złożenia zamówienia, co jest dokonywane przez engine. submitOrder w tym przypadku. ma0 i ma1 posiadają wyniki średnich ruchów wykładniczych (EMA). ma0 jest aktualną wartością. ma1 jest poprzednią wartością kresek. Linie 56--63 sprawdzaj przy użyciu testów IF (wiersze 56 i 60), aby sprawdzić, czy jedna z tych zmiennych zawiera nieprawidłowe dane. Jeśli dane są nieprawidłowe, wskaźnik jest obliczany, a reszta elementu OnTick jest pomijana przez instrukcję zwrotu w wierszu 62. Uwaga: Wartości wskaźników mogą być czasem nieważne (zero, minus lub podwójne. nie w zależności od konkretnego wdrożenia wskaźnika ), jeśli na przykład są niewystarczające dane do jego obliczenia lub wystąpił błąd. EMA są pobierane w wierszach 57 i 59 przy użyciu obiektu IIndicators (który został zainicjalizowany w onStart). JForex Wiki zawiera wyjaśnienie jego wykorzystania. Zauważ, że ma1 to tablica, która została zadeklarowana w linii 38 o wielkości równoważnej liczbie wszystkich dostępnych instrumentów JForex. W szczególności jest on używany ze specjalną wartością indeksu, jak w ma1instrument. ordinal (). Innymi słowy, pyta o obecną szczelinę instrumentów w tablicy ma1. Aktualny instrument to ten, który jest przekazywany do metody w wierszu 55. Przeniesienie kodu, innym punktem zainteresowania jest linia 65, pokazująca użycie instrumentu. getPipValue (). Linia 67 sprawdza, czy bieżąca całkowita liczba pozycji wynosi zero. Jeśli tak jest, co oznacza, że ​​nie ma otwartej pozycji, strategia kontynuuje sprawdzanie sygnału wejściowego, aby wprowadzić handel (wiersze 68-76). positionTotal () jest niestandardową metodą zdefiniowaną w wierszach 84--92. Wykorzystuje pętlę FOR do przechodzenia przez wszystkie zlecenia otrzymane z engine. getOrders (instrument) Kiedy jedno z długich lub krótkich warunków zostanie spełnione, linia 68 i 72 są spełnione, strategia składa kolejno w wierszach 69 krótkie i krótkie linia 73 przez długi czas. Szczegółowe informacje dotyczące składania zleceń rynkowych są opisane w Wiki JForex. Po zatrzymaniu tej strategii nazywa się OnStop (wiersze 48-553). W tej strategii programista ponownie przechodzi przez wszystkie zlecenia ponownie przy użyciu engine. getOrders () i zamyka każdą pozycję z poleceniem order. close () w wierszu 50. To jest dla tej trywialnej strategii. Jeśli jest jeden punkt, który należy pamiętać. Zwróć uwagę na moje użycie wielu linków do javadoc JForex i JForex Wiki w tym poście. Prawdopodobnie znajdziesz wiele odpowiedzi z tych dwóch źródeł. Jeśli nie, to zawsze JForex Support Board. Teraz masz już pojęcie, jak działa MAPlay. java, czas na przetestowanie. W następnym poście w styczniu omówimy testera historycznego JForex i co warto zwrócić uwagę przy prowadzeniu strategii na żywo. Studiował anatomię pustej strategii JForex (część 1 i część 2), jej czas na wykonanie operacji roboczej. MAPlay jest strategią dołączoną do każdego pobrania JForex API jako demonstracji. Pełny kod źródłowy tej strategii można znaleźć w pliku srcsinglejartest w pakiecie z pakietem JForex API. Przypomnijmy, że pierwsza metoda interfejsu, która działa na początku strategii, jest na początku. Metoda onStart z mapowania jest odtwarzana poniżej. Silnik zmiennych. wskaźniki. i konsola są polami klasy MAPlay. Są to zmienne globalne w klasie. Jakie linie 42-44 robią to, aby zapisać IEngine. Idyktory. i obiekty IConsole do późniejszego wykorzystania. Ostatnia linia onStart, wiersz 45 to tylko wydrukowanie wiadomości w konsoli programu JForex, aby powiadomić użytkownika, że ​​strategia została uruchomiona. Po ukończeniu przetwarzania onStart serwer prawdopodobnie zadzwoni do systemu Tick, jeśli pojawi się błąd na rynku. Jeśli nie w godzinach rynkowych, to nie ma kleszczu, a inne zdarzenie może się zdarzyć, zamiast w systemie. Pomyśl o metodach jako zdarzeniach niż o liniowym procesie. Opracowujesz strategię JForex zgodnie z tym, co chcesz zrobić z każdym z sześciu imprez IStrategy Interface. W tej konkretnej strategii programista decyduje się na wdrożenie swojej strategii na poziomie kleszcza. Jako taki wiele algorytmów handlu znajduje się w pliku onTick dla MAPlay. Należy pamiętać, że jest to wybór projektu, jeśli chcesz, aby strategia była przetwarzana na poziomie paska, można użyć onBar (lub użyć zarówno funkcji onTick, jak i onBar). Działa kod źródłowy dla onTick w MAPlay. Na pierwszy rzut oka można zauważyć, że zmienne ma0 i ma1 odgrywają kluczową rolę w określaniu konfiguracji. Wskazówka: w celu odwzorowania strategii, można łatwiej pracować do tyłu od momentu złożenia zamówienia, co jest dokonywane przez engine. submitOrder w tym przypadku. ma0 i ma1 posiadają wyniki średnich ruchów wykładniczych (EMA). ma0 jest aktualną wartością. ma1 jest poprzednią wartością kresek. Linie 56--63 sprawdzaj przy użyciu testów IF (wiersze 56 i 60), aby sprawdzić, czy jedna z tych zmiennych zawiera nieprawidłowe dane. Jeśli dane są nieprawidłowe, wskaźnik jest obliczany, a reszta elementu OnTick jest pomijana przez instrukcję zwrotu w wierszu 62. Uwaga: Wartości wskaźników mogą być czasem nieważne (zero, minus lub podwójne. nie w zależności od konkretnego wdrożenia wskaźnika ), jeśli na przykład są niewystarczające dane do jego obliczenia lub wystąpił błąd. EMA są pobierane w wierszach 57 i 59 przy użyciu obiektu IIndicators (który został zainicjalizowany w onStart). JForex Wiki zawiera wyjaśnienie jego wykorzystania. Zauważ, że ma1 to tablica, która została zadeklarowana w linii 38 o wielkości równoważnej liczbie wszystkich dostępnych instrumentów JForex. W szczególności jest on używany ze specjalną wartością indeksu, jak w ma1instrument. ordinal (). Innymi słowy, pyta o obecną szczelinę instrumentów w tablicy ma1. Aktualny instrument to ten, który jest przekazywany do metody w wierszu 55. Przeniesienie kodu, innym punktem zainteresowania jest linia 65, pokazująca użycie instrumentu. getPipValue (). Linia 67 sprawdza, czy bieżąca całkowita liczba pozycji wynosi zero. Jeśli tak jest, co oznacza, że ​​nie ma otwartej pozycji, strategia kontynuuje sprawdzanie sygnału wejściowego, aby wprowadzić handel (wiersze 68-76). positionTotal () jest niestandardową metodą zdefiniowaną w wierszach 84--92. Wykorzystuje pętlę FOR do przechodzenia przez wszystkie zlecenia otrzymane z engine. getOrders (instrument) Kiedy jedno z długich lub krótkich warunków zostanie spełnione, linia 68 i 72 są spełnione, strategia składa kolejno w wierszach 69 krótkie i krótkie linia 73 przez długi czas. Szczegółowe informacje dotyczące składania zleceń rynkowych są opisane w Wiki JForex. Po zatrzymaniu tej strategii nazywa się OnStop (wiersze 48-553). W tej strategii programista ponownie przechodzi przez wszystkie zlecenia ponownie przy użyciu engine. getOrders () i zamyka każdą pozycję z poleceniem order. close () w wierszu 50. To jest dla tej trywialnej strategii. Jeśli jest jeden punkt, który należy pamiętać. Zwróć uwagę na moje użycie wielu linków do javadoc JForex i JForex Wiki w tym poście. Prawdopodobnie znajdziesz wiele odpowiedzi z tych dwóch źródeł. Jeśli nie, to zawsze JForex Support Board. Teraz masz już pojęcie, jak działa MAPlay. java, czas na przetestowanie. W następnym styczniu w styczniu omówimy testera historycznego JForex i co warto obejrzeć, kiedy prowadzimy strategię na żywo. W poprzednim rozdziale omówiliśmy cztery z sześciu metod interfejsu IStrategy. Ostatnie dwie metody, onTick i onBar, gdzie Twoja strategia łączy się z danymi rynkowymi. Każda z tych lub obu tych metod jest miejscem, w którym umieszczasz algorytm obrotu. Twoja strategia byłaby wtedy w stanie przetworzyć dane rynkowe, gdy przychodzą one do jednego paska. Przypomnij, że interfejs IStrategy jest szkieletem Twojej strategii. I ten obiekt IContext jest sercem Twojej strategii. onTickonBar jest szefem Twojej strategii, która zawiera twój algorytm obrotu, który jest mózgiem. Oto definicja metody onTick. Ważne: onTick jest wywoływany dla każdego instrumentu, na który subskrybowana jest platforma JForex (lista instrumentów w polu obszaru roboczego). Pozwól mi powiedzieć, że znowu, onTick jest wezwany do każdego instrumentu, na którym subskrybujesz platformę JForex. Standardową praktyką jest odfiltrowywanie kleszczy dla instrumentów, których nie potrzebujesz za pomocą prostej instrukcji IF-return. if (instrument myInstrument) return Aktualne dane kleszcze są przekazywane do Twojej strategii za pomocą obiektu ITick z parametru metody onTick. Spójrz na wpis ITAVS javadoc, aby zobaczyć, co oferuje. onBar działa w podobny sposób jak onTick. W którym onBar jest wezwany do każdego subskrybowanego instrumentu i okresu znanego JForexowi. Podobnie musisz wyfiltrować wszystkie niepożądane instrumenty i okresy, albo spodziewane efekty z Twojej strategii. Warto zauważyć, że onBar udostępnia zarówno bary IBar i IBar bidBar, reprezentujące paski zapytań i stawek. Pytanie: Co się dzieje, gdy dwa lub więcej okresów się pokrywają, tak jak w 13:45: 1, 5 i 15-minutowe słupki przychodzą w tym samym czasie (nie wspominając o okresach w sekundach też). Odpowiedź: Według Dukascopy Support na forum, przychodzą w ścisłej kolejności, na przykład (1min 1min 1min 1min 1min 5min 1min 1min 1min 1min 1min 5min.) Są w cyklach, w których mniejsze okresy są pierwsze. Forum pomocy JForex Podczas programowania strategii z JForex bez wątpienia zajdą się Państwo pytaniami własnymi. Najlepsze miejsce do zapytania znajduje się na oficjalnym forum wsparcia JForex. To ostatnie z trzech podstawowych zasobów JForex, o których wspominałem wcześniej. Nawet jeśli nie masz żadnych konkretnych pytań, istnieją przykładowe kody, dyskusje na temat kodowania i setki istniejących QampA od innych programistów JForex zamieszczanych na forum. Dotychczasowa dyskusja była bardzo wysoka. Aby pokazać, co można zrobić w ramach IStrategy, rozwiążemy strategię działania w następnym poście. A co jeszcze lepiej zbadać niż najpopularniejsza strategia JForex wszystkich - MAPlay. java. Kontynuując od części 1 tej serii: Rozpoczęcie nauki programowania JForex. teraz byli gotowi dyskutować o prawdziwych rzeczach. Opracowujesz strategie JForex przy użyciu Interfejsu IStrategy (Co to jest interfejs). Zasadniczo interfejs to szkielet kodu zawierający zbiór predefiniowanych pustych metod, które trzeba wykonać samodzielnie. Sześć standardowych metod interfejsu IStrategy to: Poniżej znajduje się pusta implementacja interfejsu IStrategy, znana również jako strategia JForex. Kod ten będzie kompilować w JForex i można go nawet uruchomić. Ale nie robi nic w ogóle, ponieważ nie ma żadnego kodu do uruchomienia w każdej z tych metod. Każda z sześciu metod zostanie właśnie wywołana i wyjdzie natychmiast. Każda z metod jest wyzwalana przez określone zdarzenie. Prawdopodobnie możesz odgadnąć, co to jest z ich imienia. onStart (linia 5) Jest to pierwsza metoda, która jest wywoływana podczas uruchamiania Twojej strategii. Będzie działać raz i tylko raz na początku Twojej strategii. Zwykle inicjujesz tutaj. To, co warto zauważyć, to onStart znajduje się w wierszu 5 kodu. Podpis metody metody onStart Obiektem w parametrze i podanym w tej metodzie jest obiekt IContext. Jeśli IStrategy jest szkieletem, to IContext jest sercem tej strategii. Zapoznaj się z tym odnośnikiem javadoc do IContext, aby zobaczyć, co ten obiekt. Javadoc. Teraz jest dobry czas, aby wprowadzić drugi z trzech podstawowych zasobów programisty JForex. JForex Javadoc jest najbardziej aktualną dokumentacją API wyjaśniającą każdy i każdy obiekt i metody interfejsu API JForex. Pomyśl o tym jak podręcznik referencyjny. Zauważ, że chociaż jest to kompleksowe, większość wyjaśnień jest bardzo rzadka i prawdopodobnie niekompletna. IContext to podstawowy obiekt JForex umożliwiający dostęp do wielu ważnych elementów systemu JForex, takich jak silnik zamówieniowy, wykresy, konsola, wskaźniki. Dostajesz ten pomysł. Ważne jest, aby zazwyczaj zachować kopię lokalną, ponieważ jest to jedyny raz (w obiekcie onStart), że ten obiekt zostanie przekazany użytkownikowi w programie IStrategy. onStop (wiersz 26) Jak sama nazwa wskazuje, ta metoda jest wywoływana po wysłaniu polecenia zatrzymania do strategii. Robisz swoje zawijanie się w programie, takie jak rejestrowanie i pulsowanie danych tutaj. Z tym bardzo niewiele. onMessage (linia 18) Kiedy wiemy, kiedy onStart i onStop będą wywoływane, onMessage jest asynchroniczną metodą polegającą na tym, że nie wiesz dokładnie, kiedy będzie działać. Metoda ta jest wywoływana, gdy serwer Dukascopy wysyła twoją strategię wiadomość. Na przykład serwer nawiązuje doMessage, aby poinformować, że Twoje zamówienie zostało wypełnione. Otrzymujesz i przetwarza komunikat serwera, uzyskując dostęp do obiektu IMessage przekazanego użytkownikowi. Ważne: nie ma gwarancji, że każda wiadomość wysłana do Twojej strategii zostanie wysłana z serwera. Być może proces strategii jest zatkany. A może połączenie internetowe miało czkawkę. Jeśli Twoja strategia onMessage nie zostanie wywołana przez serwer z jakiegokolwiek powodu, serwer nie mógłby być ostrożny i nie będzie sprawdzał ani nie próbował ponownie. Więc nic nie robisz nic poważnego, jak zarządzanie zamówieniami w pliku onMessage onAccount (wiersz 22) Ta metoda jest nazywana, gdy otrzymasz aktualizację informacji o koncie. Metoda zapewnia dostęp do obiektu IAccount. które służą do uzyskiwania informacji o koncie. Powiedz, jeśli masz otwartą pozycję, informacje o Twoim koncie zmienia się na każdym polu, ponieważ twój kapitał jest gotówką niezrealizowaną zyskiem. W takim przypadku na koncie co najmniej 5 sekund na serwerze jest najczęściej zwracane przez serwer, aby uniknąć zalania strategii. Bardziej ważny: obiekt IAccount nie jest połączony z kontem na serwerze. To tylko miniatura twojego konta. Na przykład, jeśli zachowano lokalną kopię obiektu IAccount. Zrób trochę handlu, aby zmienić saldo. Następnie poproś tę samą informację IAccount o informacje o saldzie, nie zobaczysz zmiany. Dlatego zawsze aktualizuj lokalną kopię programu IAccount w ramach metody onAccount, aby informacje o kontach były zawsze aktualne. Aby być kontynuowanym onStart, onStop, onMessage i onAccount są metodami administracyjnymi dla Twojej strategii. Ostatnie dwie metody, które dobrze dyskutują, onTick i onBar, gdzie jest magia w strategii. Ocalę co najwyżej na następny post. Największym problemem, jaki miałem podczas uczenia się programowania własnych strategii handlowych w JForex, jest znalezienie, od czego zacząć naukę. W tamtych czasach było niewiele dokumentacji JForex i musiałem nauczyć się poprzez staranne próby i błędy z pomocą techniczną Dukascopys. Co z pewnością zmieniło się na lepsze, gdy społeczność JForex zaczyna się rozwijać, a dokumentacja jest przynajmniej wystarczająca, aby ktoś zaczął pracę. Ten post jest pierwszą serią szybkiego podręcznika dla początkujących do nauki programowania JForex, umieszczając wszystkie te materiały w samouczku. JForex jest narzędziem języka Java JForex w rzeczywistości nie jest językiem programowania. Jest to interfejs programowania aplikacji (API) do użytku ze standardowym językiem programowania języka Java. Jako taki, pierwszym krokiem do nauki programowania w JForex jest nauka Java. Na szczęście Java jest jednym z najbardziej popularnych języków programowania. Więc z mnóstwem zasobów i poza siecią, aby nauczyć się programowania w Javie. Oto kilka przykładów bezpłatnych poradników online: Samouczki Javy - jest to oficjalny samouczek od autora Javy. Wysoce polecany. Samouczek Java dla początkujących - bardziej przystosowany dla początkujących początkujących do programowania. Jeśli wolisz książkę, polecam Head First Java, 2nd Edition. Szarpnęłam swoją Javę z tej książki. Nie zastanawiałeś się zbytnio na Javie, ponieważ musisz tylko zapoznać się z podstawami, aby zacząć pracę z JForex. Przeczytaj kilka rozdziałów, aby zrozumieć składnię języka Java, a następnie przejść dalej. Możesz zawsze odwoływać się do nich później. Nurkowanie w JForex JForex Wiki jest jednym z trzech podstawowych zasobów programistów JForex. Będę odwoływał się do niektórych konkretnych stron Wiki w tej serii postów. Jeśli nie chcesz tego zrobić, zarejestruj się na konto DEMO w Dukascopy. Następnie uruchom platformę JForex i postępuj zgodnie z instrukcjami na stronie Użyj w JForex wiki, aby zebrać swoją pierwszą strategię JForex Do tej pory tak dobrze Na tym etapie mam nadzieję, że możesz zrozumieć podstawowy kod źródłowy języka Java i wiedzieć, jak rozpocząć, skompilować i uruchamiać Strategia JForex. W następnym poście w tej serii JForex nauki będziemy badać anatomię strategii JForex. Pozostało jeszcze tylko dwa kolejne dni w kwietniowym konkursie Dukascopy JForex Strategy. Jestem obecnie na szóstym miejscu. Ale tam zacięta walka o moje miejsce. Przechodziłem od 6 do 8 tygodnia, mimo że nie miałem żadnego handlu. Inni ludzie zakładają duże zakłady mając nadzieję na ścisnięcie się w pierwszej rundzie 6. Dlaczego? Według najlepszej struktury nagród, 4-6 zwycięzcy otrzymają 1000. Podczas gdy 7-10 otrzymają 500 tylko. Z moim bieżącym kontem na 120,032 (20 zysku) w tym miesiącu, to jest całkiem opłacalne dla innych, aby starali się zajmować moje miejsce. Poniższa tabela zawiera 10 najważniejszych pozycji na ten temat. Moim zdaniem powinienem podsycać moją strategię, aby zrobić więcej transakcji lub nic nie robić. Ryzykiem w ponownym uruchomieniu mojej strategii jest to, że mogę stracić pieniądze i uczynić się mniej konkurencyjną. Moje strategie pracy ram czasowych jest w godzinach, więc nie ma dużo miejsca na błędy. Jako takie czuję, że po zaledwie dwóch dniach handlu lewica nie jest po mojej stronie. Z drugiej strony, prawdopodobnie utracę moje 6 miejsce, ponieważ nie jestem daleko od innych za mną. Jeśli więc nic nie zrobię, najprawdopodobniej skończę na 7 lub 8, a połowa straci pieniądze. Po krótkiej rozmowie o tym postanowiłem nic nie zrobić. Szanse są po prostu za dużo przeciwko mnie. Widziałem zbyt wielu ludzi w tym miesiącu, ryzykując, że wzrośnie z dobrej pozycji tylko po to, aby odsłonić się za dużo i całkowicie wygrać z 10 najlepszych. Dowiedziałem się, że konkurencyjna strategia w konkursie Dukascopy JForex Strategy doesnt musi być 100 automatycznie Według Contest Support w oficjalnym forum. Mogę ustawić parametry, takie jak np. Osiągnięcie celu zyskowego, przerwanie utraty oraz transakcji długodystansowych lub tylko krótkich. To sprawi, że konkurs ten znacznie ułatwia programowanie, ponieważ mogę wdrożyć strategię półautomatyczną, którą preferuję w moim prawdziwym handlu. Problemem w budowaniu zautomatyzowanego systemu obrotu jest to, że warunki rynkowe zmieniają się często i bez uprzedzenia. Tak więc, potrzeba więcej niż kilku linii, aby zaprogramować stale korzystny system, aby wyeliminować niepożądane warunki. Jak wspomniano wcześniej, ponieważ wszyscy zwycięzcy konkursu muszą publikować swoje kody źródłowe, nie chcę spędzać zbyt wiele czasu na tym konkursie. Teraz, gdy wiem, że mogę w tym konkursie handlować półautomatycznie. Mogę po prostu zrobić moją analizę ręcznie, a następnie użyć strategii, aby wykonać transakcje, kiedy tego chcę. To jest dokładnie tak, jak to miało miejsce w moim prawdziwym procesie handlowania, jak zilustrowano wcześniej. Jak możesz sobie wyobrazić, jestem bardzo szczęśliwy z tej wiadomości. Nie muszę już drapać mojej głowy, aby zbudować nową strategię na następne miesiące. Zaprogramowałem i przetestowałem kilka nowych pomysłów w ciągu ostatnich 2 tygodni, ale mimo to znalazłem coś lepszego niż moja istniejąca strategia. co dobrze radzi sobie w kwietniu. To Konkurs Strategii na temat JForex w Dukascopy stanowiło wielką zachętę do zapoznania się z JForexem. Jako że zamierzam skorzystać z tego w ramach mojego prawdziwego obrotu w Dukascopy (otworzyć konto z tym linkiem partnerskim, aby otrzymać 35 rabatów na prowizje) w tym roku, jest to sytuacja korzystna dla mnie, gdy uczę się interfejsu API i prawdopodobnie wygrasz jakąś nagrodę pieniądze w tym samym czasie. To jest wyjaśnienie mojej zautomatyzowanej strategii handlowej w konkursie Dukascopy JForex Strategy Contest w kwietniu. Ta strategia właśnie zrobiła jego pierwszy handel dzisiaj dzisiaj po temu jak biegać dla dookoła 72 godzinek. Moje konto demonstracyjne konkursu zostało zamknięte z zyskiem 7 na tym pierwszym handlu. Zauważ, że ta strategia jest stworzona do współzawodnictwa w konkursie, a nie w handlu rzeczywistym (to jest tylko hazard bez kosztów). Oto koncepcja tej wysokiej konfiguracji prawdopodobieństwa. Odnośnie do rysunku 1 poniżej, czerwona strzałka oznacza dziś mój krótki wpis na EURGBP. Są to wskaźniki analizy technicznej, z których korzysta strategia: Trend: Sygnał o średnim wzroście 50 barów powyżej (upragniony) lub poniżej (ujemny) średnia ruchoma 200 barów. Moment: Nadmierne lub nadmierne warunki RSI, ale nie używane w sposób tradycyjny. Zmienność: używam kanału Keltner do pomiaru zmienności. Działanie cen: Obserwuj zachowanie świec w celu określenia tendencji do trendu. To jest tajemnica tej strategii. Wytłumaczę to poniżej. Zauważ, że używałem Bollinger Bands na wykresie z rysunku 1, ponieważ nie mogłem znaleźć wskaźnika Keltner Channel w Metatrader (moje oprogramowanie do tworzenia wykresów). Nie ma to wpływu na moje koncepcyjne ilustracji. Konfiguracja: określenie tendencji nadrzędnej poprzez 50200 średnie ruchome, jak wyjaśniono powyżej. Potwierdzenie ceny nadal trwa, sprawdzając, czy obecna cena rynkowa jest po prawej stronie średniej ruchomej 200 barów. Podana cena jest dla bullish i poniżej dla nieprzyjemnych. Gdy kroki 1-2 są na swoim miejscu, założyli, że trend jest silny. Szukamy konfiguracji w kierunku trendów. W szczególności szukamy nieprawidłowej konfiguracji regresji przeciwwagańczych przy użyciu świecznika w połączeniu z kanałem Keltner. Brzmi fantazyjnie, ale to proste. Korzystając z krótkiego przykładu, wysokie pręty muszą przechodzić nad kanałem Keltner, a mimo to zamykają się wewnątrz niego. Następnie zostanie krótko wpisany krótki wpis. Przeciwnie dla długiego wejścia. Transakcje przejęte przez RSI i przeterminowane są wykorzystywane do odfiltrowywania powolnych i stałych ruchów przeciwdziałających trendu (są to zło). Inną zaletą korzystania z kanału cenowego jest to, że używam go również do ustalenia zysków z zysków i zatrzymania strat. Jak już wspomniałem w poprzednim poście, ponieważ Dukascopy spodziewa się, że wygrywający konkurs zgłaszają swoje kody źródłowe, nie używam tutaj żadnych własności ani nadzwyczajnych. Jako taki jest zupełnie inny niż to, co wykorzystuję do handlu na własną rękę. Mianowicie bardziej polegać na wskaźnikach, a mniej na działaniach cenowych i zarządzaniu ryzykiem.

No comments:

Post a Comment