Olejarz – prezentacja kolejnego automatu inwestycyjnego (algotrading)
Posted by Marek | Posted in ciekawostki, Surowce | Posted on 06-03-2015 11:32 am
16
Jako, że niebawem przechodzę na tymczasową emeryturę, w trakcie porządków na komputerze postanowiłem zerknąć z ciekawości na napisane przeze mnie w ostatnich latach automaty inwestycyjne. Od razu szczególnie zainteresował mnie pewien automat, który napisałem typowo pod rynek ropy naftowej, czyli z uwzględnieniem jego specyfiki (odmiennej nieco od rynku FOREX, pod który był pisany uprzednio ujawniony system).
Automat w roboczej wersji otrzymał nazwę „Olejarz” i już jakiś czas „leżakuje” na zamkniętym kodzie, gdzie jest egzaminowany przez upływający czas, gdyż testy zaraz po napisaniu kodu są nieadekwatne, ponieważ nie uwzględniają okresu „harców” na rynku rzeczywistym od zamknięcia kodu, czyli ostatecznej kompilacji automatu bez nanoszenia nowych optymalizacji.
W ramach testów postanowiłem sprawdzić go na danych z okresu ostatniego półrocza, by zobaczyć czy potrafi sobie poradzić również na spadającym rynku. Kapitał początkowy został ustawiony na 10 000zł. Finalnie raport z testera okazał się całkiem przyzwoity. Już sam wykres krzywej kapitału nie pozostawia złudzeń, czy automat dalej „ma krzepę”.
Do testu wykorzystano model „Każdy tick” (najbardziej precyzyjna metoda oparta na najmniejszych dostępnych przedziałach czasowych). Poniżej wklejam screen raportu bezpośrednio z testera
.. oraz dodaję także pełny eksport dla dociekliwych 😉
Całość systemu, łącznie z rozbudowanym algorytmem, nie przekroczyła 2000 linii kodu źródłowego, co można odczytać przechodząc na sam koniec pliku.
Za minione półrocze skuteczność wyniosła 75%, czyli znacznie mniej niż wartość z testów przed rozpoczęciem „leżakowania”, co też podkreśla nikłą wartość takich testów bazujących na danych historycznych, kiedy trwają ostatnie optymalizacje kodu. Dlatego dopiero testy od zamknięcia kodu źródłowego, które jednocześnie pokazują zachowanie systemu w warunkach zbliżonych do rzeczywistych, dają pełniejszy obraz sytuacji.
Niemniej jednak z wyników jego pracy jestem zadowolony, gdyż potrafił sobie poradzić również na rynku niedźwiedzia, co w przypadku automatów jest niezwykle ważne, gdyż ten, który potrafi sobie perfekcyjnie radzić na rynku wzrostowym, często w trakcie bessy potrafi „oszaleć” i wyzerować konto 😉
Także niech każdy początkujący fan automatów pamięta, że wyniki wychodzące na danych historycznych zaraz po ukończeniu programu są mało miarodajne i należy koniecznie schłodzić wielki entuzjazm, który bez wątpienia może się pojawić, gdy testy pokażą ogromne pieniądze, jakie można było zarobić. To tylko historia sprzed utworzenia danego systemu. Dużo ważniejsza jest historia, którą on stworzy już po ostatecznej kompilacji kodu źródłowego.
Reasumując, póki co Olejarz nie ląduje do kosza i dalej będzie poddawany nieodzownej próbie czasu. Zobaczymy co z niego wyrośnie 😉
mosz kolego łep 🙂
Programowania uczyłem się od liceum (zalążki algorytmów były nawet wcześniej), a na studiach byłem prezesem Koła Naukowego 🙂 Dwukrotnie dotarłem także do finału 24h maratonu programistycznego: https://www.deadline24.pl/ 🙂
Także powiedzmy, że trochę „liznąłem” tematu, ale w tej kwestii jest jeszcze ogrom rzeczy do opanowania 😉
Jestem pełen podziwu wobec Twoich umiejętności Marku, a zarazem trzeźwego stąpania po ziemi.
Kończyłem informatykę na UW i znam skalę trudności występującą przy tworzeniu nawet prostych algorytmów. Stworzyć coś unikalnego potrafią jedynie nieliczni.
Gratuluję i życzę wielu sukcesów.
Marku, a jest szansa dostać pełny raport? 🙂 Coby sobie poanalizować…
Gratuluję kolejnej emerytury 🙂
Hej Marek,
wynik niesamowity, zbieram szczękę z podłogi 🙂
Czy mógłbyś zapuścić „Olejarza” od października 2013, żeby pokazać jak radzi sobie z boczniakiem przez mocnymi spadkami?
Pozdrawiam,
Wojtek.
Hej Wojtek,
raport od października jest w tym linku: http://www.technikaichimoku.pl/wp-content/uploads/2015/03/Olejarz_2013.png
Skuteczność w tym okresie wynosi 83,33%
Pozdrawiam
Marek
Fajna nazwa 🙂
Ja kiedyś napisałem sobie kod pod ropę, który nazywał się „nafciarz” 🙂 taki brat bliźniak 😛
Może to brat bliźniak rozdzielony metodą [ctrl] + X, [ctrl] + V 😉
Na pewno nie, bo to był w afl pod amibrokera napisany kod 🙂 i nie był to automat do algo tylko taki tam „dawacz sygnałów” 🙂
Najlepsza beka jest to, o czym piszesz, że model zachowywał się w 90% prozyskowo na danych historycznych, ale jak zobaczył dane rzeczywiste to oszalał i go skasowałem i wtedy nie myślałem, żeby kod odstawić na półkę.
Czy jest mozliwosc odkupienia automatu? Pozdrawiam
podejrzewam że jest ale pozwolić mógłby sobie na to jedynie warren buffet 😀
Panie Marku pozdrawiam i podziwiam
@Greg
.. ale po co komu nieprzetestowany kompleksowo automat? Testy na historii sprzed dnia utworzenia automatu są jedynie mirażem i dobrą marketingową papką dla naciągaczy sprzedających trefne sygnały z lipnych automatów.
Rzetelne są tylko testy na danych z sesji, które wystąpiły już po zamknięciu kodu, czyli program napisany np. jutro, będzie można kompleksowo ocenić dopiero za jakieś 7 lat lub nawet dłużej. Przy rzetelnym podejściu do tematu, nie ma po prostu innej drogi. Granie na świeżo utworzonym automacie, to nic innego jak jedynie beta testy 😉
To ja chętnie nieodpłatnie pomogę w tych beta-testach 😀
Jak automaty podpina się do systemu maklerskiego (np bossa.pl czy cokolwiek innego). Czy są jakies dedykowane programy, które łączą automaty z interfejsem maklerskim dostarczając mu danych i jednocześnie wysyłając zlecenia.
Screen kodu przypomina mi program Eclipse i zastanawiam sie jak to sie łączy wszystko w działającą całość.
Byłbym wdzięczny za odpowiedź.
Jest to kod w MQL’u i po kompilacji można go używać na platformie MetaTrader 🙂 Jeśli kiedyś będę miał więcej czasu, to może zrobię jakąś serię wpisów na ten temat, gdyż jest to bardzo obszerny dział 🙂
Witam,
bardzo dobry pomysl z tym artykulem o pisaniu automatow pod platforme maklerska. Mozna prosic o info kiedy taki art opublikujesz i czy bedzie mial charakter tutoriala?
Pozdrawiam