szerda, december 01, 2010

Nézzük a stratégiát

Lassan tradíciót csinálok abból, hogy a blog majdnem mindegyik bejegyzése úgy kezdődik, ahogyan ez is...
Nagyon régen sikerült utoljára írnom a blogba, talán azért is, mert mindig sokat szeretnék írni, de kevés az időm, de leginkább azért, mert folyamatosan tanulom a szakmát én is.
Ezért úgy döntöttem, hogy nem fogok hosszú írásokat közzétenni, hanem relatíve rövidebbeket, viszont ezt sűrűbben teszem majd. 

Legutóbb azt írtam, hogy a megvalósítandó stratégiát fogom leírni, ami igaz is. Ezért most röviden a stratégiáról fogok írni.

Nagy általánosságban a stratégiákat három alapvető részre oszthatjuk, hogyha programozás technikailag nézzük a szerkezetét.
  1. Pozíció nyitás
  2. Pozíció módosítás
  3. Pozíció zárás
A pozíció nyitásához azonban nem csak a stratégia számításai a fontosak, hanem a money management számítások is rendkívül fontosak! Tudom, hogy folyton ezen lovagolok, de higgyétek el, tényleg nagyon fontos!
Egyenlőre azonban a program fejlesztésére koncentrálunk, így a stratégiát úgy fogjuk elkészíteni, ahogyan én is szoktam a gyakorlatban csinálni.
A fejlesztés fázisai a következők lesznek :
  • A pozíció nyitások és zárások elméletének ellenőrzése
  • Money management-tel történő támogatása
  • Veszteségek további csökkentése
  • Nyereségek növelése
  • Demó számlán történő tesztelés
  • Éles számlán történő tesztelés kis összegekkel
Nézzük szépen sorban, mert hiszen komoly magyarázatra szorul mindegyik rész szerintem.

A pozíció nyitások és zárások elméletének ellenőrzése nem másról szól, mint arról, hogy a trader kitalálja milyen jelzések alapján akar kereskedni, majd ezekre a jelzésekre "összeüt" egy rövid kis kódot és backtest-tel leteszteli, hogy az általa kitalált elmélet mennyire állja meg a helyét.Ennek ugye ott az értelme, hogy a backtest alkalmával látni fogod, hogy valóban jókor nyit-e pozíciót a programod és jókor zárja-e le. Előfordulhat ugyanis, hogy kitalálod a frankót, de amikor backtest-telsz, azt fogod látni, hogy bizony nem minden esetben akkor nyit long-ot, amikor tényleg felfelé indul el az árfolyam, vagy az is lehet, hogy elindul felfelé az ár, de mégsem nyit long-ot. Tehát ez fontos, hogy a kitalált elméletet leellenőrizzük.

Money management támogatás. Itt egész egyszerűen arról van szó, hogy meghatározzuk azokat a kritériumokat, amely szerint a pozíció méreteket kitalálja a program magától. Ezt a részt persze ki is hagyhatnánk és mondhatnánk, hogy fix lot-okkal kereskedünk, ilyen is van, ezt fix pozíció méretnek nevezzük. Itt kell azonban kitalálnunk azt is, hogy hová húzzuk a stop-okat (SL), hová tesszük a take profit-okat (TP). Ezek ismeretében pedig ki tudjuk számítani a Risk/Reward arányt is (RR), ami meg fogja mondani nekünk, hogy érdemes-e egyáltalán pozícióba lépnünk. Sajnos ez egy elég bonyolult algoritmus, nem biztos, hogy ezt az elején fogjuk tárgyalni, de mindenképpen fontos.

A veszteségek csökkentése is egy olyan technika, amikor a backtest által nyújtott információkat használjuk fel arra, hogy növeljük a profit faktorunkat, vagyis a nyerő kereskedések számát meghagyva csökkentjük azoknak a pozíció nyitásoknak a számát, amelyek veszteséget termelnek. Ez persze azt jelenti, hogy kevesebb pozíciót fog nyitni a programunk, de legalább ezek nagyobb részt lesznek nyereségesek, mint veszteségesek.

A nyereségek növelése pedig azt a célt szolgálja, hogy a nyereséges pozíció nyitások nyereségét fogjuk feltornászni mindenféle trükkökkel, hogy azután a veszteségek eltörpüljenek mellettük. Nem kell óriási trükkökre gondolni, egyszerűen arról van szó, hogyha az árfolyam elindul felfelé és long-ot nyitunk például, akkor figyeljük, hogy az ár mozog-e még tovább felfelé. Ha igen, akkor újabb long-ot nyitunk, vagyis rákötünk az előző pozíciónyitásra. Ezt piramis építésnek, vagy piramidális pozíció építésnek is hívják. A pozíciók SL-i és TP-i ugyanazok és egyszerre is zárjuk őket. Elképzelhető, hogy záráskor lesznek veszteséges pozíciók, de a piramis építésekor a csúcson lévők lesznek a veszteségesek, az alattuk lévő (vagyis korábban nyitott) pozíciók azonban nagyobb és nagyobb nyereséggel rendelkeznek, ahogy szélesedik a piramis lefelé.

Ha minden a helyére kerül, akkor lehet tesztelni éles adatokkal egy demó számlán, ugyanis a backtest csak informál a lehetséges sikerekről, de mivel már a múlt, ezért az nem biztos, hogy a jövőre nézve is igaz. Az esélye meg van, de ki tudja mit hoz a jövő... Itt legalább egy, de inkább három hónapig teszteljük a programunkat, minden héten alaposan kiértékelve a nyitott és zárt pozíciókat.

Ha pedig elégedettek vagyunk a programunk teljesítményével a demó számlán, elkezdődhet az éles számlán történő tesztelés kis összegekkel. Itt egészen kicsi összegekről van szó, 500 USD, maximum 1000 USD-ről. Persze ez van, akinek komoly összeg, de ha már a demó számlán jól teljesített a programunk, akkor nyilván nem félünk attól, hogy elveszítjük a pénzünket. Itt azonban szintén komolyan kell venni néhány irányelvet, amit majd e rész tárgyalásakor részletesen le is írok.

És akkor most lássuk a stratégiát!
Ez egy régi stratégia, sokan használják kézi és félautomata kereskedésekhez (amikor csak jelez a program, hogy pozíciót kellene nyitni, vagy zárni, de nem nyitja/zárja). Egyébként rém egyszerű dologról van szó.
Három indikátort fogunk használni. Mielőtt azonban ténylegesen ismertetném a stratégiát szeretnék megosztani Veletek egy igen fontos dolgot.

A stratégiák megalkotásakor sokan vagyunk hajlamosak arra, hogy a beépített indikátorok és a tanult indikátorok alapján találjuk ki, hogy mikor nyitunk pozíciót és mikor zárjuk azt.
A probléma abból adódik, hogy ezek az általánosan ismert és a kereskedési platformokba beépített indikátorok még akkor születtek, amikor a számítástechnika gyerekcipőben járt, ezért nagyon általános információkat szolgáltatnak. Kézi kereskedéshez jók, ha az ember látja a chart-ot, mert akkor tudja, hogy most éppen oldalaz a piac, fölösleges hinni az ADX-nek. De egy automata program nem "látja" a chart-ot és akkor is pozícióba fog lépni, amikor oldalazás van.

Ez egyébként az automatikus programok egyik rákfenéje is, vagy ha úgy tetszik a Szent Grálja. Ha a program képes "rájönni" arra, hogy mikor van oldalazás, akkor nem fog pozícióba lépni az indikátorok jelzésére, ha pedig elindul a trend, akkor meg tök mindegy melyik klasszikus indikátort használod, akkor is nyerni fogsz, csak a nyereség nagysága különbözik. Ilyenkor az RSI, az ADX, a Stochastic, vagy bármi más igazat mond, köthetsz. De ha oldalazik az árfolyam, akkor is jelet fognak adni ezek az indikátorok, így becsapod magad és a spread miatt, meg a folyamatos zavar miatt elveszíted a fáradtságosan megkeresett pénzedet...

Nem szabad elfelejteni, hogy általános érvényű az a szabály, hogy a piac 70%-ban oldalazik és mindössze 30%-ban mozog trendszerűen!!! Ezt nagyon komolyan kell venni!

(Csak zárojelben jegyezném meg, hogy a másik megoldás az agresszív stratégia, de ez nagyon veszélyes. Ez tulajdonképpen olyan, mint a sörétes puska, mindenre lő, ami a grafikonon van, ráadásul hatalmas lot méretekkel (akár 6 lot is lehet), amit egy-két gyertya után be is zár. Ehhez azonban nagy tőke kell, még okosabb indikátorok és hihetetlen bátorság! Ezzel nem is fogunk foglalkozni, mert a mi szintünkön ez még annyira durva, hogy jobb, ha félünk tőle. Akinél dolgozik a tőzsdepszichológia, annál néhány óra alatt lenullázott számlát jelent ez a fajta kereskedés! Mivel nagy tőkéről van szó, a veszteség is nagy!!! Mindenkit óvva intenék ettől!!!)

Tehát, a hagyományos indikátorokat gyakorlatilag el is felejthetjük. Az említett három indikátorból kettőt használunk a pozíció megnyitására, a harmadikat (ami egyébként egy beépített indikátor lesz), pedig a SL húzásra használunk.
A stratégiánk is erre alapul, nincs TP, viszont van SL, RR nem számítható (itt a rizikó), viszont követő stop-okat húzunk, amit aztán az árfolyam kiüt. Tehát konkrét pozíció zárás sem lesz a stratégiában, hanem a SL-ra bízzuk a zárást. Attól a pillanattól kezdve, amikor a SL vonala a pozíció nyitás fölött lesz, már nyereséges a pozíció zárása, illetve jelen esetben a "kistoppolódása".

Tehát két olyan indikátort fogunk használni, melyek nincsenek beépítve a Metatrader-be, erről volt szó.
Az egyik egy - egyébként meglehetősen jól ismert - mások által sűrűn használt indikátor, a TVI.
A TVI, azaz a Trend Volume Index az OBV (On Balance Volume) indikátor továbbfejlesztett változata.
Az OBV nem használható eredményesen napközben, ellenben a TVI-t erre találták ki.

Bár minden tőzsdeiskolában azt tanítják, hogy a deviza kereskedésnél a forgalom értékeket nem szabad figyelembe venni, mert azok hamis adatok, ennek ellenére a Metatrader-ben a forgalmi információk megbízhatók, így nyugodtan használhatjuk a részvény kereskedésnél megszokott indikátorainkat, melyek a forgalmi adatokat is felhasználják. A TVI is ilyen indikátor. A forgalmi adatok és a Bid, Ask árak figyelembe vételével számol ki egy úgynevezett biztonsági mutatót, amely a vásárlás, vagy az eladás biztonságosságát hivatott mutatni egy görbe formájában a chart-on. Ráadásul nem követő indikátor, mert a forgalmi adatok jól mutatják meg egy árfolyam mozgás esetében, hogy mikor fárad ki a trend, vagy mikor tör ki az árfolyam.

A másik indikátor egy igen furfangos indikátor, a CCI (Common Channel Index) és az ATR (Average True Range) indikátorokat használja trend meghatározásra. A CCI önmagában is igen jól használható indikátor, különösképpen, ha a középvonal átlépést vizsgáljuk elég jól meg tudjuk mondani, hogy merre indul a trend, de sajnos igen "izgága" indikátor, ezért oldalazásban becsaphat bennünket. Az indikátorunk, amelyről szó van, az ATR-rel szelídíti meg a CCI mozgását, egy igen ügyes technikával. Így egy sokkal kevésbé ugráló vonalat kapunk, ráadásul mindezt a chart-on, tehát nem különálló ablakban. Ez az indikátor a TrendMagic.

E két indikátor jelzéseit fogjuk figyelni, hogy éppen mikor merre mozdul el, amikor pedig mindkét indikátor ugyanazt mutatja, akkor pozícióba lépünk a mutatott iránynak megfelelően.

A kilépésekkel és a SL-al nem sokat fogunk törődni, hanem a Parabolic SAR indikátor megfelelően paraméterezett változatával határozzuk meg a stop-okat, amelyet minden egyes gyertyánál módosítunk, így amikor elindul a trend, akkor egyszerűen követjük azt, amikor pedig megfordul, akkor a SL kilépteti pozíciót, és meg is kaptuk a pozíció nyereségét.
Ugyancsak eme indikátor miatt nem fogunk TP-t sem számolgatni, de aki szeretne majd, beállíthat TP-t. Ez esetben a hosszabb trendeket nem lehet majd maximális profittal kihasználni, de a semminél mindenképpen több lesz a nyereség, és ami fontos : biztos nyereség lesz.

Amire majd a fejlesztés során megoldást kell találnunk, az az oldalazásban történő pozíció nyitás kivédése, itt ugyanis kapunk majd jelet, de sajnos olyan rövidek a lokális trendek, hogy a spread és a SL miatt szinte semmi hasznunk nem marad, sőt, inkább veszteséges pozíció zárások történnek. De erre is van recept!

A következő post-ban összerakunk egy kódot, amit majd tesztelgetni fogunk mindenféle beállításokkal.