Translate my BLOG

środa, 18 września 2013

Czytelniku, potrzebna Twoja pomoc!


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

14 komentarzy:

  1. Gratuluję wygranego konkursu, a ile w ogóle osób w nim uczestniczyło i jaką stopę zwrotu w jakim czasie osiągnąłeś?
    Co do skryptu, to ja się niestety na tym nie znam :/ więc raczej nie pomogę :(

    OdpowiedzUsuń
    Odpowiedzi
    1. Dziękuję
      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.

      Usuń
    2. 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ń
    3. 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ń
  2. Nie mam w tej chwili AmiBrokera, ale tak na szybko, jakby potrzebował więcej wyjaśnień to zapraszam na priv:
    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ć).

    OdpowiedzUsuń
    Odpowiedzi
    1. 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ń
    2. aha i jak użyć ten parametr Periods?
      i gdzie Cie do wiadomości na priv znajdę, bo w profilowym nie ma do Ciebie kontaktu (przynajmniej nie widzę)...

      Usuń
    3. np. tak
      Buy = Cross( Close, EMA( Close, Periods ) );
      Sell = Cross( EMA( Close, Periods ), Close );
      to powinno też umożliwić optymalizacje.
      kontakt: piotrb na gmailu

      Usuń
  3. 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.

    Pozdrawiam,

    OdpowiedzUsuń
    Odpowiedzi
    1. 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ń
    2. Co masz na myśli mówiąc o optymalizacji średniej dla każdego instrumentu?

      Usuń
    3. Dobrać tak parametry aby najlepiej dostosować średnią do danego instrumentu (przykład: średnia na Ropie lub na WIGu tu na moim blogu).

      Usuń
  4. 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ń
  5. Bardzo fajny temat pracy sobie wybrałeś :)

    OdpowiedzUsuń