Piszę pracę dyplomową na temat: "Analizy efektywności automatycznych systemów transakcyjnych opartych o średnie kroczące na przykładzie polskich spółek giełdowych". W tym celu musze napisać skrypt w AFL (AmiBroker Formula Language), który przeprowadzi odpowiednie testy na podstawie których będę mógł skorzystać z statystyk transakcji.
Przyznam, że programowanie zbytnio mi "nie leży" i
to co do tej pory stworzyłem nie do końca odpowiada moim wyobrażeniom. Być może
nie wiem jak do końca pracować na automatyzacji w AmiBrokerze, gdyż nigdy dotąd
nie korzystałem z tego narzędzia.
Dlatego potrzebuję Twoją pomoc - zależy mi na dokładnym
wyjaśnieniu tego narzędzia w programie oraz na ewentualnej poprawie mojego
skryptu:
P = ParamField("Price field",-1);
Periods = Param("Periods", 100, 2, 300, 1, 10 );
Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") );
Buy = Cross( Close, EMA( Close, 100 ) );
Sell = Cross(
EMA( Close, 100
), Close );
Za wszelką pomoc, ewentualnie kontakt do osoby która tym się
więcej zajmuje byłbym bardzo wdzięczny. Gdybym miał się tym zająć osobiście
zajęło by mi to po prostu za dużo czasu, którego chwilowo niestety nie mam.
Mam nadzieję, że po tym jak ja dzieliłem się swoją wiedzą i
pomagałem tam gdzie mogłem tym razem mogę liczyć na Waszą pomoc.
W ramach podziękowań podzielę się nagrodą, którą zdobyłem w "Wakacyjnym
konkursie" na gragieldowa.pl - zdobyłem pierwsze miejsce w prowadzeniu
wakacyjnego portfela wypracowując najwyższą stopę zwrotu. Nagrodą jaką się
podzielę to bon o wartości 200 zł w serwisie onepress.pl
Gratuluję wygranego konkursu, a ile w ogóle osób w nim uczestniczyło i jaką stopę zwrotu w jakim czasie osiągnąłeś?
OdpowiedzUsuńCo do skryptu, to ja się niestety na tym nie znam :/ więc raczej nie pomogę :(
Dziękuję
UsuńW konkursie uczestniczyło ok. 400 osób, moja stopa zwrotu to 26% w jeden miesiąc.
W sumie zawarłem tylko trzy transakcje, kupno: CCC, CDR, i ZKA które trzymałem do końca konkursu.
Jak często bierzesz udział w takich konkursach, bo ja prawie w każdym którym znajdę, chociaż jeszcze nigdy nic nie wygrałem :P
UsuńRzadko - jest to mój 3 może 4 udział w takim konkursie. Wcześniej brałem udział w konkursie organizowanym przez Parkiet oraz XTB i to było jak zaczynałem stawiać pierwsze kroki na giełdzie.
UsuńNie mam w tej chwili AmiBrokera, ale tak na szybko, jakby potrzebował więcej wyjaśnień to zapraszam na priv:
OdpowiedzUsuńP = ParamField("Price field",-1);
//Tu jest dodana wartość P wyznaczana na podstawie tego co na wykresie (jeżeli jest jakiś wskaźnik to jego wartości, jeżeli nie to wartości cen zamknięcia)
Periods = Param("Periods", 100, 2, 300, 1, 10 );
//Tu jest dodany parametr Periods (taka sama nazwa z interfejsu konfiguracji strategii)
Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") );
//Tu jest rysowanie średniej wykładniczej (podejrzewam, że w zamyśle z cen zamknięcia)
Buy = Cross( Close, EMA( Close, 100 ) );
//Tu kupujemy na przecięciu średniej 100-okresowej i ceny ( zamiast 100 - podejrzewam, że intencją autora mogło być użycie wartości Periods)
Sell = Cross( EMA( Close, 100 ), Close );
//Tu sprzedajemy na przecięciu ceny i średniej 100-okresowej ( zamiast 100 - podejrzewam, że intencją autora mogło być użycie wartości Periods)
Żeby to była w pełni automatyczna strategia, to jeszcze trzeba nad nią trochę popracować, ale na potrzeby pracy to chyba nie ma potrzeby jej rozbudowywać (ew. ten parametr Periods użyć).
Myślę, że skrypt należało by trochę właśnie rozbudować, po za tym nie wiem jak go zoptymalizować, dodatkowo chciałem żeby pokazał wyniki na wszystkich instrumentach (gdzie najlepsze i gdzie najgorsze) bo mi wyniki pokazuje tylko na kilku (mimo zaznaczeniu "all symbols")...
Usuńaha i jak użyć ten parametr Periods?
Usuńi gdzie Cie do wiadomości na priv znajdę, bo w profilowym nie ma do Ciebie kontaktu (przynajmniej nie widzę)...
np. tak
UsuńBuy = Cross( Close, EMA( Close, Periods ) );
Sell = Cross( EMA( Close, Periods ), Close );
to powinno też umożliwić optymalizacje.
kontakt: piotrb na gmailu
Nie łatwiej Ci by było w excelu taki test przeprowadzić? Moja praca dyplomowa była na temat systemu opartego na świecach japońskich i ze wszystkim poradziłem sobie w oprogramowaniu Microsoftu.
OdpowiedzUsuńPozdrawiam,
W excelu to właśnie było by trudniej - nie dość, że bardzo duża liczba danych to trzeba by jeszcze nad optymalizacją średniej do każdego instrumentu popracować...
UsuńCo masz na myśli mówiąc o optymalizacji średniej dla każdego instrumentu?
UsuńDobrać tak parametry aby najlepiej dostosować średnią do danego instrumentu (przykład: średnia na Ropie lub na WIGu tu na moim blogu).
Usuńsiema, jak cos możesz zawsze do mnie napisać w jakiś sprawach programistycznych (zawodowo się tym zajmuję, AFL też znam) maciczka at gmail com. Co do optymalizacji w AmiBrokerze to też takowe przeprowadzam i nie jest to jakoś zbytnio skomplikowane. Musisz wybrać próbkę (zakres czasowy), spółki (opcja Filter) oraz napisać skrypt który będzie definiował Buy i Sell czyli jedne z zastrzeżonych nazw zmiennych. Bonu nie potrzebuję, chętnie pomogę.
OdpowiedzUsuńBardzo fajny temat pracy sobie wybrałeś :)
OdpowiedzUsuń