Badanie wstępne: Interpretacja wcześniejszych testów Backtesting jest kluczowym elementem skutecznego rozwoju systemu handlu. Osiąga się to przez rekonstrukcję danych historycznych, transakcji, które miały miejsce w przeszłości przy użyciu reguł zdefiniowanych przez daną strategię. Wynik oferuje statystyki, które mogą być wykorzystane do oceny skuteczności tej strategii. Wykorzystując te dane, przedsiębiorcy mogą zoptymalizować i poprawić swoje strategie, znaleźć wszelkie wady techniczne lub teoretyczne oraz uzyskać zaufanie do swojej strategii przed jej zastosowaniem na rynkach rzeczywistych. Podstawową teorią jest to, że każda strategia, która działała dobrze w przeszłości, prawdopodobnie będzie działać dobrze w przyszłości, a odwrotnie, każda strategia, która w przeszłości słabo działała, prawdopodobnie będzie słabo działać w przyszłości. W tym artykule sprawdzamy, jakie aplikacje są wykorzystywane do testów wstecznych, jakie dane są uzyskane i jak je wykorzystać. Dane i narzędzia Backtesting mogą dostarczyć wiele cennych informacji statystycznych dotyczących danego systemu. Niektóre uniwersalne statystyki dotyczące analizy wstępnej obejmują: Zysk lub stratę netto - procentowy zysk lub strata netto. Ramka czasowa - przeszłe daty, w których wystąpiło wystąpienie testu. Wszechświat - zapasy, które zostały włączone do testów. Środki zmienności - maksymalny procent upside i downside. Średnie - procentowy przeciętny zysk i średnia strata, przeciętne słupki. Ekspozycja - Odsetek zainwestowanego kapitału (lub narażonego na rynek). Stosunki - wskaźnik wygranych strat. Roczny zwrot - procentowy zwrot w ciągu roku. Skorygowane ryzyko - Procentowa rentowność w zależności od ryzyka. Zwykle oprogramowanie testów wstecznych będzie miało dwa ekrany. Pierwszy pozwala przedsiębiorcy na dostosowanie ustawień do testów wstecznych. Dostosowania te obejmują wszystko od okresu do prowizji. Oto przykład takiego ekranu w programie AmiBroker: Drugim ekranem jest rzeczywisty raport wyników testów wstecznych. Tutaj można znaleźć wszystkie wymienione wyżej statystyki. Oto przykład tego ekranu w AmiBroker: Ogólnie większość oprogramowania handlowego zawiera podobne elementy. Niektóre wysokiej klasy programy zawierają również dodatkowe funkcje do automatycznego określania pozycji, optymalizacji i innych bardziej zaawansowanych funkcji. 10 przykazań Istnieje wiele czynników, na które przedsiębiorcy zwracają uwagę, gdy są one kontrolą wyników strategii handlowych. Poniżej znajduje się lista 10 najważniejszych rzeczy, które należy pamiętać podczas testów zwrotnych: wziąć pod uwagę ogólne trendy rynkowe w czasie, w którym została przetestowana dana strategia. Na przykład, jeśli strategia została sprawdzona tylko w latach 1999-2000, może nie działać dobrze na niedźwiedzie. Często dobrym pomysłem jest sprawdzenie wyników w długiej ramie czasowej obejmującej kilka różnych typów warunków rynkowych. Weźmy pod uwagę wszechświat, w którym przeprowadzono testy wstecznego. Na przykład, jeśli szeroko zakrojony system rynkowy jest testowany z wszechświatem składającym się z zasobów technicznych, może nie działać dobrze w różnych sektorach. Zgodnie z ogólną zasadą, jeśli strategia jest ukierunkowana na określony gatunek zasobów, ograniczyć wszechświat do tego gatunku, ale we wszystkich innych przypadkach utrzymywać duży wszechświat do celów testowych. Środki o zmienności są niezwykle ważne, aby rozważyć opracowanie systemu handlowego. Jest to szczególnie słuszne dla rachunków dźwigniowych, które są przedmiotem wezwania do depozytu zabezpieczającego, jeśli ich kapitał spadnie poniżej określonego poziomu. Handlowcy powinni dążyć do utrzymania niskiej zmienności, aby zmniejszyć ryzyko i umożliwić łatwiejsze przejście zi do danego zasobu. Przeciętna liczba prętów jest bardzo ważna, aby obserwować rozwój systemu handlu. Chociaż większość oprogramowania testowania wyników zawiera koszty prowizji w ostatecznych obliczeniach, nie oznacza to, że należy zignorować tę statystykę. Jeśli to możliwe, podniesienie średniej liczby posiadanych prętów może zmniejszyć koszty prowizji i poprawić ogólny zwrot. Ekspozycja jest mieczem obosiecznym. Zwiększona ekspozycja może prowadzić do większych zysków lub wyższych strat, a zmniejszone narażenie oznacza niższe zyski lub niższe straty. Ogólnie rzecz biorąc, dobrze jest utrzymać ekspozycję poniżej 70, aby zmniejszyć ryzyko i umożliwić łatwiejsze przejście do iz danego magazynu. Statystyki średniej gainloss, w połączeniu z współczynnikiem wygranej do strat, mogą być przydatne do określenia optymalnego rozmiaru pozycji i zarządzania pieniędzmi przy użyciu technik takich jak kryterium Kelly Criterion. (Patrz Zarządzanie pieniędzmi przy użyciu kryterium Kelly). Handlowcy mogą zajmować większe pozycje i obniżyć koszty prowizji, zwiększając średnie zyski i zwiększając współczynnik wygranych strat. Zrealizowany zysk jest ważny, ponieważ jest używany jako narzędzie do porównywania systemów z wynikami innych miejsc inwestycji. Ważne jest nie tylko sprawdzenie całkowitego rocznego zysku, ale także uwzględnienie zwiększonego lub zmniejszonego ryzyka. Można to zrobić, patrząc na zwrot z uwzględnieniem ryzyka, który uwzględnia różne czynniki ryzyka. Zanim przyjmie się system obrotu, musi on wykazywać lepsze wyniki niż wszystkie inne instytucje inwestycyjne przy równym lub mniejszym ryzyku. Dostosowanie do zaplecza jest niezwykle ważne. Wiele aplikacji do kontroli wstecznej zawiera dane o kwocie prowizji, wielkości partii (lub ułamek) okrągłych (rozmiaru), rozmiarów kresek, wymagań dotyczących marż, stóp procentowych, założeń poślizgowych, reguł klasyfikacji pozycji, reguł wyjściowych na tej samej zasadzie (przystanku) i wielu innych. Aby uzyskać najdokładniejsze wyniki testów wstecznych, ważne jest, aby dostosować te ustawienia, aby naśladować brokera, który będzie używany, gdy system zostanie uruchomiony. Badanie wsteczne może czasami prowadzić do czegoś, co nazywa się nadmierną optymalizacją. Jest to warunek, w którym wyniki są odpowiednio dostosowane do przeszłości, że w przyszłości nie są już tak dokładne. Zazwyczaj dobrym pomysłem jest wdrożenie reguł mających zastosowanie do wszystkich zasobów lub wybranego zestawu zasobów docelowych i nie jest zoptymalizowane w stopniu, w jakim zasady nie są już zrozumiałe dla twórcy. Badanie wstępne nie zawsze jest najbardziej dokładnym sposobem oceny skuteczności danego systemu obrotu. Czasami strategie, które dobrze funkcjonowały w przeszłości, nie sprawdziły się dobrze w teraźniejszości. Dotychczasowe wyniki nie wskazują na przyszłe wyniki. Pamiętaj, aby handel papierowy był pomyślnie sprawdzony przed przejściem na żywo, aby mieć pewność, że strategia nadal ma zastosowanie w praktyce. Wnioski Backtesting jest jednym z najważniejszych aspektów opracowania systemu handlowego. Jeśli zostaną stworzone i zinterpretowane poprawnie, może pomóc przedsiębiorcom w optymalizacji i ulepszaniu ich strategii, znajdowaniu technicznych lub teoretycznych wad, a także zdobyć zaufanie do strategii przed jej zastosowaniem na rynkach światowych. Zasoby Tradecision (tradecision) - Zaawansowany System Rozwoju Systemów Handlowych AmiBroker (amibroker) - Rozwój Systemu Obrotu Budżetowego. Beta jest miarą zmienności lub systematycznego ryzyka bezpieczeństwa lub portfela w porównaniu z rynkiem jako całości. Rodzaj podatku od zysków kapitałowych poniesionych przez osoby prywatne i korporacje. Zyski kapitałowe to zyski inwestora. Zamówienie zakupu zabezpieczenia z lub poniżej określonej ceny. Zlecenie z limitem kupna umożliwia określenie podmiotów gospodarczych i inwestorów. Reguła Internal Revenue Service (IRS), która umożliwia wycofanie bez kary z konta IRA. Reguła wymaga tego. Pierwsza sprzedaż akcji przez prywatną firmę do publicznej wiadomości. IPO są często wydawane przez mniejsze, młodsze firmy szukające. Wskaźnik zadłużenia jest wskaźnikiem zadłużenia wykorzystywanym do pomiaru dźwigni finansowej firmy lub wskaźnika zadłużenia wykorzystywanego do pomiaru indywidualnego. Przyczyny Dlaczego warto używać QuantShare: Współpracuje z rynkami USA i zagranicznymi (czas, forex, opcje, futures, ETF). narzędzia, które pomogą Ci stać się rentownym handlowcem Pozwala na wdrożenie dowolnych pomysłów handlowych Wymieniaj przedmioty i pomysły z innymi użytkownikami QuantShare Nasz zespół pomocy jest bardzo elastyczny i odpowie na wszystkie pytania Wprowadzimy wszelkie funkcje, które sugerujesz Bardzo niska cena i dużo więcej funkcji niż większość innych programów handlowych Bezpłatne - nie wymaga karty kredytowej Najważniejsze powody, dla których warto używać QuantShare: Zaawansowane pobieranie danych Pobierz EOD, codzienne, podstawowe informacje o nowościach i przekonaniach dla każdego rynku Potężne narzędzia analizy ilościowej Kontroluj strategię i generuj codzienne sygnały kupna i sprzedaży Tworzenie materiałów kompozytowych i wskaźników rynkowych Wskaźniki pobierania, systemy handlowe, pobieracze, ekrany. wspólne dla innych użytkowników Aktualizowane na 2017-03-13 Niektóre systemy handlowe. w szczególności tych opartych na zasadach podstawowych, mogą dobrze działać na stadach należących do niektórych branż i działać źle na innych gałęziach przemysłu. Podobnie jak testowanie zaplecza dla każdego zasobu dla każdego zasobu, można użyć QuantShare do wdrożenia systemu, a następnie wykonać test wyników dla każdej branży. System zostanie zoptymalizowany, a każda optymalizacja pokazuje wynik testu wstecznego na zapasach należących do jednej konkretnej branży. Czy Twoja baza danych QuantShare zawiera dane branżowe Aby upewnić się, wybierz symbol - Automatyczne zarządzanie symbolami, zaznacz jedną lub kilka interesujących się interesów, zaznacz opcję Wymuś aktualizację informacji o symbolu, a następnie kliknij przycisk Zapisz. Po kilku sekundach firma QuantShare zaktualizuje listę symboli i w razie potrzeby doda informacje branżowe (branża każdego zasobu w bazie danych) Poniżej znajduje się opis systemu handlowego, który jest używany jako przykład w tym artykule. Kupuj, gdy cena przecina powyżej średniej ruchomej średniej na poziomie 25 bar Kiedy kurs przekroczy poniżej 25-barowej średniej ruchomej Jak wdrożyć ten system handlowy: - wybierz Analizy - Symulator - Kliknij na Nowy, aby utworzyć nowy system obrotu - wybierz Utwórz system handlowy przy użyciu tabela edytora formuł - wpisz następującą formułę: kup krzyż (zamknij, sma (25)) sprzedaj krzyż (sma (25), zamknij) Zamknij pobiera kursy cen SMA oblicza prostą średnią ruchoma Funkcja krzyżowa wykrywa, gdy pierwsza tablica przecina powyżej drugiej tablicy - Kliknij na Utwórz system handlowy, aby zapisać strategię Zliczaj liczbę branż Najpierw sprawdźmy liczbę branż, które mamy w bazie danych. Wybierz Symbol - Kategorie, kliknij kartę Przemysł, aby wyświetlić wszystkie branże. Jest tam prawdopodobnie kilkaset branż, więc musimy liczyć na edytor skryptów. Otwórz edytor skryptów (Tools - Script Editor), utwórz nowy skrypt, a następnie wpisz następujący wzór: MessageBox. Show (Industry Count: Symbols. GetIndustryList (). Length. ToString ()) Kliknij przycisk Execute (Wyświetl), aby wyświetlić liczbę branż. Wybierz wcześniej utworzony system obrotu, a następnie kliknij przycisk Aktualizuj. Musimy użyć funkcji niestandardowej (IndustryPosition), aby uzyskać pozycję indeksu w oparciu o jego nazwę. Funkcję można pobrać tutaj: Stanowisko branży fotografii. W edytorze receptur wpisz następujące wiersze: Optymalizacja (a, 0, 256, 1) b PrzemysłPosition (industry ()) rule1 ab buy cross (close, sma (25)) i rule1 cross cross (sma (25), close ) Pierwsza linia nakazuje firmie QuantShare zoptymalizowanie systemu handlowego zmieniając zmienną a od 0 na całkowitą liczbę sektorów (używaliśmy tutaj 256). Druga linia zajmuje pozycję przemysłu w liście branżowej. Trzecia linia porównuje zmienną optymalizacyjną i pozycję branżową. Oznacza to, że system handlowy będzie kupował tylko zapasy należące do branży, które znajdują się w pozycji określonej przez zmienną a. Po zaktualizowaniu systemu handlowego kliknij Optymalizuj, aby rozpocząć proces optymalizacji. Dodawanie nazwy branży do raportu Jak widać z wcześniejszego testowania, raport zawiera tylko pozycję branżową na liście. Nie pokazuje nazwy branży bezpośrednio w raporcie. Nie ma możliwości sprawdzenia, dla której branży była symulacja, chyba że otworzysz raport, a następnie wybierz S. I.M. I - Avg. Karta Wydajność handlu. Aby dodać nazwę branży do raportu, musimy użyć skryptu zarządzania pieniędzmi. - wybierz system handlu, a następnie kliknij kartę Aktualizuj - wybierz zarządzanie pieniędzmi - kliknij przycisk Dodaj nowy skrypt zarządzania pieniędzmi - wybierz zdarzenie OnStartSimulation, a następnie wpisz następującą linijkę: - wybierz zdarzenie OnEndSimulation, a następnie wpisz następujące linie: MMPosition pos Portfolio. GetAllPositions () if (pos. Length 0) Symbol sym Data. GetSymbolInfo (pos0.Symbol) Zmienne. SetVariable (Przemysł, sym. Industry) Uruchom ponownie optymalizację, aby wyświetlić nazwę branży w oddzielnej kolumnie w raporcie backtesting. Jak sprawdzić wersję systemów handlowych i uniknąć dopasowania krzywej Aby ocenić, jak dobry system handlowy powinien działać w przyszłości, testujemy ją ponownie na danych z przeszłych rynków. Badanie zwrotne stosuje zestaw reguł handlowych do danych historycznych w celu oszacowania, w jaki sposób te zasady byłyby stosowane, gdyby rzeczywiście je sprzedał. Dobre hipotetyczne wyniki historyczne nie gwarantują, że zestaw reguł będzie działał w przyszłości. Jednak słabe hipotetyczne wyniki historyczne na pewno oznaczają, że system nie powinien być przedmiotem obrotu w czasie rzeczywistym. Postrzegana wartość testów wstecznych jest zakorzeniona w przekonaniu, że powtarzają się historyczne tendencje. Handlowcy testowali strategie dotyczące danych historycznych od pokoleń. Jednak praktyka ta stała się popularna wraz z pojawieniem się komputerów osobistych i specjalnie zaprojektowanego oprogramowania do testowania systemu. takich jak System Writer, które pojawiły się w TradeStation. To oprogramowanie i baza danych z danymi historycznymi umożliwiły użytkownikom pozbawionym tła pisania kodu testowanie pomysłów systemu handlowego. Szersze zrozumienie i akceptacja systemów handlowych, jak również frustracja, z którą spotykają się podczas samodzielnego budowania systemów handlu, przyczyniły się do rozwoju rynku systemów firm trzecich w latach 90. XX wieku. Futures Truth to niezależna firma, która od lat 80. śledzi komercyjnie dostępne systemy handlowe. Obecnie śledzi ponad 500 systemów. Futures Truth testuje systemy transakcyjne w czasie rzeczywistym, a nie na dane historyczne. Zapobiega to modyfikacji reguł w czasie i lepiej symuluje egzekwowanie reguł w rzeczywistych warunkach rynkowych, takich jak okresy dużej zmienności. Zgodnie z Futures Truth, tylko około 45 systemów śledzonych jest rentowne w perspektywie długoterminowej, a tylko 20 wykazuje dobry wskaźnik ryzyka. Jednak liczby te prawdopodobnie są lepsze niż szersze populacje, ponieważ tylko ci sprzedawcy naprawdę wierzą w swoją logikę, przekształcając ją w Futures Truth w analizę w czasie rzeczywistym i publiczną krytykę. Tak wiele systemów nie powiedzie się, ponieważ brakuje im ważnych przesłanek. Zamiast tego parametry wejścia i wyjścia pochodzą z wyszukiwania danych. Eksploracja danych po prostu skanuje dane historyczne dotyczące reguł, które mogłyby działać w przeszłości. Często takie reguły są dopasowane dokładnie do przeszłości i nie mają nadziei na pracę lepiej niż przypadkowo na niewidoczne dane. Zamiast tego rozwój systemów powinien rozpocząć się od teorii, która może być testowana, analizowana i dostrojona do aplikacji. Koncepcja ta implikuje również inną perspektywę testowania systemu: celem testowania wstecznego nie jest gromadzenie hipotetycznych statystyk dotyczących zysków i strat. Ma to zbadać słuszność teorii i dokładność zasad uchwycenia przesłanki. Testowanie systemu jest wielostronnym procesem z danych, do skali czasowej, w celu ustalenia założeń wejścia, do określania specyfiki i kontroli ryzyka. Niewykonanie któregokolwiek z nich może zepsuć ważny test mdash lub, manipulowanie nimi może generować wyniki, które są znacznie lepsze niż to, co osiągnęliśmy w czasie rzeczywistym. Musisz to zrobić dobrze, jeśli masz nadzieję na poprawność mdash lub, jeśli to właściwe, unieważnij mdash swój system. Narzędzia handlu Istnieją dwa elementy do testowania wstecznego: odpowiednie narzędzia mdash i dane mdash oraz naukowa metoda opracowywania systemów wykorzystujących te narzędzia. Letrsquos zaczynają patrząc na narzędzia handlu. Istnieje wiele opcji do testowania pomysłów. Różnią się one łatwością przekształcania pomysłów w kodeks oraz sposobu obsługi informacji, które mogą mieć istotny wpływ na wyniki. Na przykład, jeśli system wchodzi w kolejność limitów, niektóre oprogramowanie zapisuje wypełnienie, jeśli ta cena zostanie dotknięta. Niemniej jednak nie ma gwarancji, że taki nakaz byłby wypełniony w rzeczywistym obrocie handlowym, ani też nie gwarantuje, że to się stanie. Wjazd na przystań gwarantuje wpis, ale nie cenę. Inną sprawą jest rejestrowanie rzeczywistych cen. Chociaż większość profesjonalnie rozwijających się programów nie ma już tego problemu, nadal jest obawy dla tych, którzy ręcznie testują systemy w arkuszach kalkulacyjnych, takich jak Microsoft Excel. Na przykład, jeśli system kupuje na przystanku równy bliskości plus jedna trzecia średniego przedziału w ciągu ostatnich trzech okresów, a jeśli przeciętny zasięg wynosi 10, to kupujemy na końcu plus 3.333. Jeśli handlujemy E-mini SampP 500, zajmuje się 0,25 wielkości kleszczy. Oznacza to, że różnica wejściowa musi sięgać ok. 3,50. Początek przedsiębiorcy może nie zdawać sobie sprawy z tego, czy ręcznie skruszać numery, i zbyt dawno temu było zbyt wiele programów profesjonalnych popełniających ten sam błąd. W miarę upływu czasu taki błąd może powodować znaczną rozbieżność. W dużym obrazie takie szczegóły proceduralne są niewielkie. Dużym problemem są dane. Podobne artykułyChociaż nasze ramy tworzenia strategii ewoluowały znacznie poza granice NT, wiele lat temu, nadal korzystam z niej od kilku do kilkunastu lat, a tam, gdzie się zaczęliśmy, więc być może mogę ci pomóc. NinjaTrader na pewno ma błędy i wady, ale wszystkie platformy, a wśród popularnych platform handlu detalicznego tam myślę, że NT jest jednym z najbardziej intuicyjnych i prostych, a jeden z najłatwiejszych w efektywny sposób używać tuż po pudełku . Jednym z powodów jest kreator strategii NTs, który pozwala użytkownikowi na budowanie strategii bez znajomości kodowania przy użyciu bloków warunkujących entryexit. Podam przykład. Powiedzmy, że chcemy zbudować strategię wchodzącą, gdy EMA (mnożona średnia ruchoma) w okresie 15 przecina powyżej średniej ruchomej (SMA) w okresie 15 i kończy się na zamknięciu każdego dnia. W tym celu wystarczy otworzyć kreatora strategii, nadać naszej strategii nazwę i skonfrontować się z następującym ekranem, umożliwiając zdefiniowanie do 10 różnych zestawów warunków, które po uruchomieniu doprowadzą do określonego działania (zazwyczaj wpis lub wyjście): Po kliknięciu przycisku dodaj, w górnym oknie, skonfrontowano następujący ekran: Jak widzisz, Ive po prostu wybrał EMA po lewej, a SMA po prawej, a Ive zmienił nasze wartości okresu dla każdego do 15. W centrum Ive zmienił wybór rozwijaną na CrossAbove. Naciś nij ok, wypełnia górnĘ ... częś ć najwyższego ekranu. Powiem teraz, aby Enter Long, kiedy to nastąpi, i kliknij Ok: I to wszystko. Przejmujemy kolejne, nasze strategie oszczędzania, i mieliśmy swobodę testowania wyników w celu określenia wyników handlowych w okresie historycznym, używając platformy NT. Przyznano, że jest to jednowymiarowa strategia (i na pewno nie przynosi zysków), ale jest przykładem tego, jak łatwo można utworzyć zautomatyzowaną strategię handlu, zakładając, że logika entryexit może być określana ilościowo przy użyciu ich opcji blokowania budynku, są dość obszerne, jeśli jesteś kreatywny. Wreszcie, przejdź przez jedną więcej funkcji. Powiedzmy, że nie byliśmy pewni, jakie wartości średnie ruchome są optymalne, w naszej przykładowej strategii. Powiedzmy, że chcemy przetestować wiele wartości, aby pomóc nam ustalić, które wartości mogą być idealne. W tym celu wystarczy nacisnąć i skonfrontować się z tym ekranem: jak widzisz, Ive stworzył dwie zmienne i nadał im imiona powyżej. PeriodOne będzie działać jako wartość okresu średniej ruchomej EMA, a PeriodTwo będzie działać jako wartość okresowa naszej średniej ruchomej SMA. Teraz klikam na następny ekran i wróć do okna warunków wpisania, a potem otwórz warunek budowniczy i po prostu zmienię 15 wartości na nasze nowe wartości zmiennych (odpowiednio PeriodOne i PeriodTwo): co nam to pozwala, wprowadza optymalizację, która będzie prowadziła do testowania różnych wartości okresu dla obu tych średnich ruchów, a następnie wyświetla wyniki każdego testu, dla naszego przeglądu. Ive z wyprzedzeniem i uruchomić tę optymalizację, która trwała tylko minutę lub dwie, używając ropy naftowej i 15-minutowych wzrostów barów jako naszego zbioru danych: Jak widać w kolumnie Parametry po prawej stronie po prawej stronie, testował kilka różnych kombinacji wartości okresów i wyznaczył wszystkie wyniki zgodnie z całkowitym zyskiem netto zarobanym w okresie historycznym w naszym zakresie testowym (312018 do 112017 w tym przypadku). Ponownie jest to wyjątkowo prosty przykład, aby zilustrować punkt, ale punkt jest prawidłowy. szczególnie w fazie wczesnej, kiedy próbujesz eksperymentować i testować różne rzeczy, możesz przejść od etapów pomysłów, do wyników testów końcowych, ukazujących dokładnie to, co pomysł ten wydarzyłby się w okresie historycznym, w ciągu zaledwie kilku minut, nawet bez znajomości kodu programowania. Ponadto na kilku z powyższych ekranach znajduje się przycisk kodu widoku, który pozwala wyraźnie widzieć, jak różne bloki budulcowe przekładają się na wykonalny kod, który świetnie sprawdza proces kodowania w czasie. Moja rada Skok w prawo, eksperymentuj, zagraj. w ten sposób można wiele nauczyć, szybko i skutecznie. szczególnie dla tych, którzy uczą się najlepiej. w przeciwieństwie do nasycania długich, męczących, suchych tekstów instruktażowych. Mam nadzieję, że jest to pomocne. Ciesz się 653 Views middot Zobacz Upvotes middot Nie dla reprodukcji Pytasz jak stworzyć system handlowy na NinjaTrader (NT) i z powrotem go przetestować. Można to zrobić, ale to nie jest łatwe. Bez wchodzenia w projektowanie kodów i oprogramowania, mogę jedynie dać ogólny pogląd na to, jak można by z tym poradzić. Pierwszym krokiem jest napisanie systemu handlowego. Prosto mówiąc, składa się ona z kilku części: (i) napisać moduł, który będzie zawierał wszystkie różne zestawienia dla transakcji, które chcesz wykonać (określenie warunku (warunków)), które stanowią optymalną możliwość wprowadzenia handlu. (ii) napisać moduł, który będzie wyszukiwał te dane w czasie rzeczywistym, (iii) napisać moduł, który będzie katalogować i zapisywać zestawy znalezione w dane w czasie rzeczywistym, oraz (iv) napisać moduł, który wykona handel na podstawie jednego z tych zestawów. To samo w sobie jest trudne, ponieważ trzeba to zrobić w czasie rzeczywistym. Ponadto musisz poradzić sobie z sytuacjami, w których znajduje się wiele zestawów, które mogą wskazywać transakcje w tych samych lub przeciwnych kierunkach (tj. Długie i krótkie). Trzeba też wziąć pod uwagę cele, kryteria rentowności ustawień, stop loss i trailing criteria. Na koniec, ale na pewno nie mniej, musisz pomyśleć o skalowaniu i wprowadzaniu strategii z ustalonymi przez handlowców kryteriami. Na marginesie nie wspomniałem nawet o elementach obsługi weryfikacji i obsługi błędów kodu, które trzeba też zwrócić. Aby to zrobić skutecznie, musisz podać ten kod. Problem związany z zapisem w NT jest taki, że NT obsługuje tylko podzbiór języka C i obecnie obsługuje tylko framework 3.5. Oznacza to, że musisz wpisać go w C jako dll i odwoływać się do kodu NT. Teraz, gdy napisałeś dll, aby zidentyfikować transakcję, musisz napisać kod, aby wykonać handel. NT to podejście zarządzane i niezarządzane w tym celu. Obecnie używam i koduję NT, a ja powiem, że ta część NT nie jest dobrze udokumentowana - przynajmniej nie znalazłem tego, ale w całej sprawiedliwości można uzyskać pomoc ze strony personelu NT na forum pomocy technicznej. Aby uzyskać największą elastyczność, użyj niezarządzanego podejścia. Oczywiście chcesz zaimplementować strukturę bazy danych w kodzie, aby zapisać transakcje. Ta część programu również będzie stanowić wyzwanie, ponieważ pojawią się tutaj pewne problemy. Każdy handel musi być zweryfikowany, zamówienia będą musiały być porządnie zindywidualizowane i nadzorowane, a Twoja pozycja będzie musiała być uważnie obserwowana - zwłaszcza jeśli planujesz wejść w transakcje, odwracając pozycje. Teraz, gdy już to zrobisz, możesz napisać strategię NT, aby sprawdzić system. Ponownie podejście niezarządzane będzie miało największe znaczenie, ponieważ oferuje Ci najbardziej elastyczność. Ponownie ten kod jest trudny i nie udokumentowany. Można to jednak zrobić. Gratulacje, już skończysz kodowanie i zacznij testować kod na żywo. Może być konieczne zmodyfikowanie kodu w celu obsługi danych rzeczywistych w czasie rzeczywistym. W zależności od rynków, które zamierzasz sprzedawać, musisz myśleć, jak poradzisz sobie z transakcjami w raportach, zajmowaniu pozycji na noc, limitach handlowych, a także w przypadku, gdy transakcja jest zawieszona przez wymianę. Zakładając, że to zrobiłeś, teraz masz system testowy z powrotem na NT. Jak powiedziałem, nie jest łatwe, ale z pewnością jest to możliwe. W tym celu przygotuj się na godziny i godziny pracy i testy. Kiedy zacząłem, zdecydowanie nie doceniłem wymaganego wysiłku. 1.5k Views middot Zobacz komentarze middot Not for Reproduction
No comments:
Post a Comment