Amibroker test a ruchomy średni system zwrotnicy


Jak zoptymalizować system obrotu UWAGA: jest to dość zaawansowany temat. Przeczytaj najpierw poprzednie ćwiczenia AFL. Idea optymalizacji jest prosta. Najpierw trzeba mieć system handlu, na przykład może to być prosty ruchome przecięcie średnie. W prawie każdym systemie istnieją pewne parametry (jako okres uśredniania), które decydują o zachowaniu danego systemu (tj. Dobrze sprawdza się w perspektywie długoterminowej lub krótkoterminowej, jak reaguje na wysoce niestabilne zapasy itp.). Optymalizacja to proces znalezienia optymalnych wartości tych parametrów (dających największy zysk z systemu) dla danego symbolu (lub portfolio symboli). AmiBroker jest jednym z niewielu programów, które pozwalają na optymalizację systemu na wielu symbolach na raz. Aby zoptymalizować system, należy zoptymalizować jeden z dziesięciu parametrów. Zdecydujesz, jaka jest minimalna i maksymalna dozwolona wartość parametru oraz w jakich krokach wartość ta powinna zostać zaktualizowana. Następnie AmiBroker wykonuje wiele testów wstecznych systemu przy użyciu wszystkich możliwych kombinacji wartości parametrów. Po zakończeniu tego procesu AmiBroker wyświetli listę wyników posortowanych według zysku netto. Możesz zobaczyć wartości parametrów optymalizacji, które dają najlepszy rezultat. Pisanie formuły AFL Optymalizacja w testerze wstecznym jest obsługiwana za pomocą nowej funkcji zwanej optymalizacją. Składnia tej funkcji jest następująca: zmienna optymalizacja (opis Opis, domyślnie min. Maks. Krok) zmienna - to zwykła zmienna AFL, która otrzymuje przypisaną wartość zwracaną przez optymalizację funkcji. Przy normalnych testach wstecznych, skanowaniu, eksploracji i trybach komutacyjnych funkcja optymalizacji zwraca wartość domyślną, więc powyższe wywołanie funkcji jest równoważne z: zmienną domyślną W trybie optymalizacji optymalizuje się kolejne wartości od min do maksimum (włącznie) z krokiem krokowym. quot Descriptionquot to ciąg, który jest używany do identyfikacji zmiennej optymalizacji i jest wyświetlany jako nazwa kolumny na liście wyników optymalizacji. domyślnie jest to wartość domyślna, która optymalizuje funkcje zwracane w trybie eksploracji, wskaźnika, komentarza, skanowania i normalnego testu wstecznego min to wartość minimalna zmiennej zoptymalizowana max to maksymalna wartość zmiennej zoptymalizowana krok to przedział uŜywany do zwiększania wartość od min do maksimum AmiBroker obsługuje maks. 64 wywołania w celu zoptymalizowania funkcji (a więc do 64 zmiennych optymalizacyjnych), pamiętaj, że jeśli używasz wyczerpującej optymalizacji, naprawdę warto pominąć ograniczenie liczby zmiennych optymalizacyjnych do zaledwie kilku. Każde wywołanie optymalizacji generowania (maks.) Kroków optymalizacji etapu i wielu połączeń w celu optymalizacji liczby potrzebnych przebiegów. Na przykład optymalizacja dwóch parametrów przy użyciu 10 kroków wymaga 1010 100 optymalizacyjnych pętli. Funkcja optymalizacji połączeń działa tylko raz na zmienną na początku formuły, ponieważ każde wywołanie generuje nowe pętle optymalizacyjne Optymalizacja wielu symboli jest w pełni obsługiwana przez AmiBroker Maksymalna przestrzeń wyszukiwania to 2 64 (10 19 000 000 000 000 000 000) kombinacji 1. Jedna zmienna optymalizacja: sigavg Optimize (Średnia sygnałów 9. 2. 20. 1) Kup Cross (MACD (12. 26), Signal (12. 26. sigavg)) Sprzedaj Krzyż (Signal (12. 26. sigavg), MACD (12. 26)) 2. Optymalizacja (na poziomie 2. 5. 50. 1) Optymalizacja poziomu (poziom 2. 2. 150. 4) Kup krzyż (CCI (per), - Level) Sprzedaj (MACD Slow. 26. 17. 30. 1) sigavg Optymalizacja (Signal) (Optymalizacja (maks. średnie 9. 2. 20. 1) Kup krzyż (MACD (mfast, mslow) Sygnał (mfast, mslow, sigavg)) Sprzedaj krzyż (sygnał (mfast, mslow, sigavg), MACD (mfast, mslow)) Po wprowadzeniu f ormula wystarczy kliknąć przycisk Optymalizuj w oknie CommentQuantquot Analysis. AmiBroker rozpocznie testowanie wszystkich możliwych kombinacji zmiennych optymalizacyjnych i raportuje wyniki z listy. Po dokonaniu optymalizacji lista wyników jest przedstawiana według zysku netto. Jak można sortować wyniki według dowolnej kolumny na liście wyników, można uzyskać optymalne parametry dla najmniejszego wypłatu, najniższej liczby transakcji, największego współczynnika zysku, najniższej ekspozycji na rynku i największego zwrotu z ryzykiem. Ostatnie kolumny listy wyników przedstawiają wartości zmiennych optymalizacyjnych dla danego testu. Kiedy zdecydujesz, która kombinacja parametrów odpowiada Twoim potrzebom, wystarczy zastąpić wartości domyślne w celu optymalizacji połączeń funkcji z optymalnymi wartościami. Na obecnym etapie należy wpisać je ręcznie w oknie edycji formuły (drugi parametr optymalizacji funkcji wywołania). Wyświetlanie wykresów optymalizacji animowanej 3D Aby wyświetlić mapę optymalizacji 3D, najpierw należy najpierw przeprowadzić dwie zmienne optymalizacje. Dwie zmienne funkcje optymalizacji potrzebują formuły, która zawiera 2 wywołania funkcji Optimize (). Przykładowa zmienna o dwóch zmiennych wygląda następująco: na Optymalizowanie (na 2. 5. 50. 1) Poziom Optymalizacji (poziom 2. 2. 150. 4) Kup Krzyż (CCI (per), - Level) Sprzedaj Krzyż (Poziom, WIK (na)) Po wprowadzeniu formuły należy kliknąć przycisk OOptimizequot. Po ukończeniu optymalizacji kliknij strzałkę rozwijaną przycisku Optymalizuj i wybierz Wyświetl wykres optymalizacji 3D. Po kilku sekundach w oknie widoku wykresu 3D pojawią się kolorowe trójwymiarowe wykresy powierzchni. Przykładowy wykres 3D generowany przy użyciu powyższego wzoru przedstawiono poniżej. Domyślnie wykresy 3D przedstawiają wartość zysku netto względem zmiennych optymalizacyjnych. Można jednak wykreślić wykres powierzchni 3D dla dowolnej kolumny w tabeli wyników optymalizacji. Wystarczy kliknąć nagłówek kolumny, aby go posortować (niebieska strzałka wskazuje, że wyniki optymalizacji są sortowane według wybranej kolumny), a następnie ponownie wybierz opcję Wyświetl wykres optymalizacji 3D. Wizualizując, jak parametry systemu wpływają na wydajność handlu, można łatwiej zdecydować, które wartości parametrów generują kwantylację i które zapewniają niezbyt wysoką wydajność systemu. Solidnymi ustawieniami są regiony na wykresie 3D, które wykazują stopniowe, a nie nagłe zmiany powierzchni. Wykresy optymalizacji 3D są świetnym narzędziem zapobiegającym krzywizowaniu. Konfiguracja krzywej (lub nadmierna optymalizacja) pojawia się, gdy system jest bardziej złożony niż musi być, a ta złożoność skupiła się na warunkach rynkowych, które mogą się nigdy nie powtórzyć. Radykalne zmiany (lub skoki) na wykresach optymalizacji 3D pokazują wyraźnie obszary nadmiernego optymalizowania. Powinieneś wybrać region parametrów, który generuje szeroki i szeroki płaskowyż na wykresie 3D dla Twojego prawdziwego życia. Zestawy parametrów generujące skoki zysku nie będą działały w wiarygodny sposób. Przeglądarka wykresów 3D kontroluje przeglądarkę wykresów 3D AmiBroker oferuje całkowite możliwości wyświetlania z pełnym rotowaniem wykresu i animacją. Teraz możesz przeglądać wyniki swoich systemów z każdej możliwej perspektywy. Możesz sterować pozycją i innymi parametrami wykresu za pomocą myszy, paska narzędzi i skrótów klawiaturowych, niezależnie od tego, co Ci się łatwiej. Poniżej znajdziesz listę. - obracanie - przytrzymanie lewego przycisku myszy i poruszanie się po kierunkach XY - w celu powiększenia, oddalenia - przytrzymania przycisku PRAWO i poruszania się w kierunku XY - poruszania się (tłumaczyć) - przytrzymanie lewego przycisku myszy i klawisza CTRL poruszaj się po kierunkach XY - aby animować - przytrzymaj lewy przycisk myszy, przeciągnij szybko i zwolnij przycisk, przeciągając obszar SPACE - animowany (automatyczny obrót) LEWA STRZAŁKA W LEWO - obróć wierzchołek. lewa STRZAŁKA W PRAWO - obracaj vert. prawy klawisz strzałki w górę - obracanie horyzontu. strzałka w górę STRZAŁKA W GÓRĘ - obróć kąt. w lewo NUMPAD 6 - przesuń w prawo NUMPAD 8 - przesuń w górę NUMER 2 - przesuń w dół PAGE UP - poziom wody do góry STRZAŁKA W GÓRĘ (w dół) NUMPAD (PLUS) - poziom wody w dół Inteligentna (nie wyczerpująca) optymalizacja AmiBroker oferuje teraz inteligentną (nie wyczerpującą) optymalizację oprócz regularnych, wyczerpujących wyszukiwań. Niewyczerpujące wyszukiwanie jest użyteczne, jeśli liczba wszystkich kombinacji parametrów danego systemu obrotu jest po prostu zbyt duży, aby możliwe było wyczerpujące wyszukiwanie. Wyczerpujące wyszukiwanie jest w porządku, o ile jest to rozsądne. Powiedzmy, że masz 2 parametry w zakresie od 1 do 100 (krok 1). To 10000 kombinacji - idealnie OK dla wyczerpującego wyszukiwania. Teraz z trzema parametrami masz milion kombinacji - wciąż jest to możliwe w przypadku wyczerpujących wyszukiwań (ale może to być lenghty). Z 4 parametrami masz 100 milionów kombinacji i 5 parametrów (1..100) masz 10 miliardów kombinacji. W takim przypadku byłoby to zbyt czasochłonne, aby sprawdzić wszystkie z nich, a jest to obszar, w którym niewyczerpujące metody inteligentnego wyszukiwania mogą rozwiązać problem, który nie może zostać rozwiązany w rozsądnym czasie przy użyciu wyczerpujących wyszukiwań. Oto instrukcja SIMPLEST, jak używać nowego niedokładnego optymalizatora (w tym przypadku CMA-ES). 1. Otwórz swoją formułę w Edytorze formuł 2. Dodaj jedną pojedynczą linię u góry formuły: OptymalizatorSetEngine (quotcmaequot) możesz też użyć quotspsoquot lub quottribquot tutaj 3. (Opcjonalnie) Wybierz cel optymalizacji w sekcji Automatyczna analiza, ustawienia, quotWalk - karta "Do przodu", "Pole docelowe optymalizacji". Jeśli pominiesz ten krok, zoptymalizuje się dla CARMDD (złożony roczny zwrot z podziałem na maksymalne wypłaty). Teraz, jeśli uruchomisz optymalizację przy użyciu tej formuły, użyjesz nowego, ewolucyjnego (nie wyczerpującego) optymalizatora CMA-ES. Jak to działa Optymalizacja jest procesem określania minimalnej (lub maksymalnej) danej funkcji. Każdy system obrotu może być traktowany jako funkcja pewnej liczby argumentów. Wejścia są parametrami i danymi kwotowania. wyjście jest Twoim celem optymalizacji (np. CARMDD). I szukasz maksymalnej funkcji. Niektóre inteligentne algorytmy optymalizacji opierają się na naturze (zachowanie zwierząt) - algorytm PSO lub proces biologiczny - algorytmy genetyczne, a niektóre są oparte na koncepcjach matematycznych pochodzących od ludzi - CMA-ES. Te algorytmy są stosowane w wielu różnych dziedzinach, w tym w finansach. W Google można podać kwotę finansową programu quotOOM lub dokumentację quotCMA-ES w programie Google, a znajdziesz wiele informacji. Niewyczerpujące (lub quotsmartquot) metody znajdą globalny lub lokalny optymalny. Celem jest oczywiście znalezienie globalnego, ale jeśli istnieje pojedynczy ostry szczyt z kombinacji parametrów zilionów, niewyczerpujące metody mogą nie znaleźć tego pojedynczego szczytu, ale biorąc pod uwagę przedsiębiorców perspektywę, stwierdzając, że pojedynczy ostry szczyt jest bezużyteczny ponieważ ten wynik byłby niestabilny (zbyt delikatny) i nie może być replikowany w obrocie rzeczywistym. W procesie optymalizacji poszukujemy raczej regionów płaskowyżu o stabilnych parametrach i jest to obszar, w którym rozświetlają się inteligentne metody. Jeśli chodzi o algorytm użyty w wyniku niewyczerpującego wyszukiwania, to wygląda następująco: a) optymalizator wygeneruje pewną (zwykle przypadkową) początkową populację zestawów parametrów b) test typu backtest jest wykonywany przez AmiBroker dla każdego zestawu parametrów z populacji c) wyniki testów wstecznych obliczane zgodnie z logiką algorytmu a nowa populacja jest generowana na podstawie ewolucji wyników, d) jeśli zostanie znaleziona nowa bestia - zapisz ją i przejdź do kroku b) dopóki nie zostaną spełnione kryteria zatrzymania Przykładowe kryteria zatrzymania mogą obejmować: a) osiągnięcie określonych maksimum iteracji b) zatrzymać, jeśli zakres wartości najlepszych obiektywów ostatnich generacji X wynosi zero c) stop, jeśli dodanie 0,1 wektora odchylenia standardowego w dowolnym kierunku osi głównej nie zmienia wartości wartości celu d) inne Aby użyć dowolnego inteligentnego (non - wyczerpujący) w AmiBrokerze musisz określić silnik optymalizatora, którego chcesz używać w formule AFL przy użyciu funkcji OptimizerSetEngine. Funkcja wybiera zewnętrzny silnik optymalizacji określony przez nazwę. AmiBroker jest obecnie wyposażony w 3 silniki: Standardowy Cząsteczkowy Optymalizuj Swarm (quotspsoquot), Tribes (quottribquot) i CMA-ES (quotcmaequot) - nazwy w nawiasach klamerkowych mają być użyte w wywołaniach OptimizerSetEngine. Poza wyborem silnika optymalizacyjnego możesz ustawić niektóre z jego wewnętrznych parametrów. W tym celu należy użyć funkcji OptimizerSetOption. Funkcja OptimizerSetOption (nazwa_zakresu, wartości) Funkcja ustawia dodatkowe parametry zewnętrznego silnika optymalizacyjnego. Parametry zależą od silnika. Wszystkie trzy optymalizatory dostarczane z AmiBroker (SPSO, Trib, CMAE) obsługują dwa parametry: quotRunsquot (liczba przebiegów) i quotMaxEvalquot (maksymalne oceny (testy) na pojedynczą trasę). Zachowanie każdego parametru jest uzależnione od silnika, więc takie same wartości mogą i zwykle przynoszą różne wyniki przy użyciu różnych silników. Różnica między Runs i MaxEval jest następująca. Ewaluacja (lub test) jest pojedynczym testem wstecznym (lub ewaluacją wartości funkcji obiektywnej). RUN jest jednym pełnym biegiem algorytmu (znalezienie optymalnej wartości) - zazwyczaj obejmuje wiele testów (ewaluacji). Każdy cykl po prostu RESTARTS cały proces optymalizacji od nowego początku (nowa początkowa liczba losowa). Dlatego też każda próba może prowadzić do znalezienia innego lokalnego maksima (jeśli nie ma globalnego). Parametr Run Run definiuje liczbę następnych algorytmów. MaxEval to maksymalna liczba ocen (baktów) w dowolnym pojedynczym cyklu. Jeśli problem jest stosunkowo prosty i 1000 testów wystarczy, aby znaleźć globalny maks., 5x1000 jest bardziej prawdopodobne, aby znaleźć globalny maksymalny, ponieważ istnieje mniejsze prawdopodobieństwo, że zostanie zablokowany w lokalnym maksimum, ponieważ następne uruchamianie rozpocznie się od początkowej losowej populacji Wybór wartości parametru może być trudne. Zależy to od problemu w trakcie testu, jego złożoności, itd. Itd. Każda metoda stochastyczna nie wyczerpująca daje gwarancję znalezienia globalnego maksimum, niezależnie od liczby testów, jeśli jest mniejsza niż wyczerpująca. Najłatwiejszą odpowiedzią jest. określić jak dużą liczbę testów, jeśli jest to rozsądne pod kątem czasu wymaganego do wykonania. Inną prostą radą jest pomnożenie przez liczbę testów o 10 nowych wymiarów. Może to doprowadzić do przecenienia wymaganych testów, ale jest całkiem bezpieczna. Napędzane silniki są zaprojektowane tak, aby były łatwe w obsłudze, dlatego też używane są niezmiernie dużo wartości domyślnych, dzięki czemu optymalizacja może być zazwyczaj wykonywana bez określania czegokolwiek (przyjmowanie wartości domyślnych). Ważne jest, aby zrozumieć, że wszystkie inteligentne metody optymalizacji działają najlepiej w przestrzeniach parametrów ciągłych i względnie gładkich funkcjach obiektywnych. Jeśli przestrzeń parametrów jest dyskretnym algorytmem ewolucyjnym może mieć kłopot z znalezieniem optymalnej wartości. Jest to szczególnie prawdziwe w przypadku parametrów binarnych (onoff) - nie pasują one do żadnej metody przeszukiwania, która używa gradientu obiektywnej zmiany funkcji (jak najbardziej inteligentnych metod). Jeśli system handlu zawiera wiele parametrów binarnych, nie należy używać ich bezpośrednio do inteligentnego optymalizatora. Zamiast tego staraj się optymalizować tylko ciągłe parametry za pomocą inteligentnego optymalizatora i przełączać parametry binarne ręcznie lub za pomocą zewnętrznego skryptu. SPSO - Standardowy Cząstek Optymalizuj Swarm Optymalizator rozdrabniania cząstek jest oparty na kodzie SPSO2007, który ma przynieść dobre wyniki, pod warunkiem że dla danego problemu są określone prawidłowe parametry (tj. Uruchamianie, MaxEval). Wybieranie prawidłowych opcji dla optymalizatora PSO może być trudne, dlatego też wyniki mogą znacznie różnić się w zależności od przypadku. SPSO. dll jest dostarczany z pełnym kodem źródłowym w podkatalogu podmenu ADKquot. Przykładowy kod optymalizatora cząstek Standard Particle Swarm: (znalezienie optymalnej wartości w 1000 testów w przestrzeni wyszukiwania 10000 kombinacji) OptimizerSetEngine (quotspsoquot) OptimizerSetOption (quotRunsquot, 1) OptimizerSetOption (quotMaxEvalquot, 1000) sl Optymalizacja (quotsquot, 26, 1, 100, 1 (FAD (fa, sl)) TRIBES - Adaptive Parameter-less Particle Swarm Optimizer Plemiona są adaptacyjne (np. , bezsensowna wersja PSO (optymalizacja roju cząstek) nie wyczerpujący optymalizator. W naukowych podstawach patrz: particleswarm. infoTribes2006Cooren. pdf Teoretycznie powinna ona działać lepiej niż zwykły PSO, ponieważ może automatycznie dostosować rozmiary roju i strategię algorytmu do rozwiązywanego problemu. Praktyka pokazuje, że jej wydajność jest dość podobna do PSO. Wtyczka Tribes. DLL implementuje wariant quotTribes-Dquot (tj. Bezwymiarowy). Na podstawie clerc. maurice. free. frpsoTribesTRIBES-D. zip autorstwa Maurice Clerc. Oryginalne kody źródłowe używane za zgodą autora Tribes. DLL jest dostarczany z pełnym kodem źródłowym (wewnątrz folderu ADK kwot) Obsługiwane parametry: quotMaxEvalquot - maksymalna liczba ocen (testów wstecznych) na wykonanie (domyślnie 1000). Należy zwiększyć liczbę ocen z rosnącą liczbą wymiarów (liczba parametrów optymalizacji). Wartość domyślna 1000 jest dobra dla 2 lub maksymalnie 3 wymiarów. quotRunsquot - liczba uruchomień (restart). (domyślnie 5) Możesz pozostawić liczbę przebiegów z domyślną wartością 5. Domyślnie liczba uruchomień (lub restartów) jest ustawiona na 5. Aby użyć optymalizatora plemion wystarczy dodać jedną linię do swojego kodu: OptimizerSetOption (quotMaxEvalquot , 5000) 5000 ocen max CMA-ES - adaptacja matryc wariancyjnych Optymalizator strategii ewolucyjnej CMA-ES (strategia ewolucyjna ewolucji macierzy zmienności wariancji) jest zaawansowanym nie wyczerpującym optymalizatorem. W naukowych podstawach patrz: bionik. tu-berlin. deusernikocmaesintro. html Według naukowych wskaźników przewyższających dziewięć innych najpopularniejszych strategii ewolucyjnych (takich jak PSO, ewolucja genetyczna i różnicowa). bionik. tu-berlin. deusernikocec2005.html Wtyczka CMAE. DLL implementuje wariant wyszukiwarki o numerGlobalquot z kilkoma restartami ze wzrastającym rozmiarem populacji CMAE. DLL jest dostarczany z pełnym kodem źródłowym (wewnątrz folderu ADK kwot) Domyślnie liczba uruchomień (lub restartów) jest ustawiona do 5. Zaleca się pozostawienie domyślnej liczby restartów. Możesz zmienić to za pomocą OptymalizatoraSetOption (kwRunsquot, N), gdzie N powinno być w zakresie 1..10. Określenie więcej niż 10 przebiegów nie jest zalecane, chociaż możliwe. Zauważ, że każdy bieg używa Dwukrotnie wielkości populacji poprzedniego biegu, więc rośnie wykładniczo. W związku z tym z 10 biegami kończy się liczba ludności 210 większą (1024 razy) niż w pierwszej rundzie. Jest inny parametrMaxEvalquot. Wartością domyślną jest ZERO, co oznacza, że ​​wtyczka automatycznie obliczy MaxEval. Zaleca się NIE definiowania MaxEval przez siebie, ponieważ domyślnie działa prawidłowo. Algorytm jest wystarczająco inteligentny, aby zminimalizować liczbę wymaganych ocen i zbiegać się bardzo szybko w punkcie rozwiązania, więc często znajduje rozwiązania szybciej niż inne strategie. To normalne, że plugin pominie niektóre etapy oceny, jeśli wykryje znalezione rozwiązanie, dlatego nie należy się dziwić, że pasek postępu optymalizacji może poruszać się bardzo szybko w niektórych punktach. Ponadto wtyczka może zwiększyć liczbę kroków w stosunku do początkowej wartości szacowanej, jeśli jest potrzebna do znalezienia rozwiązania. Ze względu na adaptacyjny charakter, szacowany czas podany po lewej stronie lub liczbie kilogramów podanych w oknie dialogowym postępu jest tylko najdokładniejszy w danym momencie i może się różnić w trakcie kursu optymalizacji. Aby skorzystać z optymalizatora CMA-ES, wystarczy dodać jedną linię do swojego kodu: spowoduje to optymalizację z ustawieniami domyślnymi, które w większości przypadków są w porządku. Należy zauważyć, podobnie jak w przypadku wielu algorytmów wyszukiwania przestrzeń kosmicznego, że zmniejszenie parametru sqstepquot w wywołaniach funcitonowych Optimize () nie ma istotnego wpływu na czasy optymalizacji. Jedyną rzeczą, która ma znaczenie, jest problemowy przykładowy numer pytania, tj. Liczba różnych parametrów (liczba funkcji optymalizacji połączeń). Liczba parametrów na jeden parametr może być ustawiona bez wpływu na czas optymalizacji, więc użyj najlepszej rozdzielczości, jaką chcesz. W teorii algorytm powinien być w stanie znaleźć rozwiązanie w co najmniej 900 (N3) (N3) testach wstecznych, gdzie liczbaNot jest wymiarem. W praktyce zbiegnie się dużo szybciej. Na przykład rozwiązanie w przestrzeni parametrów wymiarowych 3 (N3) (powiedzmy 100100100 1000 milisekundowych kroków) można znaleźć tylko w krokach 500-900 CMA-ES. Wieloinwidrowana indywidualna optymalizacja Począwszy od AmiBroker 5.70 oprócz wielu-symboli wielozmiennych. można przeprowadzić wielogodzinną optymalizację pojedynczego symbolu. Aby uzyskać dostęp do tej funkcji, kliknij strzałkę w dół obok przycisku quotOptimizequot w oknie Nowa analiza i wybierz opcję Indywidualne optymalizowanie. Osoba indywidualna Optimizequot wykorzystuje wszystkie dostępne rdzenie procesora do przeprowadzania optymalizacji pojedynczego symbolu, co znacznie przyspiesza jej wyniki niż regularna optymalizacja. W bieżącym trybie symbolquot wykona optymalizację na jednym symbolu. W trybie kwarcowym i kwerendowym przetworzy się wszystkie symbole kolejno, tj. Pierwszą pełną optymalizację pierwszego symbolu, a następnie optymalizację na drugim symbolu itp. Ograniczenia: 1. Niestandardowy backtester NIE jest obsługiwany (jeszcze) 2. Inteligentne silniki optymalizacji nie są obsługiwane - tylko optymalizacja EXHAUSTIVE działa. Ostatecznie możemy pozbyć się ograniczeń (1) - gdy AmiBroker zostanie zmieniony, więc niestandardowy backtester nie używa już OLE. Ale (2) jest prawdopodobnie tu, aby zostać na dłużej. System Trading: Jak kalkulować przecięcie średniej krzyżyki, która zwróciła 28 rocznie Ah, skromny, średni ruchowy system handlu crossoverem Jako jeden z pierwszych systemów (jeśli nie pierwszy) stworzony i używany przez Richarda Donchiana i Eda Seykotę już w późnych latach sześćdziesiątych, pewnie słyszałeś o przecięciu średniej prędkości w jakiejś formie lub formie podczas swojego pobytu na rynkach. Jednym z najczęstszych jest 8220Golden Cross8221 i 8220Dead Cross8221, gdzie 50-dniowa średnia ruchoma przekracza (lub poniżej) 200-dniową średnią ruchoma. W tym filmie znajduje się 61-dniowa i 93-dniowa średnia krzyżówka, w której dodajemy również 10-stopową utratę przy użyciu funkcji ApplyStop w programie Amibroker. Pomaga to zredukować maksymalny pobór, aby system był trochę wygodniejszy. Można to zrobić, jeśli chcesz, nawet przy użyciu średniej ruchomej 60 dni i 90 dni 8211 wyniki są podobne. Ogółem system w ciągu ostatnich 13 lat zwrócił średnio 28 rocznie. Oczywiście, jak wiadomo, nie jest to gwarancja przyszłych wyników, ale może dać Ci pomysł na tworzenie własnych systemów handlowych. Sprawdź na poniższym filmie Wyniki systemu Moving Average Crossover: Na liście ASX 200 w ciągu 13 lat: Win Percent: 49 Average Annual Return: 36 p. a. Maksymalny system drawdown: 45 Po dodaniu 10 stop loss: Win procent: 41 Average annual return: 28 p. a. Maksymalne zerwanie systemu: 37 Oczywiście warto rozważyć sam test systemu handlowego, dodać do niego części lub zmodyfikować, dostosować do własnych potrzeb, mając świadomość maksymalnego progu obciążeń i zrozumieć potrzebę testowania danych poza próbą. Ale to świetne spojrzenie na inny system handlowy i jak go zmodyfikować w programie Amibroker. W ciągu kilku sekund możemy też sprawdzić wyniki testów wstecznych, zamiast testować je samodzielnie i przez kilka tygodni. Są to wspaniałe zalety automatycznego testowania szybko, wolnego i łatwego. Mam nadzieję, że to pomoże, szczęśliwy trend i cieszyć się 8211 Dave McLachlan Filmy w BEZPŁATNYM kursu Amibroker: FREE Trading System Lekcje wideo: BEZPŁATNE Amibroker Q amp A Filmy: 6 Responses Leave a ReplyStock Strategia czasowa: Moving Average Crossover Średnia ruchoma jest bardzo przydatny wskaźnik, który jest używany w wielu różnych branżach, a nie tylko finansach. Ważna jest wiedza na temat strategii czasowej na giełdzie. Na rynkach handlowcy nakładają średnie kroczące na ich wykresy cen, aby pokazać, kiedy rynek trwa i ma obiektywne sygnały kupna i sprzedaży. Wykres cen z przesuniętą ruchomą średnią. Src: Indeks IG. Jeśli średnia ruchoma wzrośnie w górę, wskazuje to na ogół, że rynek ma tendencję wzrostową, podczas gdy średnia ruchoma w dół pokazuje, że rynek jest niższy. Ruchowe przecięcia średnie są również wykorzystywane do identyfikacji zmian tendencji. Jeśli zatem średnia ruchoma, taka jak 50-dniowa średnia ruchoma, przewyższa wolną średnią ruchoma, taką jak 200-dniowa średnia ruchoma, można powiedzieć, że rynek ten zmienił się z tendencji spadkowej do nowej tendencji wzrostowej. I to jest znany handlowcom jako Złoty Krzyż. Przeciwne jest to, gdy 50-dniowa średnia ruchoma przecina się w ciągu 200-dniowej średniej ruchomej i jest znana jako Krzyż Śmierci. Wykorzystanie średniej ruchomej jako filara Niektórzy handlowcy uważają, że Złoty Krzyż to silny sygnał na giełdzie, a Śmierć krzyży jest silnym sygnałem do sprzedaży, opierając się na założeniu, że rynki finansowe poruszają się w średnio - i długoterminowych trendach. Jeśli użyjesz tych dwóch sygnałów, możesz zarobić zyski, gdy rynek będzie się zwiększać, i przejdź do gotówki, gdy rynek będzie niższy. Pozwala więc załadować trochę danych i zobaczyć, jak ta strategia czasu rzeczywistego na rynku akcji rzeczywiście odegrała w ciągu ostatnich 100 lat. Więc najpierw załadę do Amibroker historyczne dane dzienne dla Dow Jones Industrial Average i zamierzam wyliczyć zyski z tytułu kupna i zwrotu pomiędzy rokiem 1900 a 2017. Jak widać na podstawie poniższych wyników, powrót z zakupu i przytrzymania przez Dow Jones wynosi 5,22. a maksymalny wypłat wynosi 89. które miały miejsce podczas Wielkiego Kryzysu. (Drawdown to sposób pomiaru spadku inwestycji w górę iw dół. W tym przypadku inwestycja kupna i sprzedaży spadłaby 89 z szczyt w 1929 r. Do koryta w 1932 r.). Warto wspomnieć, że te lata są wartościami nominalnymi. W celu uzyskania rzeczywistych zwrotów w czasie rzeczywistym konieczne jest dostosowanie danych do ponownego zainwestowania dywidend, a także dla inflacji. Możliwe jest dokonanie tej korekty, ale w codziennych potrzebnych danych nie jest to takie proste. Dlatego też zostaną wykorzystane nominalne stopy zwrotu. Pamiętaj tylko, że zwrot z tytułu dywidend może być nieco wyższy w prawdziwym życiu. Ogólnie rzecz biorąc, na rynku akcji okazał się powrócić około 6-7 w bardzo długim okresie. 89 wycofanie podczas Wielkiego Kryzysu. Uruchomienie strategii krzyżowej Teraz, zamiast używać podejścia kupuj i trzymaj, kupimy Dow tylko wtedy, gdy 50-dniowa średnia ruchoma przecina 200-dniową średnią ruchową (Złoty Krzyż). I będziemy sprzedawać rynek, gdy 50-dniowa MA przecina 200-dniową MA (Krzyż Śmierci). Widoczne poniżej wyniki wskazują, że średni ruchowy filtr działał: zamiast tylko kupować i utrzymywać indeks, w rzeczywistości zrealizowaliśmy 81 transakcji w danym okresie. A następny wykres pokazuje pochodzenie z ostatnich transakcji. Zielone strzałki to sygnały kupna i czerwone strzałki to sygnały sprzedające. Widać, że średnia ruchoma rzeczywiście wyprowadziła nas z rynku tuż przed kryzysem kredytowym. I to nas z powrotem na rynek w dniu 1 lipca 2009 roku. Teraz zrób to samo, ale na innym zbiorze danych. Więc w tym przypadku Ill prowadził strategię kupna i sprzedaży na indeks SampP 500 w okresie od 1955 do 2017 r. Z wyników wynika, że ​​roczny zwrot z zakupu i trzymania wynosi 6,65, a wypłaty w wysokości -57 w danym okresie. I tutaj kupno i przytrzymanie daje nam 1,65 rocznego zwrotu i wycofania z kryzysu kredytowego -57. Prowadzi to do bardzo niestabilnej krzywej słuszności, jak widać poniżej: Tymczasowa średnia ruchoma strategia krzyżowa skutkuje rocznym zwrotem w wysokości 6,06, przy czym spadek wynosi zaledwie 20. I jak widać, krzywa kapitału własnego przy średniej ruchomej krzywej jest o wiele mniej przerażająca. Ponownie, średnia ruchoma strategia uniemożliwiła nam wycofanie się z rynku podczas większości wypadków na rynku w 2008 roku. Strategia krzyżowa MA: Podsumowanie Ogólnie mówiąc, jest to wygrana dla przecięcia średniej ruchomej jako strategii czasowej na giełdzie. Prowadziliśmy trzy testy i popularna strategia Golden Cross pomogła nam czasu na rynku lepiej niż zakup i przy każdej okazji. Dla mnie najważniejsze jest to, że znacznie zmniejszyło naszą ekspozycję na straty na rynkach niedźwiedzia. Oczywiście moglibyśmy pójść dalej tą drogą i przyjrzeć się różnym szybkościom poruszania się i różnym harmonogramom, ale nie chcę zbyt dużo optymalizować, więc niech zostawi cię na baczności. Wykorzystanie szerszego rynku do czasu portfela Teraz widzimy, jak prosta średnia ruchoma może pomóc w ustalaniu czasu na giełdzie. Ale co jeśli nie jesteśmy zainteresowani zakupem samego rynku akcji, ale raczej portfelem różnych akcji. Być może szerszy giełdowy czas może pomóc w naszych indywidualnych transakcjach czasowych. Aby to sprawdzić, założyłem bardzo prostą strategię dotyczącą portfela akcji na podstawie tempa i 52-tygodniowych poziomów. Bardzo prosto, gdy zapas zamknie się na nowym 52-tygodniowym wysokim poziomie, że akcje są dodawane do portfela na następnym otwarciu. Za każdym razem, gdy zamyka się na nowym 26 tygodniach niskich, zapas jest sprzedawany na następnym otwarciu i spada z portfela. Portfel może trzymać w dowolnym momencie maksymalnie 10 zapasów, a każdy z nich jest ważony w równym stopniu bez wykorzystania marginesu. Strategia wybiera zasoby z Wszechświata SampP 500, a prowizje są ustalane na 10 na każdą transakcję z kapitałem rozliczeniowym 10.000. Uruchomienie tej podstawowej strategii portfela skutkowało rocznym zwrotem w wysokości 9,69 w latach 2000 - 2017, co jest całkiem dobre. Korzystanie z SampP 500 jako filara Wielu praktyków uważa, że ​​najlepiej tylko kupić akcje, gdy szerszy rynek ma tendencję wzrostową i sprzedawać te akcje, gdy rynek idzie na południe lub ma tendencję spadkową. Filtr rynkowy mógłby zatem poprawić prostą strategię pędu, taką jak ta, biorąc portfel w gotówkę, gdy szerszy rynek będzie się zmniejszał. Więc co zrobić, jeśli wprowadzimy filtr rynkowy tak jak wcześniej, więc kupujemy tylko akcje, gdy SampP 500 jest w trendzie wzrostowym. W następnym teście, akcje są kupowane i dodawane do portfela tylko wtedy, gdy 50-dniowa średnia ruchoma SampP 500 powyżej it8217s 200-dniowa średnia ruchoma. Jeśli 50-dniowa średnia ruchoma SampP 500 przekroczy podaną przez niego średnią ruchową na 200 dni, wszystkie zapasy są sprzedawane, a portfel przenosi się na gotówkę. Gdy w SampP 500 pojawi się nowy złoty krzyż, system może zacząć kupować akcje ponownie. Uruchomienie tej strategii przy użyciu filtru SampP 500 spowodowało, że wyniki zwracają się w 7.47 i wycofują -12. Choć rentowność roczna spadła, wypłaty uległy znacznej poprawie, a krzywa kapitału własnego jest o wiele gładsza: tym razem system będzie kupował akcje, gdy osiągnie 52 tygodnie, podobnie jak pierwszy test. Następnie będzie sprzedawać wszystkie zapasy w portfelu, jeśli w SampP 500 pojawi się Krzyż Śmierci. W ten sposób pozycje zostaną obniżone, gdy szerszy rynek spadnie. Jednak nie ma filtra dla długich zawodów, jak test dwa. Innymi słowy, rynek nie musi być w pełni ukształtowanym trendem, aby zainicjować nowe transakcje, co czyni strategię większą elastyczność i ekspozycję. Przeprowadzenie tego testu przyniosło coroczny zwrot 5,49 i zmniejszenie -38. W porównaniu z pierwotną strategią odliczenie zmniejszyło się, ale roczna rentowność również uległa zmianie. Wydaje mi się, że problem z testem trzy, jest to, że system wychodzi z wygranych pozycji zbyt wcześnie. Tylko dlatego, że szerszy rynek idzie w dół nie oznacza, że ​​nie ma indywidualnych zasobów, które przewyższają benchmark. Dlatego w następnym teście zrobię coś przeciwnego. Stocks are only bought if the SampP 500 is in an uptrend (the 50 MA is above the 200 MA) but they are not sold if the SampP 500 moves into a downtrend. This gives a better annual return of 8.78 and a maximum drawdown of -29. Next I will quickly take each of these tests back to the beginning of the data set to see what happens on a longer time frame. (By the way, I am using stocks from the SampP 500 universe that includes historical constituents, this is provided by Norgate Premium Data .) Test 1, between 1985 and 2017, produced an annual return of 10.01 with a maximum drawdown of -33 . This is the original system with no market timing filter. Test 2, between 1985 and 2017, produced an annual return of 6.93 with a -34 drawdown so this was much much worse than our previous result. From looking at the results and equity curve, the buy criteria may be too strict. Test 3, between 1985 and 2017, produced an annual return of 3.73 with a maximum drawdown of -31 . Again, this is a bad result for the market timing filter. Test 4, between 1985 and 2017, produced an annual return of 8.71 and a maximum drawdown of -31 . Portfolio filter: Summary Overall, the moving average filter appears to have some merit when used to trade the broader stock market. However, the case is not so clear-cut when used as part of a portfolio strategy. When timing the overall market, the crossover strategy improves both drawdown and return in most cases. But when using the crossover as a filter for a momentum portfolio strategy, there is no clear improvement in either. One reason for this could be that the momentum portfolio already has it8217s own exit criteria built into the system. Using an extra market filter adds extra complexity and might therefore be overkill. One thing the momentum portfolio needs to succeed is to be able to capture long tail profits in stocks so the cutting short of trades is not always helpful. It is also possible that the market filter criteria is simply too strict and by changing the parameters slightly, we might be able to improve results. That may be so, but these results do suggest one thing at least that the market filter strategy is not necessarily a magic bullet for portfolio systems, and this also confirms my own previous findings. Charts provided by Amibroker. Dow Jones data from Measuring Worth. All other stock market data from Norgate Premium Data . JB MarwoodSimple Triple Moving Average Crossover 8211 Amibroker AFL Code Here is the very simple and classical example to build a triple EMA (Exponential Moving Average Crossover system). System is quite popular if anyone (traderinvestor) is a newbie to classical technical analysis. In this AFL the triple moving average buy, sell signals are coded and comes with Scanning and Exploration functionality. It is a simple trend following system where the system shows buy signal if 3 EMA 13 EMA 34 EMA and shows a sell signal if 3 EMA Averages and applydrag-and-drop the Triple Moving Average Crossover code over blank chart. 7)Bingo you are done. Now you will be able to see the triple moving average crossover with buy and sell indicators. Powiązane odczyty i obserwacje O Rajandran Rajandran jest przedsiębiorcą działającym w pełnym wymiarze czasu i założycielem Marketcalls, niezwykle zainteresowanym budową modeli czasowych, algos. dyskrecjonalne koncepcje handlowe i analiza sentymentalna. Teraz instruuje użytkowników na całym świecie, od doświadczonych przedsiębiorców, profesjonalnych przedsiębiorców indywidualnych handlowców. Rajandran uczęszczał do college'u w Chennai, gdzie zdobył tytuł BE w elektronice i komunikacji. Rajandran ma szerokie doświadczenie w handlu programami, takimi jak Amibroker, Ninjatrader, Esignal, Metastock, Motivewave, Market Analyst (Optuma), Metatrader, Tradingivew, Python i rozumie indywidualne potrzeby przedsiębiorców i inwestorów korzystających z szerokiej gamy metodologii. Thanks very much. Wymagany Rząd Federalny USA Zastrzeżenie CTFC Reguła 4.41 Obligacje futures zawierają znaczne ryzyko i nie są odpowiednie dla każdego inwestora. Inwestor mógł potencjalnie stracić wszystko lub więcej niż początkowe inwestycje. Kapitałem ryzyka jest pieniądze, które można utracić, nie narażając się na niebezpieczeństwo finansowe ani styl życia. Uwzględnij tylko kapitał podwyższonego ryzyka, który powinien być wykorzystany do obrotu, a tylko osoby o wystarczającym kapitale podwyższonego ryzyka powinny rozważyć handel. Dotychczasowe wyniki niekoniecznie wskazują na przyszłe wyniki. CTFC RULE 4.41 WYNIKI W ZAKRESIE HYPOTETYCZNYCH LUB SYTUROWANYCH WYNIKÓW WYKONANIA WYRAŻONYCH OGRANICZAŃ. NIE PRZEWIDZIEĆ, ŻE INNE WYNIKI WYDAJNOŚCI, SYTUROWANE WYNIKI NIE UDZIELAJĄ RĘCZNEJ REKRUTACJI. Także od czasu, w którym targi nie zostały zrealizowane, rezultaty mogą być niższe lub niższe w odniesieniu do skutków, jeśli jakiekolwiek są pewne czynniki rynkowe, takie jak płynność. SYMBOLE PROGRAMY TRADYCYJNE W OGÓLNYCH MOGĄ ZOSTAĆ FUNKCJONOWANE Z FUNKCJONAMI, KTÓREGO ZOSTAJE ZAPROPONOWANE ZE ŚWIADECTWO HINDSIGHT. ŻADNA OŚWIADCZENIE ZOSTAŁO WYKONANE, ŻE JAKĄKOLWIEK KONTO LUB JEST LIKWIDOWANE DO OSIĄGNIĘCIA ZYSKU LUB STRATY podobne do tych, które zostały ujawnione. Wszystkie branże, wzory, wykresy, systemy itp. Omówione w tej witrynie lub reklamie są jedynie ilustracyjne i nie są interpretowane jako szczegółowe zalecenia doradcze. Wszystkie przedstawione tu pomysły i materiały służą wyłącznie celom informacyjnym i edukacyjnym. Żaden system ani metodologia handlu nigdy nie zostały opracowane, które mogą zagwarantować zyski lub zapobiegać stratom. Opinie i przykłady użyte w niniejszym dokumencie to wyjątkowe wyniki, które nie dotyczą przeciętnych osób i nie mają na celu reprezentowania ani gwarantowania, że ​​każdy osiągnie te same lub podobne wyniki. Handel oparty na systemie Trend Metoda odbywa się na własne ryzyko na własne konto. To nie jest oferta zakupu lub sprzedaży kontraktów futures. Copyright 2018 Marketcalls Usługi finansowe Pvt Ltd middot Wszystkie prawa zastrzeżone middot i nasza mapa serwisu middot Wszystkie znaki towarowe firmy Logos należą do ich odpowiednich właścicieliDobre danych i informacji są dostarczane wyłącznie w celach informacyjnych i nie są przeznaczone do celów handlowych. Ani strona marketcalls. in ani żaden z jej promotorów nie ponoszą odpowiedzialności za jakiekolwiek błędy lub opóźnienia w treści ani o działania podjęte na ich podstawie.

Comments

Popular Posts