Historia naszego studenta 2

Anonim

W poprzednim artykule omówiliśmy ogólny schemat tworzenia i projektowania systemu algorytmicznego handlu na giełdzie. Rozpatrzmy bardziej szczegółowo pracę każdego modułu. Jak dostać się do danych historycznych dotyczących prac już wiemy. Rozważmy teraz wymaganą minimalną funkcjonalność dla terminalu wizualizacji. Poniższe zrzuty ekranu dadzą moją ostatnią wersję „Analizator”, we wcześniejszej wersji można pobrać z serwera S #. Wystarczy opisać jaki system strategii wizualizacji. Określenie zakresu testu, ramy czasowe i narzędzia testowego. Tak dalej, ale nie koniecznie, można ustawić prowizję, początkowy depozyt i innych. Opcje konfigurowalny. Budowanie wykres świecowy również pokazać wskaźnik. Poniżej wykreślić słuszności. W tym przykładzie, w celu oceny strategii używam kalkulację zysków. W wersji standardowej grafice PNL S # używa nieco innej wersji, bardziej nadaje się do handlu w czasie rzeczywistym przy obliczaniu marginesu wahań. Czerpiemy transakcję wykreślono jako strzałki. Green Arrow zakup czerwonym sprzedaż. Jest to standardowa funkcja. Śruba kod nie jest trudny, czas główny zaokrąglić w górę transakcja świece czasu, a może wykazywać błędne. Co chcemy osiągnąć? Nie złe wiedzieć, co iw jakiej kolejności zrobiłem naszą strategię. Musimy Logging! Standardowa wersja jest pełna różnego rodzaju logowania systemu Windows, ale jak zawsze Ja nie szukam na łatwiznę i ruszył rejestrowanie na podstawie ListView WPF C #. Dla wygody wniesionej do przycisku na ekranie, aby rozpocząć wyników badań i tabelę z obliczeń statystycznych strategii danych. Statystyki Jest przed rozpoczęciem strategię do obrotu na czeku giełdowego wykonania bardzo ważne - testu. Skąd mamy wiedzieć, która strategia jest dobre, a co złe? Okazuje się, że całkowity zysk na koniec badania nie jest jedynym ważnym wskaźnikiem naszego algorytmu. Dla pełnego obrazu, musimy uczyć się statystyki naszej strategii. Podstawowa formuła dla strategii: 1. Współczynnik Zysk (PF) Obliczony jako stosunek pewnym okresie suma wszystkich transakcji zyskownych do sumy wszystkich nieopłacalne ze znakiem dodatnim. Większa wartość odpowiada niższym prawdopodobieństwem ruinę. Współczynnik zysk = [Suma zysków ze wszystkich transakcji zyskownych]/[suma zysków wszystkich nierentownych transakcji] 2. Maksymalna Śróddzienny Spadek (Midd) Zwiększenie maksymalnej straty (Midd - Maksymalny spadek wartości ceny intraday). Reprezentuje największą dziurę finansową, która pobiera z naszego systemu. Maksymalna strata rośnie - jest to głębokość maksymalnej wypłaty za dany okres. 3. prawdopodobieństwo wygranej% W (P) % W (P), prawdopodobieństwo wygranej (Transakcje wygranej stosunek całkowitej liczby z nich). * Prawdopodobieństwo wygranej> 0, 5. 4. oczekiwanie M [X] Oczekiwanie - pojęcie średniej wartości zmiennej losowej w teorii prawdopodobieństwa. W literaturze obcej oznaczoną E [X], w Russian M [X]. Statystyki często używają notacji | j. Najczęstszymi warianty obliczeń: 1) K [X] = Oczekiwanie wygranej prawdopodobieństwo wygranej średnią wartość * + * prawdopodobieństwo utraty średnią wartość utraty (w wyniku zwiększenia jednej operacji jako wartość bezwzględna) 2) K [X], wartość oczekiwaną (1+ (średnia wygrana/strata średnia wartość)) -1 * prawdopodobieństwo wygranej (jako% prawdopodobieństwem wynik zysku okresu) * m [X]> 0, 6 odnosi się do przykładu wykonania 2. 5. Odzyskiwanie Factor (RF) RF (współczynnik odzysku, czynnik odbudowa) = stosunek zysku za okres (Zysk) wzrasta do maksymalnej straty (Midd) w tym samym okresie. * Podczas testowania RF musi być> 2 6. Odchylenie standardowe (σ) Standardowe odchylenie σ lub SD (sigma) - jest powszechnie stosowanym środkiem Scatter zmienność (zmienność) danych. Odchylenie standardowe populacji jest określana za pomocą wzoru: SD = [S (XI-M) 2 N] 1/2, gdzie m - średnie populacji, N - liczba ludności. 7. Z-score Z-score w celu określenia skuteczności systemu handlu jedną cyfrę, zapewniając dokładniejsze wyniki w porównaniu z innym pojazdem. Ponadto, dodatni lub ujemny Z-score niesie dodatkowe informacje na temat cech wykorzystania zajmowanego systemu handlu. Faktycznie, Z konto wzór obliczeniowy ma postać Z-score = (N * (R - 0, 5) - X) / ((X * (X - n)) / (N -1)) ^ (1/2) N - łączna liczba transakcji; X - 2 * ilość zyskownych transakcji * liczba utraty transakcji; R - liczba przebiegów (liczba razy po transakcji była utrata dochodowe i na odwrót); ^ (1/2) - jest to pierwiastek. Aby ustalić wynik_z, trzeba mieć dane przez co najmniej 30 transakcji.Dodatnia lub ujemna Z-score niesie dodatkowe informacje: 1) pozytywny wynik Z oznacza, że ​​niemal po każdym zyskownego handlu powinna być nieopłacalna, to znaczy, System handlu dąży do przemian. A im większa liczba Z-score, tym bardziej prawdopodobne jest naprzemienne. Bazując na tym, że następuje po każdym nieopłacalne wzrostem wielkości partii transakcji (od następnego transakcja będzie opłacalna), a po opłacalne - obniżenie dużo. 2) Z-ujemny wynik oznacza, że ​​pojazd zawiera kolejne serie obu transakcji opłacalnych i nieopłacalne. Odkrycia te rysować szczegółowo następujący scenariusz - jeśli system jest podatny na serii po przegranej pierwszej transakcji powinien zaprzestać swojej działalności i ponownie wejść na rynek dopiero po pierwszym zyskownym handlu. Tęsknimy lukratywny kontrakt, ale w tym samym czasie, mijamy szereg transakcji przegranej. Inne statystyki 8. Łączna liczba transakcji. 9. Liczba zyskownych transakcji. 10. Liczba transakcji przegranej. 11. Średni zysk na transakcji. 12. średnia strata na transakcji. 13. Maksymalny zysk. 14. Maksymalna strata. Oczywiście, istnieją inne wskaźniki strategii, ale są to najbardziej powszechne i pouczające. Oto statystyki w strategiach ZESTAWIENIE: Więcej informacji na temat testowania i optymalizacji prosty Wcześniej patrzyliśmy na przykładach, w jaki sposób można wizualizować swoją strategię: I obliczyć jego główne parametry: Ale wszystkie te aplikacje mają GUI (ang. Graphical interfejs użytkownika GUI), który wpływa na działanie tych aplikacji. W celu przetestowania szereg strategii i bardzo szybko musimy użyć bardziej wydajną architekturę aplikacji. Na przykład, aplikacje konsolowe, chociaż niektórzy specjaliści uda się zrobić bez GUI. Rozważmy prostą aplikację konsoli do strategii badań brute force. Do testowania, nie koniecznie wyświetlania grafiki, zbudować świecę, wizualizacji tabelę. Wszystko to można pozostawić w tle. Na przykładzie strategii dwóch przecinających SMA (Simple Moving Average, prosta średnia ruchoma) postara się wybrać najlepszą kombinację długości okresów „krótkie” i „długie” średnich ruchomych. W celu utworzenia tej gamy parametrów „długa” SMA 20 do etapu 120 i wybór ten zakres 1. Otrzymane dane są przechowywane w jednowymiarowej tablicy {20, 21, 22,…, 120}. Podobnie, w przypadku „krótką” SMA z zakresu od 5 do 20 w tym samym etapie 1 stworzy jednowymiarową tablicę {5, 6, 7,…, 20}. Teraz tworzymy tablicę wszystkich możliwych wariantów strategii kombinacji tablicę wartości, „długi” i „short” SMA. Otrzymujemy następującą tablicę opcji parametrów naszej strategii: {{20, 5}, {20, 6},…, {20, 20}, {21, 5},…, {120, 19}, {120, 20}}, Wszystkich 1500 wersje naszej strategii. Niemało. Dlatego tak ważne są badania prędkości. S # istnieją proste przykłady, jak przeprowadzić takie badania. Wziąłem oryginalne ustawienia naszej tablicy SMA o strategii opcyjnych, a to z kolei w cyklu testowania. W rezultacie, po każdym badaniu dostaje dużo [] MyTrades które zawierały transakcje danych czasowych, ich kierunek (kupno lub sprzedaż), wolumen transakcji (liczba umów w transakcji) oraz cen transakcyjnych dla okresu badania. W końcu mamy szereg tablic z wynikami testów równa liczbie wszystkich możliwych parametrów naszej strategii. Save (serializacji do pliku binarnego) wszystkich naszych parametrów i wyników badań. Otwórz te pliki w „Analyzer” omówionego wcześniej, możemy liczyć na tych danych, statystyk i uzyskać ostateczną tabelę z wynikami badań.Sortowanie danych, na przykład, oczekuje wypłat i analizować wyniki. W tym przypadku, możemy natychmiast wizualizację strategia interesowała nas. Coś takiego jest testowany i strategie optymalizacji. Ale brute force optymalizacji okazała jako nieefektywne i zasobochłonne dla dużych ilości danych. W następnym artykule przyjrzymy się innych opcji dla bardziej skutecznych strategii optymalizacji. Wszystkie trendu wzrostowego! Z poważaniem, Bond. Związania naszych studentów!