dzisiaj nie będę komentował bieżących wydarzeń z rynku ale przedstawię wam moją malutką strategię wysokiego prawdopodobieństwa opartą na statystyce. Aby zachęcić do dalszego czytania dodam, że podana strategia może dać ponad 75% prawdopodobieństwa wygranej z rynkiem, a w niektórych przypadkach ponad 95%! Udostępniam ją całkowicie za darmo, moja jedyna prośba to poinformowanie znajomych o istnieniu tego bloga!
Podstawowym problemem niektórych oscylatorów jest to, że zakładają one rozkład normalny cen akcji podczas gdy taki rozkład nie jest adekwatny do rynku. W mojej strategii posłużę się wstęgami boillingera oraz transformatą fishera aby stworzyć logiczny i statystycznie poprawnie systemik.
- Zamieniamy rozkład cen akcji na rozkład normalny za pomocą transformaty Fishera oraz procesu normalizacji - czyli mówiąc po ludzku robimy oscylator stochastyczny z cen i zamieniamy go na rozkład normalny.
- Na znormalizowany rozkład cen akcji rzucamy wstęgi boillingera i sprawdzamy co się dzieję przy przebiciu dwu-krotności odchylenia standardowego zarówno przy górnej wstędze jak i przy dolnej.
- Logika, która stoi za systemem jest bardzo prosta - jeżeli transformata Fishera przebije wstęgę boillingera taka obserwacja jest bardzo nietypowa i może oznaczać zachwianie równowagi na rynku. Takie odstępstwo może być bardzo szybko utemperowane powrotem do wstęg lub ogromną pompą w dotychczasowym kierunku.
Testy przeprowadzam na S%P500 futures, jednak nic nie stoi na przeszkodzie aby ten system sprawdzić na innych giełdach i papierach. Wykorzystuję wstęgę 14-okresową. Tak to wygląda w praktyce:
Ten "ostry" oscylator to właśnie znormalizowany kanał cenowy przemielony przez transformatę. Wstęgi są zaznaczone na kolor zielony.
Rozważę 6 strategii z wykorzystaniem podanych narzędzi. Dlaczego? O tym poniżej, w raportach.
- Przebicie górnej wstęgi przez transformatę
- Strategia po przebiciu gdy dzień jest wzrostowy
- Strategia po przebiciu gdy dzień jest spadkowy
- Przebicie dolnej wstęgi przed transformatę
- Strategia po przebiciu gdy dzień jest wzrostowy
- Strategia po przebiciu gdy dzień jest spadkowy
Link #1
Link#2
Link#3
Dla tych, którzy chcą więcej wiedzieć o transformacie Fishera i metodach statystycznych polecam bossę oraz literaturę tam zawartą. Większość kodów do amibrokera jest umieszczonych na stronie amibroker.com, zapraszam do eksperymentowania i dzielenia się opiniami! Poniżej zamieszczam kod AFL z transformatą i wstęgami. Jeżeli zajdzie potrzeba mogę przeprowadzić podobną analizą na WIG20, WIG20 Futures oraz Akcje WIG20.
function InverseFisher(array)
{
e2y = exp(2 * array);
return (e2y - 1)/(e2y + 1);
}
function Normalize(array, arraylen)
// Figure 1.7 on p. 7
{
MaxH = HHV(array, arraylen);
MinL = LLV(array, arraylen);
Value1[0] = array[0]; // Initialize as array
for(i = 1; i < BarCount; i++)
{
Value1[i] = .5 * 2 * ((array[i] - MinL[i]) / (MaxH[i] - MinL[i]) - .5) +
.5 * Value1[i-1];
if (Value1[i] > .9999) Value1[i] = .9999;
if (Value1[i] < -.9999) Value1[i] = -.9999;
}
return Value1;
}
function Fisher(array)
// Figure 1.7 on p. 7
{
F = array;
F = .25 * log((1+ array)/(1 - array)) + .5 * Ref(F, -1);
return F;
}
Med = (H+L)/2;
// Fisher Transform
FisherXform = Fisher(Normalize(Med, 10));
Plot(FisherXform, "Fisher Transform", colorRed, styleLine);
//Plot(Ref(FisherXform, -1), "", colorBlue, styleLine);
PlotGrid(2);
PlotGrid(-2);
_SECTION_BEGIN("Bollinger Bands");
P = ParamField("Price field",-1);
Periods = Param("Periods", 15, 2, 300, 1 );
Width = Param("Width", 2, 0, 10, 0.05 );
Color = ParamColor("Color", colorCycle );
Style = ParamStyle("Style");
Plot( BBandTop( P, Periods, Width ), "BBTop" + _PARAM_VALUES(), Color, Style );
Plot( BBandBot( P, Periods, Width ), "BBBot" + _PARAM_VALUES(), Color, Style );
_SECTION_END();

Witam
OdpowiedzUsuńCzy mógłbyś mi napisać w jaki sposób doładować dane do harmonic analyzer i skąd najlepiej je pobrać? Czy harmonic analyzer można połączyć z amibrokerem?
Pozdrawiam
Cześć,
OdpowiedzUsuńszerzej na temat importowania danych do HA pisałem tutaj:
http://wig-pl.blogspot.com/2010/09/harmonic-patterns-ciag-dalszy.html
HA jest bardzo wybredny jeżeli chodzi o przyjmowanie danych zewnętrznych. Sprawę możesz załatwić automatycznie przez skrypt a Amibrokerze lub ręcznie pobierając dane ze stooq.pl. Ściągasz to, co cię interesuję i wrzucasz do folderu
c:\\Users\\NazwaUżytkownika\\haData
Nie podepniesz HA do Amibrokera (rozumiem, że chodzi o dostarczanie danych intra do HA? ), ponieważ Analyzer przyjmuję tylko eSignal (pisałem kiedyś w tej sprawie do supportu). Również możesz zapomnieć o ładowaniu danych intra w formacie CSV do HA. Niestety, każdy program ma swoje plusy i swoje minusy.
Pozdrawiam
Cześć
OdpowiedzUsuńDziękuję za wyczerpującą odpowiedź.
Pozdrawiam
Czy dałoby radę podać kod do MetaTradera?
OdpowiedzUsuńJak wygląda strategia na konraktach na WIG20?
Wygląda to bardzo ciekawie :)