Przykład systemu handlu amibrokerem
Jak zoptymalizować system handlowy. NOTE Jest to dość zaawansowany temat Proszę przeczytać poprzednie samouczki AFL pierwszy pomysł za optymalizacją jest prosta Po pierwsze trzeba mieć system handlu, może to być prosty ruchome przecięcie średnie np. W prawie każdym systemie to niektóre parametry jako okres uśredniania, które decydują, jak dany system zachowuje się dobrze, jest odpowiedni dla długoterminowej lub krótkoterminowej, jak reaguje na wysoce niestabilne zapasy itd. Optymalizacja to proces znalezienia optymalnych wartości tych parametrów dających największy zysk system dla danego symbolu lub portfel symboli AmiBroker jest jednym z niewielu programów, które pozwalają na optymalizację systemu na wielu symbolach naraz. Aby zoptymalizować system, musisz zdefiniować od jednego do dziesięciu parametrów, które mają zoptymalizować. Ty decydujesz co to jest minimalna i maksymalna dozwolona wartość parametru iw jakim kroku ta wartość powinna zostać zaktualizowana AmiBroker wykonuje wiele testów wstecznych systemu używając A LL możliwe kombinacje wartości parametrów Gdy proces się skończy AmiBroker wyświetli listę wyników posortowanych według zysku netto Możesz zobaczyć wartości parametrów optymalizacji, które dają najlepszy wynik. Zarządzanie formułą AFL. Optymalizacja w testerze wstecznym jest obsługiwana przez nową funkcję zwana optymalizacją Składnia tej funkcji jest następująca: optymalizacja zmienna Opis, domyślnie min maks. step. variable - to zwykła zmienna AFL, która przyporządkowuje wartość zwracaną przez optymalizację funkcji Przy normalnych testach wstecznych, skanowania, eksploracji i trybach komend funkcja optymalizacji zwraca domyślne wartość, więc powyższe wywołanie funkcji jest równoważne zmiennej domyślnej. W optymalizacji optymalizuje funkcje zwraca kolejne wartości od min do maksimum włącznie z krokiem kroku. Opis jest ciągiem, który jest używany do identyfikacji zmiennej optymalizacji i jest wyświetlany jako nazwa kolumny w lista wyników optymalizacji list. default jest wartością domyślną, która optymalizuje funkcje zwracane w poszukiwaniu , wskaźnik, komentarz, skanowanie i normalne tryby testów wstecznych. min jest minimalną wartością zmiennej zoptymalizowanej. max jest maksymalną wartością zmiennej zoptymalizowanej. step jest przedziałem stosowanym do zwiększania wartości od min do maksimum. AmiBroker obsługuje maksymalnie 64 wywołania do optymalizacji funkcji, a więc do 64 zmiennych optymalizacyjnych, pamiętaj, że jeśli korzystasz z wyczerpującej optymalizacji, to naprawdę dobry pomysł, aby ograniczyć liczbę zmiennych optymalizacyjnych do zaledwie kilku. Każdy zadzwonić, aby zoptymalizować generowanie maksimum minut makr i optymalizacji kroków zoptymalizowanie dwóch parametrów przy użyciu 10 kroków wymaga 10 10 100 optymalizacji pętli. Call optymalizuje funkcję tylko ONCE na zmienną na początku formuły, ponieważ każde wywołanie generuje nowe pętle optymalizacji. wypełnienie wielu symboli jest w pełni obsługiwany przez AmiBroker. Maksymalna przestrzeń wyszukiwania to 2 64 10 19 10 000 000 000 000 000 kombinacji.1 Pojedyncza zmienna optymalizacja. sigavg Optymalizacja S średnio ignalna 9 2 20 1.Buy Cross MACD 12 26, Signal 12 26 sigarg Sprzedaj sygnał krzyżowy 12 26 sigar, MACD 12 26.2 Optymalizacja na dwie 5 50 1 Poziom Optymalizacja poziomu 2 2 150 4.Buy Cross CCI per, - Revel Cross Poziom sprzedaży, CCI per.3 Wielokrotne 3 zmienna optymalizacja. mfast Optymalizacja MACD Fast 12 8 16 1 mslow Optymalizacja MACD Powolny 26 17 30 1 sigavg Optymalizacja Średni sygnał 9 2 20 1. Kup Cross MACD mfast , mslow Sygnał mfast, mslow, sigavg Sprzedaj transwersję mfast, mslow, sigavg, MACD mfast, mslow. Po wprowadzeniu formuły wystarczy kliknąć przycisk Optymalizuj w oknie analizy automatycznej AmiBroker rozpocznie testowanie wszystkich możliwych kombinacji zmiennych optymalizacyjnych i przedstawi wyniki w lista Po optymalizacji jest sporządzona lista wyników jest przedstawiona posortowana przez zysk netto Jak można sortować wyniki dowolnej kolumny na liście wyników, łatwo jest uzyskać optymalne wartości parametrów dla najniższego wypłatu, najniższej liczby transakcji, największy prof współczynnik ten, najniższa ekspozycja na rynek i najwyższy stopień 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, najlepszym rozwiązaniem jest zastąpienie domyślnego wartości w 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 call. Displaying 3D animowane wykresy optymalizacji. Aby wyświetlić wykres optymalizacji 3D, należy uruchomić dwu - zmienna optymalizacja Pierwsza zmienna optymalizacja potrzebuje wzoru, który ma 2 Zoptymalizować wywołania funkcji Przykładowa dwu zmienna formuła optymalizacyjna wygląda następująco :. Optymalizuj na 2 5 50 1 Poziom Zoptymalizuj poziom 2 2 150 4. Kup Krzyż CCI na, Level, CCI per. After wprowadzanie formuły musisz kliknąć przycisk Optymalizuj. Po zakończeniu optymalizacji należy kliknąć strzałkę w dół na przycisku Optymalizuj i wybrać Wyświetlanie wykresu optymalizacji 3D W ciągu kilku sekund pojawi się kolorowa trójwymiarowa wykres powierzchni w oknie przeglądarki wykresów 3D Przykładowy wykres 3D generowany przy użyciu powyższej wzoru jest wyświetlany poniżej. Domyślnie wykresy 3D przedstawiają wartości zysku netto względem zmiennych optymalizacyjnych ale wykres powierzchni 3D wykresu dla każdej kolumny w tabeli wyników optymalizacji Wystarczy kliknąć nagłówek kolumny, aby go posortować. Niebieska strzałka pojawi się, wskazując, że wyniki optymalizacji są sortowane według wybranej kolumny, a następnie wybierz opcję Wyświetl wykres 3D optymalizacji. Bądź wizualizuj swój system parametry wpływają na wydajność handlu, można łatwiej zdecydować, które wartości parametrów powodują delikatne wrażenia i które zapewniają solidną wydajność systemu Solidne ustawienia to obszary na wykresie 3D, które wykazują stopniowe, a nie gwałtowne zmiany wykresów powierzchniowych wykresów 3D są doskonałym narzędziem zapobiegającym krzywiznom, dopasowanie krzywej lub nadmierna optymalizacja występuje wtedy, gdy system jest bardziej złożony niż musi być, i al l złożoność skupiła się na warunkach rynkowych, które mogą się nigdy nie powtórzyć. Radykalne zmiany lub skoki na mapach optymalizacji 3D pokazują wyraźnie obszary nadoptymalizowane. Należy wybrać region parametrów, który tworzy szeroki i szeroki płaskowyż na wykresie 3D dla Twojego życia. Zestawy parametrów generowanie skoków zysku nie będzie działać niezawodnie w prawdziwym handlu. Kontroler widoku wykresów3D. Przeglądarka wykresów 3DAmiBroker s oferuje całkowite możliwości wyświetlania z pełnym rotowaniem i animacją wykresu Teraz można wyświetlać wyniki systemu z każdej możliwej perspektywy Możesz kontrolować pozycję i inne parametry na wykresie za pomocą myszy, paska narzędzi i skrótów klawiaturowych, niezależnie od tego, co Ci się łatwiej znajdziesz Poniżej znajdziecie listę.- do Obracania - przytrzymaj lewy przycisk myszy i poruszaj się w kierunkach XY - aby powiększyć, powiększyć - przytrzymać w dół PRAWO myszy i poruszaj się w kierunku XY - aby przenieść translację - przytrzymaj lewy klawisz myszy i klawisz CTRL i poruszaj się w kierunku XY - aby animować - przytrzymaj Lewy przycisk myszy, przeciągnij szybko i zwalniaj przycisk podczas przeciągania. SPACE - animacja automatycznego obracania STRZAŁKA W LEWO - obrót pionka Lewa STRZAŁKA W GÓRĘ - obrót w prawo w prawo STRZAŁKA STRZAŁKA W GÓRĘ - obracanie w górę STRZAŁKA W GÓRĘ - obróć oczarowanie NUMPAD PLUS - powiększenie NUMPAD - MINUS - Daleko odejmij NUMPAD 4 - przesuń w lewo NUMPAD 6 - przesuń w prawo NUMPAD 8 - przesuń NUMPAD 2 - przesuń w dół PAGE UP - poziom wody do góry STRZAŁKA W GÓRĘ - poziom wody poniżej. oferuje inteligentną, niewyczerpującą optymalizację w uzupełnieniu 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ża, aby możliwe było wyczerpujące wyszukiwanie. Wyczerpujące wyszukiwanie jest w porządku, dopóki jest rozsądny w użyciu Użyj dowolnych dwóch parametrów: od 1 do 100 kroku 1 To 10000 kombinacji - idealnie OK dla wyczerpujących poszukiwań Teraz z 3 parametrami masz milion kombinacji - wciąż jest to możliwe w przypadku wyczerpującego zapalenia 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 zbyt czasochłonne, aby sprawdzić wszystkie z nich, a to jest obszar, w którym nie wyczerpujący smart - metody wyszukiwania mogą rozwiązać problem, który nie może zostać rozwiązany w rozsądnym czasie, przy użyciu wyczerpujących wyszukiwań. Oto pełna instrukcja, jak używać nowego nie wyczerpującego optymalizatora w tym przypadku CMA-ES.1 Otwórz swoją formułę w Edytorze formuł. pojedyncza linia u góry formuły. OptimizerSetEngine cmae możesz również użyć spso lub trib here.3 Opcjonalny Wybierz cel optymalizacji w sekcji Automatyczna analiza, Ustawienia, Walk-Forward, Optymalizacja pola docelowego Jeśli pominiesz ten krok, zoptymalizujesz go dla CAR Związek MDD roczny zwrot podzielony przez maksymalne wycofanie. Teraz, jeśli uruchomisz optymalizację przy użyciu tej formuły, użyjesz nowego, ewolucyjnego, niewyczerpującego optymalizatora CMA-ES. Jak to działa. Optymalizacja to proces znalezienia min imum lub maksymalna dana funkcja Każdemu systemowi handlowemu można uznać za funkcję pewnej liczby argumentów Dane wejściowe są parametrami i danymi kwotowania, a wynik jest celem docelowym optymalizacji. CAR MDD I szukasz maksimum danej funkcji. Maszą inteligentną optymalizację algorytmy są oparte na zachowaniu zwierząt przyrodniczych - algorytmach PSO lub procesach biologicznych - algorytmach genetycznych, a niektóre opierają się na pojęciach matematycznych pochodzących od ludzi - CMA-ES. Te algorytmy są stosowane w wielu różnych dziedzinach, w tym finansach Wprowadź finansowanie PSO lub CMA - ES w Google i znajdziesz wiele informacji. Niepełne lub inteligentne metody znajdą globalny lub lokalny optymalny Cel jest oczywiście znaleźć globalne, ale jeśli jest pojedynczy ostry szczyt z kombinacji parametrów ziliony, wyczerpujące metody mogą nie odnaleźć tego pojedynczego szczytu, ale biorąc pod uwagę przedsiębiorcę perspektywicznie, znalezienie pojedynczego ostrego szczytu jest bezużyteczne dla handlu, ponieważ ten wynik byłby niestabilny, a n Możemy replikować w prawdziwym obrocie handlowym W procesie optymalizacji poszukujemy raczej regionów płaskowzgórzowych o stabilnych parametrach i jest to obszar, w którym inteligentne metody świecą. Jako algorytm użyty w wyniku niewyczerpującego wyszukiwania, wygląda następująco: optymalizator generuje zazwyczaj przypadkowe uruchamianie populacja zestawów parametrów b baza danych zwrotnych jest wykonywana przez AmiBroker dla każdego zestawu parametrów z populacji c wyniki wyników testów wstecznych są obliczane zgodnie z logiką algorytmu, a nowa populacja jest generowana w oparciu o ewolucję wyników, d jeśli zostanie znalezione nowe - zapisać i przejdź do kroku b, dopóki kryteria stopu nie zostaną spełnione. Przykładowe kryteria zatrzymania mogą obejmować osiągnięcie określonego maksymalnego iteracji b stop, jeśli zakres najlepszych wartości obiektywnych ostatnich X pokoleń wynosi zero c stop, jeśli dodano 0 1 wektor odchylenia standardowego w dowolnej osi głównej kierunek nie zmienia wartości obiektywnej wartości d innych. Aby użyć dowolnego inteligentnego nie wyczerpującego optymalizatora w AmiBroker należy określić optymalizator engin e chcesz użyć w formule AFL przy użyciu funkcji OptimizerSetEngine. Funkcja wybiera zewnętrzny silnik optymalizacji określony przez nazwę AmiBroker aktualnie dostarczany z 3 silnikami Standardowa cząstka Swarm Optimizer spso, plemiona Tribes i CMA-ES cmae - nazwy w nawiasach klamrowych mają być wykorzystywane w opcjach OptimizerSetEngine. Oprócz wybrania silnika optymalizacyjnego możesz ustawić niektóre z jej wewnętrznych parametrów. W tym celu należy użyć funkcji OptimizerSetOption. OptimizerSetOption, funkcji wartości. Funkcja ustawia dodatkowe parametry dla zewnętrznego silnika optymalizacyjnego Parametry zależą od silnika trzy optymalizatory dostarczane z AmiBroker SPSO, Trib, CMAE obsługują dwa parametry Uruchamia liczbę przebiegów i testy maksymalnej oceny MaxEval na pojedynczą jazdę Zachowanie każdego parametru jest uzależnione od silnika, więc takie same wartości mogą i zazwyczaj przynoszą różne wyniki przy różnych silników. Różnica między Runs i MaxEval jest następująca Ocena lub test jest pojedynczym testem wstecznym lub ewaluacją n wartości obiektywnych wartości RUN to jedna pełnowartość algorytmu określająca optymalną wartość - zwykle obejmująca wiele ewaluacji testów. Każda operacja po prostu RESTARTS cały proces optymalizacji z nowej początkowej nowej początkowej losowej populacji W związku z tym każda próba może prowadzić do znalezienia lokalnego maksimum min jeśli nie znajdzie globalnego Parametr So Runs definiuje liczbę kolejnych algorytmów MaxEval to maksymalna liczba bactestsów ewaluacji w każdym pojedynczym ruchu. Jeśli problem jest stosunkowo prosty i 1000 testów wystarczy, aby znaleźć globalny maks., 5x1000 jest bardziej prawdopodobne znaleźć maksimum globalne, ponieważ istnieje mniejsze prawdopodobieństwo, że zostanie zablokowany w lokalnym maksimum, ponieważ kolejne runy zaczynają się od początkowej 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żdy stochastyczny nie wyczerpujący metoda nie daje gwarancji znalezienia globalnego maks min, bez względu na liczbę testów, jeśli jest mniejsza niż wyczerpująca Najłatwiejsza jest odpowiedź określenie dużej liczby testów, jak jest to rozsądne pod względem czasu wymaganego do ukończenia Inna prosta rada polega na pomnożeniu przez 10 liczby testów z dodaniem nowego wymiaru, co może prowadzić do przecenienia wymaganych testów, ale jest dość bezpieczne Wysyłane silniki są zaprojektowane do prostego w obsłudze, dlatego też używane są rozsądne domyślne wartości automatyczne, dzięki czemu optymalizacja może być zwykle wykonywana bez określania czegokolwiek przyjmującego wartości domyślne. Ważne jest, aby zrozumieć, że wszystkie inteligentne metody optymalizacji działają najlepiej w przestrzeni parametrów ciągłych i względnie gładko Funkcje Jeśli przestrzeń parametrów jest dyskretnymi algorytmami ewolucyjnymi mogą mieć kłopoty ze znalezieniem optymalnej wartości Jest to szczególnie prawdziwe w przypadku parametrów binarnych wyłączonych - 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 binarnych parametrów, nie należy używać ich bezpośrednio do inteligentnego optymalizatora. Zamiast tego staraj się optymalizować tylko ciągłe parametry przy użyciu inteligentnego optymalizatora i przełączanie parametrów binarnych ręcznie lub za pomocą zewnętrznego skryptu. SPSO - Standardowa cząstka Swarm Optimizer. Standard Particle Swarm Optimizer oparta jest na kodzie SPSO2007, który ma przynieść dobre wyniki, pod warunkiem, że podawane są poprawne parametry tj. Runy, MaxEval dla konkretnego problemu Wybieranie poprawnych opcji dla optymalizatora PSO może być trudne, dlatego też wyniki mogą znacznie różnić się w zależności od przypadku. jest dostarczany z pełnym kodem źródłowym wewnątrz podkatalogu ADK. Przykładowy kod dla Standardowego Cząstki Swarm Optimizer znalezienie optymalnej wartości w 1000 testów w obszarze wyszukiwania 10000 kombinacji. NarzędzieSetEngine spso OptymalizatorSetOption Runs, 1 OptimizerSetOption MaxEval, 1000.sl Optymalizacja s, 26, 1, 100, 1 fa Zoptymalizuj f, 12, 1, 100, 1.Buy Cross MACD fa, sl, 0 Sprzedaj Cross 0, MACD fa, sl. TRIBES - Adaptive Parameter-less Particle Swarm Optymalizator. Trybry są adaptacyjne, bez parametrów bez wersji PSO optymalizator roju cząstek Nie wyczerpujący optymalizator Dla naukowego tła patrz. W teorii powinien on być lepszy od zwykłego PSO, ponieważ może automatycznie dostosować rozmiary roju i strategię algorytmu do problemu, który zostanie rozwiązany. Praktyka wskazuje, że jej wydajność jest dość podobna do PSO. Wtyczka implementuje Tribes-D tj. Bezwymiarowy wariant Na podstawie Maurice Clerc Oryginalnych kodów źródłowych używanych za zgodą autora. jest dostarczany z pełnym kodem źródłowym wewnątrz folderu ADK. Powiadomione parametry MaxEval - maksymalna liczba testów wstecznych na każde uruchomienie domyślne 1000. Należy zwiększyć liczbę ocen z rosnącą liczbą wymiarów parametrów paramsów optymalizacji Domyślna wartość 1000 jest dobra dla 2 lub maksymalnie 3 wymiary. Runs - liczba uruchomień restartuje domyślnie 5 Możesz pozostawić liczbę przebiegów na domyślną wartość 5.By domyślna liczba uruchomień lub restartów jest ustawiona na 5. Aby użyć optymalizatora Tribes wystarczy dodać jedną linię do swojego kodu. OptymalizatorSetOption MaxEval, 5000 5000 ocen max. CMA-ES - Adaptacja matrycy kowariancji Optymalizacja strategii ewolucyjnej. CMA-ES Współczynnik kowariancji adaptacja Strategia ewolucyjna jest zaawansowanym niewyczerpującym optymalizatorem Dla naukowego kontekstu Zgodnie z naukowymi kryteriami przewyższają dziewięć innych najpopularniejszych strategii ewolucyjnych, takich jak PSO, ewolucja genetyczna i różnicowa. Wtyczka implementuje globalny wariant wyszukiwania z kilkoma restartami z rosnącym popem rozmiar przydziału pochodzi z pełnego kodu źródłowego wewnątrz folderu ADK. Domyślna liczba uruchomień lub restartów jest ustawiona na 5 Zalecane jest pozostawienie domyślnej liczby restartów. Możesz to zmienić za pomocą OptymalizatoraSetOption Runs, N call, gdzie N powinien znajdować się w zasięgu 1 10 Określenie więcej niż 10 przebiegów nie jest zalecane, choć możliwe Należy pamiętać, że każda kolejna operacja wykorzystuje TWICE rozmiar populacji poprzedniego cyklu, więc rośnie wykładniczo W związku z tym z 10 biegami kończy się liczba ludności 2 10 razy większa niż 1024 razy niż pierwsza bieg. jest innym parametrem MaxEval Domyślną wartością jest ZERO, co oznacza, że wtyczka automatycznie obliczy MaxEval. Nie zaleca się definiowania MaxEval przez siebie, ponieważ domyślnie działa poprawnie. Algorytm jest wystarczająco inteligentny, aby zminimalizować liczbę wymaganych ocen i zbiegać się bardzo szybko do rozwiązania punktu, więc często znajdzie rozwiązania szybciej niż inne strategie. Jest normalnie, że plugin pominie niektóre etapy ewaluacji, jeśli wykryje, że rozwiązanie zostało znalezione, to e nie należy się dziwić, że pasek postępu optymalizacji może poruszać się bardzo szybko w niektórych punktach wtyczka ma również możliwość zwiększenia liczby kroków powyżej pierwotnie oszacowanej wartości, jeśli jest potrzebna do znalezienia rozwiązania Ze względu na jego adaptacyjny charakter, szacowany czas pozostały i lub liczba kroków wyświetlanych w oknie dialogowym postępu jest najlepiej przypuszczalna w danej chwili i może różnić się w trakcie kursu optymalizacji. Aby użyć narzędzia do optymalizacji CMA-ES, wystarczy dodać jedną linię do swojego kodu. Spowoduje to uruchomienie optymalizacji z ustawieniami domyślnymi, które są w porządku dla większości przypadków. Należy zauważyć, podobnie jak w przypadku wielu algorytmów wyszukiwania przestrzeń kosmicznego, że zmniejszający się parametr kroku w funkcjach Optymalizacja połączeń nie wpływa znacząco na czasy optymalizacji Jedyną ważną kwestią jest wymiar problemu, tzn. liczba różnych parametrów liczba funkcji zoptymalizowania funkcji Liczba kroków na jeden parametr może być ustawiona bez wpływu na czas optymalizacji, więc użyj najlepszej rozdzielczości, jaką chcesz w teście y algorytm powinien być w stanie znaleźć rozwiązanie w co najwyżej 900 testach N 3 N 3, w których N jest wymiarem W praktyce zbiegnie się szybciej Z LOTA Przykładowo, rozwiązanie w przestrzeni parametrów 3 N trójwymiarowych mówi 100 100 100 1 miliona wyczerpujących kroków można znaleźć w zaledwie 500-900 kroków CMA-ES. Indiogwintowana indywidualna optymalizacja. Uruchamianie z AmiBroker 5 70 oprócz wielowątkowego wielowątkowego można przeprowadzić wielowątkową optymalizację pojedynczego symbolu Aby uzyskać dostęp do tej funkcji, kliknij przycisk drop strzałkę w dół obok przycisku Optymalizuj w oknie Nowa analiza i wybierz opcję Indywidualne optymalizowanie. Opcja Optymalizacja indywidualna będzie korzystać ze wszystkich dostępnych rdzeni procesora w celu przeprowadzenia optymalizacji pojedynczego symbolu, co znacznie przyspiesza jej wyniki niż regularna optymalizacja. W trybie bieżącego symbolu będzie on wykonywać optymalizację na jednym symbolu We wszystkich symbolach i trybach Filtr przetwarza wszystkie symbole kolejno, tj. Pierwszą pełną optymalizację dla pierwszego symbolu, a następnie optymalizację na drugim symbolu itp. Określenia 1 Custo m backtester nie jest jeszcze obsługiwany 2 Inteligentne silniki optymalizacyjne nie są obsługiwane - działa tylko optymalizacja EXHAUSTIVE. W międzyczasie możemy pozbyć się ograniczeń 1 - gdy AmiBroker zostanie zmieniony, więc niestandardowy backtester nie używa już OLE Ale 2 prawdopodobnie tu pozostać na długo. Informacje o AmiBroker. dla AmiBroker jest pakietem oprogramowania firmy zewnętrznej zapewniającym pełną możliwość programowania AmiBroker dla AmiBroker obejmuje wszystkie programowalne funkcje skryptów AmiBroker. AFL Wtyczki NET AFL mogą zastąpić dowolne skrypty AFL całkowicie lub częściowo pluginy AFL mogą uzyskać dostęp do macierzy danych, funkcji AFL, obiektów typu backtester podobnie jak program AFL Skrypt AflXCompiler może przetłumaczyć skrypt AFL na kod C redukujący czas i koszt konwersji skryptów do skompilowanego kodu. Wtyczki do danych Wtyczki danych NET zapewniają prostszy sposób zbierania danych handlowych w czasie rzeczywistym lub w czasie rzeczywistym i dostarczania ich do AmiBroker s database. OLE Interfejsy automatyzacji wraku umożliwiają sterowanie procesami optymalizacyjnymi AmiBroker z zewnętrznych procesów zapisywanych w niektórych językach Biblioteka ParallelAB umożliwia wielokrotne użycie programu AmiBroker równolegle do wykonywania wielu zadań optymalizacyjnych jednocześnie. Klasy wrapper IBController IBController umożliwiają korzystanie z transakcji IB interfejs z kodu. All programowalnych funkcji AmiBroker może być obsługiwane i wykorzystywane z kodu za pomocą dowolnego języka. Narzędzia, filtry, skanery, eksploracje, niestandardowe moduły backtester, automatyki i systemy handlu w czasie rzeczywistym, optymalizatory i źródła danych plug-ins, programy OLE lub ładowanie danych itp. F lub dowolnym języku. dla AmiBroker dla developerów systemów handlu. Rozszerzenie lub zastąpienie Twoich AFL z rozszerzeniem Code. AFL, które kiedyś służyło do wyzwania nawet doświadczonych programistów CC, można teraz zrobić w dowolnym języku bardzo łatwo i szybko Wtyczki NET mogą przedłużyć lub całkowicie zastąpić AFL skrypty AFL zawierają pliki, które można łatwo przekonwertować na AFL plug-in AFL wskaźników, skanerów, eksploracji, modułów backtester, moduły handlu w czasie rzeczywistym, etc mogą być tworzone w czystym lub w mieszance kodu AFL i NET może po prostu uzyskać dostęp do wszystkich wbudowanych, w metodach AFL i obiektach interfejsu backtester. Wtyczki źródłowe danych można także rozwinąć w dowolnym języku Używanie interfejsu danych jest znacznie prostsze niż oryginalny interfejs CC Zawsze zapewniają pełną funkcjonalność oryginalnego interfejsu i upraszczają integrację line i transmisji strumieniowej. Obsługa transakcji w czasie rzeczywistym przy użyciu interfejsu handlowego IBController dla AmiBroker zapewnia łatwą integrację wskaźników AFL, logikę handlową w kodzie obiektowym i AmiBroker Interfejs Auto-Trading dla Interaktywnych Brokerów Interfejs Zarządzany IBController i wtyczki udostępniają nowe, łatwiejsze, bardziej niezawodne i możliwe do opanowania sposoby tworzenia systemów obrotu w czasie rzeczywistym. Integrate AmiBroker do własnego procesu handlowego AmiBroker upraszcza integrację wszystkich rodzajów aplikacji do programu AmiBroker Using sprawia, że integracja aplikacji z interfejsami COM, takimi jak Excel, Access, Word, R, SciLab, MatLab, itp. jest prostym zadaniem. Dostępne są również nieograniczone możliwości integracji za pomocą wtyczki Class Library E g NET, wysyłanie wiadomości SMS, zadzwonić do serwisu internetowego, uzyskać dostęp do plików, komunikować się z zewnętrznym systemem zarządzania sprzedażą za pośrednictwem sieci lub nawet odbierać zdarzenia z systemu zewnętrznego. Szybsze tempo rozwoju za pomocą klas i krok po kroku debugowanie dla AmiBroker znacznie skróci czas programowania i oszczędza dużo czasu Krok po kroku debugowanie pomaga w debugowaniu i naprawianiu błędów Celem projektu jest ułatwienie pracy z AmiBroker i stil l wydajne wtyczki NET nie wymagają kodu hydraulicznego, np. wtyczek typu CC Programiści mogą pisać kod tak szybko, jak pisać kod AFL lub konwertować kod AFL niemal liniowo do C VB i programiści skryptów VB mogą pisać wpisy bezpośrednio. Biblioteka ParallelAB pomaga efektywnie wykorzystywać cały sprzęt do szerokiej analizy optymalizacji, poszukiwań i skanowania. Dzięki temu można łatwo opracować kod automatyzacji, który może sterować wieloma procesami AmiBroker, aby wykonywać różne zadania przy użyciu różnych baz danych nawet na rozproszonym sprzęcie. dla AmiBroker dla licencjonowanych systemów obrotu dla AmiBroker jest łatwym rozwiązaniem dla programistów działających w systemie handlu czarnego, które mają chronić, licencjonować i sprzedawać swoje systemy. Skrypty AFL można łatwo i szybko przekształcić w wtyczki nie pozostawiające logiki handlowej w plikach AFL Wtyczki NET można chronić i licencjonowane przez komercyjne narzędzia ochronne, takie jak IntelliLock CliSecure Licensing Licensing Pro itp. Ukryte wtyczki mogą być udostępniane publicznie Tylko klienci, którzy otrzymali licencję na swoje maszyny, mogą używać chronionych dodatków. dla AmiBroker dla dostawców usług danych. Data rozwoju wtyczki jest bardzo trudne, złożone zadanie To wymaga dużo wiedzy dewelopera i doświadczenia CC, pisania i debugowania wielowątkowego kodu, interfejsu plug-in danych AmiBroker s i interfejsu dostawcy danych dla AmiBroker podnosi barierę w rozwoju źródeł danych poprzez udostępnienie uproszczonego interfejsu źródła danych do integracji z funkcjami biblioteki AmiBroker i łatwego przetwarzania otrzymanych danych handlowych w cudzysłowie Dostarczone kody próbek kodu źródłowego pomagają zrozumieć wewnętrzną strukturę i procesy źródeł danych14 października 2017. Dodano 29 lutego 2017 r., Dodatkowe punkty do rozważenia.1 Ten system zależy od dokładnego wypełnienia po cenach otwartych Aby uzyskać takie wypełnienie wymaga jakościowych danych o minimalnym opóźnieniu i zaawansowanych umiejętności programowania w celu wdrożenia automatyzacji handlu.2 Podczas ustawiania wpisu cena nieznacznie niższa od ceny otwartej próbującej poprawić wydajność systemu niszczy się nawet polepszając cenę tylko jeden cent zabija system To sugeruje, że większość zysku pochodzi z dni, w których cena otwarta była równa dziennej niskim, tzn. cena wzrosła z poziomu otwartego i nigdy nie spadła poniżej tego. Oczywiście jest to oczywiste. Aby potwierdzić to dodałem ten warunek testowy to patrzy w przyszłość, aby wykluczyć dni, w których Open Low. Buy Kup, a nie O L. This zabija system i udowodni, że większość zysku pochodzi z dni, w których OL Aby dalej potwierdzić, dodałem przeciwny warunek. Kupuj Kupuj i O. To daje prawie nieskończone zyski i dowodzi, że większość zysków pochodzi z dni, kiedy cena wzrasta natychmiast z poziomu Otwartego i nigdy nie zwraca poniżej. Próbując poprawić cenę wejścia jest błędem, należy wprowadzić na zestaw Stop 1-2 ct powyżej ceny otwarcia, to wyeliminuje dni, kiedy cena spada i nigdy się nie cofa W ten sposób znacznie poprawia się wydajność3 Ten system obsługuje reguły odpowiedzi na przedsiębiorców-kolibry. Takie schematy są zazwyczaj utopione przez duże transakcje, dlatego te systemy tem działa znacznie lepiej, gdy wybierasz tickerzy z woluminami od 500.000 do 5.000.000 akcji dzień To również poprawia wydajność znacznie. Dodanie powyższych dwóch funkcji powoduje krzywą akcje znacznie lepiej niż pokazano poniżej Przepraszam, nie mam czasu na dokumentowanie powyższego w większym szczegółowo Powodzenia. Ta post przedstawia bardzo prosty pomysł na biznes długi, który kupuje w danym przedziale niższym niż wczoraj s Low i kończy się następnego dnia s Open Chociaż czasami trudno uzyskać dokładną cenę otwartą, wysoką rentowność tego systemu sprawia, że jest dobrym kandydatem do dalszych eksperymentów System działa dobrze z Watchlists jak N100, SP500, SP1500, Russel 1000 itd. Wydajność na Russel 1000, przy maksymalnej otwartej pozycji ustalonej na 1, na okres 12 10 2003 do 12 10 2017, wygląda tak. Niektóre z innych Watchlists dają mniejsze zyski z ekspozycji, ale to przychodzi z niższych DDs Komisje zostały ustalone na 0 005 na akcję Brak marginesu używane. Nie wyraźny ranking jest używany tickers są tra ded na podstawie ich alfabetycznego sortowania na liście obserwowanych Może to wydawać się dziwne, ale znaczące odwrócenie tego rodzaju awarii systemu Może to oznaczać, że z powodu problemów z skanowaniem w czasie rzeczywistym symbole wymienione na górze tego typu mogą być wymieniane inaczej niż wymienione na dole. Zwróć uwagę na płynność, z którą chcesz handlować więcej niż jedną pozycją i poślizgiem Wejście jest raczej wolne od ryzyka, ale wyjścia mogą być problematyczne DD są znaczne, ale mogą być zrekompensowane lepszymi transakcjami w czasie rzeczywistym i wyjściami W przypadku automatycznego obrotu możliwe jest umieszczenie zleceń OCA DAY-LMT dla wszystkich sygnałów i poczekaj i sprawdź, jakie wypełnienia. Ponieważ wyjścia są trudniejsze niż wpisy, które można chcieć zbadać inne strategie wyjścia. Wartości domyślne wartości domyślnych są wybierane z kapelusza. Prawie na pewno można je zoptymalizować lub dostosować dynamicznie do poszczególnych tickerów Krótko sprawdziłem ten system w trybie Walk-Forward i wyniki były opłacalne przez wszystkie lata testowane Z wyjątkiem liczby parametrów wymiany handlowej nie są zbyt krytyczne Nadmierne zoptymalizowanie nie wydaje się problemem w tym przypadku. Kodeks poniżej jest bardzo prosty i wymaga kilku wyjaśnień. Jednakże ważne jest, aby zrozumieć, że ten system ma małą przewagę poprzez handel na Open i przez obliczanie TrendMA przy tej samej cenie otwarcia Niektóre mogą interpretować to jako przyszły wyciek, jednak jeśli handlu tym systemie w czasie rzeczywistym, to nie Wielu ludzi nie zdaje sobie sprawy, że jeśli handlu na Open można również skorzystać z tej ceny w obliczenia tak długo, jak długo można je wykonać w czasie rzeczywistym, gdzie AmiBroker i technologia mogą dać Ci przewagę Jeśli Refback TrendMA przez jeden pasek, system jest nadal bardzo opłacalny, ale DD zwiększa się dla niektórych Watchlists Jeśli używasz inwestycji stałych, różnica jest nieistotna. Procedura handlowa polega na rozpoczęciu skanowania przed otwarciem rynku i usunięciu tickerów, które są wycenione tak zdalnie, że są mało prawdopodobne, aby spełnić funkcję OpenThresh. Można więc rozpocząć skanowanie 1000 sy mbols, ale bardzo szybko skanowany numer zmniejszy się do zaledwie kilkunastu tickerów Kiedy podejdziesz do 9:30 rano, skanowanie w czasie rzeczywistym będzie bardzo szybkie i będziesz mógł umieścić swoje zamówienie LMT w pobliżu Open, poprawić cenę Open. Mimo że kilka osób patrzyło na poniższy kod i nie znalazło nic złego, zyski wydają się dość wysokie dla takiego prostego systemu Proszę zgłaszać błędy, które możesz zobaczyć. Filed przez Herman o 7 03 w ramach pomysłów Komentarze eksperymentalne Wyłączono w systemie portfela handlowego Gap-Trading firmy EOD. Wrzesień 1, 2017. Pomysł został opublikowany 161332 na głównej liście AmiBroker w dniu 3 lipca 2017 r. Było wiele doskonałych komentarzy na tej liście i jeśli jesteś zainteresowany pracą nad tym systemem, przeczytać je wszystkie przed rozpoczęciem Po oddelegowaniu znalazłem wiele postów w internecie omawiając ten pomysł handlowy, niektóre twierdzą, że sprzedają podobny system z dobrym powodzeniem. Odwołałem się do tego systemu Gap Trading, ale może to być trochę przymiotnik, znaczy re wersja może być lepszą klasyfikacją Googling za to, że dostaniesz wiele więcej trafień do podobnych systemów Oto kilka linków. Jest to dość szeroko omawiany pomysł obrotu i sugeruję, abyś sam zrobił sam Googling, aby nauczyć się najnowszego As użytkownik programu Amibroker ma lepsze narzędzia niż większość podmiotów gospodarczych i masz większą szansę, niż większość, aby wymyślić odmianę, która działa Być może przy nieco mniejszym zysku, a przy znacznej ilości dodatkowego kodu to nie jest szybki projekt. Mania ludzie skomentowali, że ten system nie będzie działać w prawdziwym obrocie handlowym, a mogą być słuszne, że inni mówią takie systemy, że nie skończyłem tego systemu i nie mogę stwierdzić, czy jest to zbywalne czy nie. System kupuje w pewnym stopniu poniżej yesterday s Low, on a LMT order, and exits in the same day at the Close. Filed by Herman at 6 53 pm under Ideas Experimental Comments Off on A Long-only EOD Gap trading idea. I use a small setup criteria to scan for my stocks. MACD default, I l ook for Histogram 4 down bars and 1 up bar for buy signal I have the histogram set to red for down and blue for up so I can see clearly MACD above Zero Line RSI Above 30 This system is base on trend trading Buying on pullback when the market continues its up trend. To scan for MACD Trend setups.1 Insert the following formula into a chart.2 Run a Scan in AA using SMACDTrend with All symbols n last days n 1 and Sync chart on select as the settings. Stocks that meet the criteria will be reported in the Results list. Note Some variations of the setup rules can define signals that are quite rare and in small databases it is possible that there will be no setups on any given day hence no stock will be reported by the scan.3 Click on any symbol in the Results pane to view the chart, for that symbol, in the background. Note In this example a training database, that only contains data up to 5 11 2007, was used. Trading idea by protraderincments and formula by Bill WaveMechanic. Filed by brianz at 11 06 pm under Ideas Experimental Comments Off on MACD Trend System. October 14, 2007.Filed by brianz at 10 43 pm under Ideas Experimental Comments Off on 15 Day Performers Trading System. August 19, 2007.This is the first in a series off KISS keep it simple, stupid trading ideas for you to play with All system ideas presented here are unproven, unfinished, and may contain errors They are intended to show possible patterns for further exploration As always, you are invited to make comments and or add your own ideas to this series. I prefer real-time systems that trade fast, are automated, and are devoid of traditional indicators Preferably, they should have no optimizable parameters however, I may not always be able to meet this objective Not all systems will be that simple there will be some that use simple averaging or HHV LLV type functions The first system shown below is a copy of the demo system I use to develop Trade-Automation routines elsewhere on this site. Real-Time Gap-Trading To s ee how this works, you should Backtest it on 1-minute data with a periodicity in the range of 5-60 minutes Your first impression may be that these profits are simply due to an up market, however, the fact that Long and Short profits are about equal suggests there is more to it Because 98 of all trades fall between 9 30 AM and 10 30 AM, this type of system is nice if you just want to trade a short time each day This reduces risk with respect to market exposure and gives you more time to enjoy other activities. Backtesting this on the NASDAQ-100 watchlist individual backtests, 15 min Periodicity gives the profits shown below for the period of 1 MAR 2007 to 17 AUG 2007 Ticker names are omitted to keep the chart compact the chart simply shows a net profit bar for each ticker tested Average exposure for this system is about 15 hence, you may be able to trade portfolios to increase profits and smooth the equity curves Be cautioned that in its raw form the drawdowns are unacceptable and that there may be volume restrictions for many tickers. Since this system has low exposure, it may be a candidate for market scanning and ranked portfolio trading RARs would be an indication of the absolute maximum profits that could be obtained if one succeeded to increase exposure to near 100 However, price movement from different tickers may be correlated, and trades from different tickers may overlap If many tickers trade at the same time, it would be difficult to increase system exposure. Edited by Al Venosa. Filed by Herman at 1 49 pm under Ideas Experimental Comments Off on KISS-001 Intraday Gap Trading. August 17, 2007.You are invited to submit links to system ideas in comments to this post. Gap Trading Strategies Stockcharts Intraday Moving Average Crossover with Position Sizing NeoTicker Volatility-Breakout-Systems Traders Log Ten day High Low system StockWeblog Reversion Systems SeekingAlpha Systems Traders Club Trader Club Bulletins. July 16, 2007.This category is reserved for real wo rking trading systems, i e that you have traded at some point in time or would consider trading Since the criteria for tradability varies from person to person, and since systems may work or not depending on how they are traded, it will be difficult to screen contributions here With respect to what is posted here, keep an open mind and consider that the poster considers the system tradable. You can contribute by posting as an author requires registration or in a comment to this post. Filed by Herman at 11 14 am under Practical Profitable Comments Off on Introduction to Trading Systems Practical. This is where you can share trading systems that are marginally profitable, i e those that should not be traded as they are but that show potential Typically this would be a basic system that is profitable but experiences draw downs of 50 Such systems can often be improved by adding Stops, Targets, Money Management, Portfolio techniques, etc The reality is that while you may not have the expertise to make it work someone else may. Almost all of us find trading system ideas in books and magazines that we then code in AFL for evaluation Some of these systems may have been around for many years while others are new ideas After coding them, almost always, we are disappointed and chuck out the system work Instead of throwing out your work you are invited to post the system here to give another developer a chance to fix it. You are invited to contribute as an author requires registration or in a comment to this post. Filed by Herman at 11 04 am under Ideas Experimental Comments Off on Introduction to Trading Systems Ideas.
Comments
Post a Comment