kedd, április 23, 2013

Backtest - avagy a puding próbája

Egyik korábbi bejegyzésemben arról írtam, hogy a tesztelés egy igen fontos fázis, ha robotot készítünk.
A tesztelés nem túl egyszerű dolog, ugyanis ehhez teszt adatok kellenek. Korábban a NinjaTrader-rel próbálkoztam, de olyan nagyon megbízhatatlan adatokat szolgáltatott a teszteléshez, ami miatt a sokkal megbízhatóbb - és talán éppen ezért népszerűbb - MetaTrader-re nyergeltem át.

A FOREX robot tesztelésének egyik legfontosabb lépése a backtest. Nem kell megijedni ettől a szótól, csupán annyit jelent, hogy a múlt adatait alapul véve tesztelünk. A MetaTrader ebben is profibb társainál (habár biztosan lesz aki talál ettől is jobbat), ugyanis a múltbéli adatokat nem gyertyákként raktározza el, hanem tick-ekként, vagyis a múlt történései reprodukálhatók tick-ről tick-re.

Természetesen ez a rendszer sem hibátlan, de legalább korrigálhatók a hibák és egy olyan adatbázison tudunk tesztelni, ami a valósághoz a legközelebb áll.

Hozzátenném azonban, hogy a múlt béli adatokon végzett tesztek eredményei nem azt jelentik, hogy a jövőben is így fog teljesíteni a robot! Olyannyira nem, hogy előfordulhat az, hogy a backtest alkalmával fantasztikus eredményeket hoz a robot, de amikor az éles FOREX adatokon teszteljük, akkor sorra köti és zárja a vesztes pozíciókat. Természetesen a backtest statisztikailag bizonyítja FOREX robotunk működésének helyességét, de ez minden. A fontos az, hogy nem szabad nagyobb jelentőséget tulajdonítani a backtest-nek, mint ami valójában! Csak statisztikai teszt.

Viszont ez a statisztikai tesz igen sok hasznos információval szolgál arról, hogy az általunk kitalált stratégia életképes-e, egyáltalán vannak-e sikeres kötései, illetve ha veszteséges kötései vannak, akkor azok miért vannak, mennyi ilyen veszteséges kötés van egymás után, illetve milyen körülmények között történik.

Miért érdekesek ezek számunkra? Nagyon egyszerű a válasz. Azért, mert rájöhetünk a stratégiánk gyenge pontjára, amit a stratégia módosításával megszüntethetünk, de akár azt is láthatjuk belőle, hogy egy jó Money Management stratégiával hogyan lehet még több nyereségre szert tenni, esetleg a veszteséges stratégiát nyereségesbe átfordítani.

Nézzük hogyan is megy ez és mit láthatunk egy ilyen tesztből.
A tesztet a Stratégia Teszter menüpontban találjuk, a Nézet menüben (CTRL-R gyorsbillentyű). A grafikon alján meg is nyílik egy kis ablak, amiben néhány mezőt találunk.
Nézzük őket sorjában :
  • Expert Advisor - ez a mi kis programunk lesz, itt a legördülő menüből lehet kiválasztani a tesztelni kívánt robotot.
  • Szimbólum - Nos, itt pedig azt a devizapárt fogjuk tudni kiválasztani, amin a tesztet végre akarjuk hajtani.
  • Model - itt a szimuláció modelljét tudjuk kiválasztani, erről mindjárt kicsit bővebben beszélünk
  • Használat dátuma - itt mondhatjuk meg, hogy mely dátumtól mely dátumig történjen a teszt, illetve azt, hogy egyáltalán foglalkozzon-e a dátumokkal a teszter.
  • Visual mode - ha kipipáljuk, akkor látni fogjuk a szimulációt tick-ről tick-re és követhetjük mit művel a programunk. Itt van pár érdekesség, erről is beszélünk mindjárt.
  • Időszak - itt tulajdonképpen az időtávot választhatjuk meg, hogy 15 percesen, vagy 1 óráson, vagy valamelyik másik időtávon szeretnénk a tesztet végrehajtani.
  • Optimalizáció - ha optimalizálni szeretnénk, akkor ezt kell bepipálni. Ezt ne tegyük, ugyanis most backtest-telni fogunk.
  • Van egy-két nyomógomb is a jobb szélen, ezek közül a legfontosabb az Expert tulajdonságok, ahol a robotunk paramétereit adhatjuk meg úgy, mintha éppen most indítanánk éles rendszerben, de a rendelkezésre álló tőkét is beállíthatjuk, az optimalizálás paramétereit is, stb. (Az optimalizálás egy külön témakör, ezért erről most nem ejtünk szót)
  • Szimbólumok tulajdonságai - itt az adott devizapár chart-jára vonatkozó információkat láthatjuk - sajnos nem módosíthatjuk. Ez a bróker által meghatározott spread, swap, margin, stb. információk, tájékoztatásul.
  • Nyitott chart - ezzel a gombbal megnyithatjuk a chart-ot, ha nem visuális módban futattuk a tesztünket és megnézhetjük mi történt a teszt ideje alatt. 
  • Expert módosítás - egyértelmű, ez az átjáró a MetaEditor-ba.
A tesztet azután tudjuk elindítani, ha már mindent beállítottunk. Vizuális tesztelés során, látni fogjuk, hogyan mozog az árfolyam, illetve mikor milyen pozíciókat nyit az Expert-ünk. 

A tesztelés sebességét a kis csúszkával állíthatjuk, illetve dönthetünk úgy is, hogy kihagyjuk a vizuális megjelenítést, fusson végig a meghatározott időszakon a program és mutassa a tesztelés eredményeit.

A tesztelések eredménye azonban már más kérdés. 
Nyilvánvalóan érdekes látni azt, hogy az általunk fabrikált Expert követi az utasításainkat - és miért is ne tenné - tehát a pozíció nyitások akkor lép-e pozícióba, amikor a megfelelő jelet kapja, akkor zárja-e a pozíciót, amikor kell, stb.
A backtest természetesen erre is választ ad.

Feltételezzük azonban, hogy az Expert írója képes úgy megírni a programot, ahogy a robot kívánja, és a stratégia szerint nyit és zár pozíciót. Az igazi kérdés ilyenkor az, hogy maga a stratégia életképes-e!
Ez nyilván nem csak attól függ, hogy a pozícióba lépés és a pozíció zárás sikeres volt-e, de sokat nyom a latba.
Nézzük csak miről is van szó...

Robotunk stratégiáját ugye úgy találtuk ki, hogy bizonyos piaci körülményekre számítva nyitunk és zárunk pozíciót. A valódi kérdés az, hogy ezeket a piaci körülményeket sikerült-e úgy meghatározni, hogy nyertes pozíciót zárjunk a lehető legtöbb alkalommal. Mondok egy példát.

Tegyük fel, hogy olyan forex robotot készítünk, amely semmi mást nem figyel, csak azt, hogy az aktuális gyertyatrend végén (mondjuk 5 gyertyából álló lokális gyertyatrendeket figyelünk) van-e kulcsforduló gyertya. Ha van, akkor a lokális gyertyatrend megfordulására számítunk és a feltételezett fordulás irányba nyitunk pozíciót. Tehát trend irányba.
(valljuk be őszintén, hogy ez nem is egy rossz stratégia, sokan kereskednek ilyen egyszerű szabályok alapján, ráadásul minden tőzsdeiskolában tanítják ennek az egyedülálló gyertya alakzatnak az erősségét, jelentőségét)

Azt, hogy mennyire sikeres a robotunk sok tényező befolyásolja, a legbeszédesebb mérőszáma a számlaegyenleg változása. De ne csak ezt figyeljük. 
Egy forex robot esetében igen fontos információ a találati arány. Nézzük meg, mit is olvashatunk ki egy teszt eredményeiből!

Amikor a backtest lefutott, a Stratégia teszter alsó ablakában öt fület látunk.
Az első fülön a robot beállításait látjuk (Beállítások fül), a második fülön ar Eredmények-et, azaz a kötéslistát részletesen, a harmadig fül a Grafikon nevet kapta és tulajdonképpen a számla egyenlegünk változásait jeleníti meg a rendszer, negyedik fül a Jelentés-é, az ötödik pedig a Napló, ahol az Expert Advisor hibaüzeneteit találhatjuk meg.

Számunkra a Jelentés fülön található információk a lényegesek most! 
A legfontosabb információk közé tartozik a Modelling quality a jobb felső sarokban. Ez azt mondja meg, hogy a tesztelés során használt adatok milyen pontossággal felelnek meg a historikus adatoknak. Ez a mérőszám igen fontos, hiszen, ha ez nem elég magas szám, akkor a teszt komolysága kerül veszélybe. 
Alap esetben ez 25%, ami sajnos elégtelen! 50%-nál jobb értékre van szükség egy hihető teszthez, minél közelebb esik a 100%-hoz, annál megbízhatóbbak a jelentés eredményei. Azt, hogy hogyan lehet ezt a %-os arányt javítani, igen sok útmutatót találunk az interneten, erre most nem térnék ki, de meg kell említenem, hogy viszonylag egyszerű és ingyenes megoldásokkal fel lehet tornászni ezt a számot 90%-ra. 70% körüli értékkel már nyugodtan tesztelhetünk és hihetünk is a teszteknek.

A következő fontos információ a középen lévő Short pozíciók (won %) nevű adat, amely mellett rögtön ott van jobbra a Long pozíciók (won %) adat is és ne feledkezzünk meg a középső oszlopban lévő Nyereséges kereskedések (összes %-a) adatról sem! Ezek fogják megmondani, hogy valójában mennyire sikeres a stratégiánk, mekkora a találati arány! A short és long pozíciók találati arányát láthatjuk itt, illetve az összes (short és long) kötés találati arányát, ami a két előbbi átlaga. 
Ha ez az érték 50%, vagy e körüli, akkor egy átlagos stratégiát sikerült összeraknunk.
(és szeretném megjegyezni itt gyorsan, hogy például a gyárilag készített MACD Sample nevű Expert Advisor találati aránya az összes kötésre 90%!!! Érdekes, hogy maga a robot nem hoz komoly eredményeket ennek ellenére)

Ez a szám igazából azért fontos, hogy tudjuk, hogy a kitalált stratégiánk - azaz milyen jelre kötünk és zárunk pozíciót - hányszor "jön be" az aktuális piaci helyzetben. Minél magasabb ez a szám, annál inkább alkalmas a stratégia automatikus kereskedésre, forex robot készítésére. Ha ezek a számok 50%-nál alacsonyabbak, akkor inkább fél automatikus (semi-automatic) stratégiát építhetünk belőle! 
Tehát ha ez a szám alacsony, az még nem jelenti azt, hogy használhatatlan kereskedésre, csupán azt, hogy olyan feltételeket állítottunk fel, amely az esetek kevesebb, mint 50%-ban jön csak be, mint nyerő stratégia. Tehát tanuljuk meg helyén kezelni ezt az adatot.

Az előbbi információk beszédességét nagyban befolyásolja, hogy a teszt milyen időszakot ölel át. Minél nagyobbat, annál jobb. Ha tudunk egyben tesztelni mondjuk egy évet, akkor az a legjobb, hiszen egy év alatt igen sokféle gazdasági esemény fordul elő, amelyekre reagálnia kell a robotunknak! 
Fontos és meghatározó információ az is, hogy összesen hány kötés szerepelt a tesztben, hiszen nem mindegy, hogy 3 kötésből lett a robot 60%-os találati arányú, vagy 300 kötésből. Minél nagyobb az össz kötések száma, annál jobb és megbízhatóbb a teszt.
Ezt egyébként a jelentés bal oldalán az Összes kereskedés mellett látjuk majd!

Érdekes adat még az egymást követő sikeres ügyletek (a profit pénzben) és az egymást követő veszteséges ügyletek (a veszteség pénzben) adatok is. Ezek tulajdonképpen a sorozatban nyert és vesztett ügyletek számát mutatja, ahol igen fontos lehet adott stratégia esetében, hogy milyen arányban van e két szám. Természetesen minél nagyobb a sorozatban megnyert kötések száma a sorozatban elvesztett kötésekhez képest, annál jobb.

A fenti adatok sokat mondhatnak egy Expert Advisor teljesítményéről, ha nem csak a számla egyenleg értékét nézzük. Ugyanis ezek abban segítenek, hogy mit tegyünk még a robotunkhoz annak érdekében, hogy nyerhessünk vele. Esetleg mit változtassunk a stratégiánkon.

A stratégia megváltoztatásához annyit fűznék hozzá, hogy ez nem feltétlenül okos ötlet. Ugyanis, ha a legnagyobb veszteségeket kielemzi az ember a chart-on, akkor azt fogjuk a stratégiában kiküszöbölni és ezzel még több bonyodalmat okozunk robotunknak, az egyébként nyereséges szituációkra.
Tehát a stratégiához csak a legvégső esetben nyúljuk.

Sokkal okosabb ötlet a Money Management-hez nyúlni. Létezik olyan stratégia, amely 30%-os találati aránnyal rendelkezik, ennek ellenére nyereséges, nem is kicsit. Ezt természetesen a Money Management-nek köszönheti. Igen, egy alapvetően veszteséges stratégiát is nyereségessé lehet tenni egy jó Money Management-tel, a kérdés mindössze annyi, hogy érdemes-e azért a nyereségért bonyolult MM-et hozzá fejleszteni.

Fogok írni a MM különféle elgondolásairól,mert nagyon érdekes, ha az ember végig gondolja, mihez mit érdemes párosítani. Nem mindegy, hogy trend irányába kereskedünk, vagy trend ellen, és az sem mindegy, hogy mekkora a találati aránya a robotnak! Egy jó forex robot jó MM-el kell rendelkezzen!

kedd, április 16, 2013

Egy különleges - támasz ellenállás - indikátor forex robotokhoz

Ahogyan kifejlődött

Amikor tőzsdézni tanultam, sokat kellett küzdenem azzal, hogy mi számít völgynek és mi számít csúcsnak. Éppen ezért sokat gondolkodtam később egy olyan indikátoron, ami megjelöli nekem a csúcsokat és a völgyeket! Mindjárt rávilágítok arra is, hogy miért!

Sokat kísérleteztem, keresgéltem a neten, de sehogyan sem találtam olyan indikátort, amivel elégedett lettem volna, mert sokszor oda is rajzol egy indikátor völgyet és csúcsot, ahová én nem tenném. Viszont, ahová völgy és csúcs megjelölést tennék, oda meg nem tesz jelet!

Na de miért is probléma ez?
Rengeteg stratégiát néztem át az elmúlt évek során, különösen azért, hogy FOREX robotot készítsek belőle. A legtöbb stratégia indikátor betegségben szenved, mert több, mint 6 indikátort használnak, amelyek különféle kombinációi esetén nyitnak pozíciót, amit aztán még többféle kombináció esetében zár le.
A legtöbb stratégia az emberi megérzésre, intuícióra, vagy valami olyasmire hajaz, amiből aztán lehetetlen egy jól működő expert advisor-t összehozni!

Ezzel szemben, a leges-legegyszerűbb stratégiák, amelyekkel kézzel kereskedni is lehet, a támasz-ellenállás átlépésekre alapszik, és ezeket viszont nem nehéz leprogramozni, ha az ember kellő gyakorlatra tesz szert!
És itt jön a csúcs-völgy megállapítás problémája.

Az alapötlet rém egyszerű, ebből sikerült azután építkezni.
Hogyan állapítsunk meg völgyet és csúcsot, ez itt a kérdés. Amikor tanultam a tőzsdézés fortélyait, volt egy érdekes megállapítási "algoritmus", ami segített megtanulni a völgy és csúcs meghatározását. Ha ez nem megy, akkor felejtsük is el, hogy kézzel kereskedni fogunk valaha is!
Erre a "feladatra" az volt a "mankó", hogy feltettem a chart-ra egy 2-es és egy 6-os mozgóátlagot (Moving Average). Ezekkel kezdtem operálni. Ha a gyorsabb MA alulról felfelé keresztezi a lassabbat, akkor ott a közelben kell lennie egy völgynek, míg ha felülről lefelé keresztezi, akkor ott meg egy csúcsnak kell lennie valamerre a keresztezés előtt!

Amint ezt felfedeztem, már sokkal könnyebb volt a völgyeket és csúcsokat szubjektíven meghatározni. Igen ám, de ez kézi módszer, segít a kézi kereskedésben, de nem segít automatizáltan.
Egy olyan indikátorban kezdtem gondolkodni, amely megjelöli a csúcsokat és völgyeket, de jól is használható.

Végül sikerült összerakni! Nem sima vagy exponenciális mozgóátlagot használtam, hanem súlyozottat, és mellé tettem egy logikát, az indikátor kereszteződése után visszamenőleg a Highest() és a Lowest() függvénnyel megkeresi a legalacsonyabb pontot és a legmagasabb pontot  (highest high és lowest low logika). Ott lesznek a csúcsok és völgyek!

De hogy még jobban hangolható legyen a dolog, a Highest() és a Lowest() függvények vizsgálódási paraméterét - tehát, hogy hány gyertyára visszamenőleg keressék meg a csúcsot és völgyet - változtathatóra állítottam be, sőt, a mozgóátlagok paraméterét is!

Addig, amíg az indikátor nyilakkal bejelölte a csúcsot és völgyet, kézi kereskedéshez kiváló, de forex robot számára nem túl használható megoldás született. Sok a baj ezekkel a nyilakkal.
Robot számára valami egyszerűbb kell. Kitaláltam hát, hogy a Donchian channel mintájára elkészítem az indikátor "csatornásított" változatát, amelyben ugyanúgy három paraméterrel lehet meghatározni a tulajdonságát (MA-k és a Highest és Lowest függvények paraméterét).

Ez nagyon bejött! A csatornából kitörő gyertya azonnal jelzi a trend megindulását, a csatorna érintése viszont tökéletes megoldás oldalazás végig kereskedésére! A robotok is szeretik, mert egy határozott vonal átlépést sokkal könnyebb ellenőrizni programból, mint nyilakat keresgélni visszamenőleg X gyertyára!

Az indikátor neve : TopBottomChannel.
Paraméterei :
  • sens : alapérték 20, azt a gyertyaszámot adja meg, amelyen belül meg kell keresni a legmagasabb, vagy a legalacsonyabb pontját a gyertyatrendnek.
  • slowMA : alapérték 6, lassú mozgóátlag periódus ideje.
  • fastMA : alapérték 2, gyors mozgóátlag periódus ideje.
Lehet játszani a beállításokkal, de az alapértékek általában jók. M1-től fölfelé kereskedésre is lehet hazsnálni, mindjárt leírom hogyan.

Az indikátor :

 //+------------------------------------------------------------------+  
 //|                       TopBottomChannel.mq4 |  
 //|                  Copyright © 2009, Janos Antal |  
 //|                                 |  
 //+------------------------------------------------------------------+  
 #property copyright "Copyright © 2013, Janos Antal"  
 #property link   "http://tozsdecapak.blogspot.hu"  
   
 #property indicator_chart_window  
 #property indicator_buffers 2  
 #property indicator_color1 DodgerBlue  
 #property indicator_color2 Red  
   
 #include <stderror.mqh>  
 #include <stdlib.mqh>  
   
 #include <WinUser32.mqh>  
   
 #import "user32.dll"  
   int RegisterWindowMessageA(string lpstring);  
 #import  
   
 #define CHART_CMD_UPDATE_DATA  33324  
   
 extern int sens = 20;  
 extern int slowMA = 6;  
 extern int fastMA = 2;  
   
 double top[], bottom[];  
 int bar;  
 int hwnd = 0;  
 //+------------------------------------------------------------------+  
 //| Custom indicator initialization function             |  
 //+------------------------------------------------------------------+  
   
 int UpdateChartWindow()  
 {    
   if(hwnd == 0) {  
    //Megkeressük a chart window-t az update-eléshez  
    hwnd = WindowHandle(Symbol(), Period());  
   }  
   if(hwnd!= 0) {  
    if (IsDllsAllowed() == false) {  
      //DLL calls engedélyezve kell legyen  
      Print("Dll calls must be allowed");  
      return (-1);  
    }  
    if (PostMessageA(hwnd,WM_COMMAND,CHART_CMD_UPDATE_DATA,0) == 0) {  
      //Nem sikerült, bezárult az ablak  
      hwnd = 0;  
    } else {  
      //Sikerült  
      int MT4InternalMsg = RegisterWindowMessageA("MetaTrader4_Internal_Message");  
      PostMessageA(hwnd,MT4InternalMsg,2,1);       
      return (0);  
    }  
   }  
   return (-1);  
 }  
   
 int init()  
  {  
   SetIndexStyle(0,DRAW_LINE,0,2);  
   SetIndexBuffer(0,top);  
   SetIndexLabel(0,"Top");  
   SetIndexArrow(0,241);  
   
   SetIndexStyle(1,DRAW_LINE,0,2);  
   SetIndexBuffer(1,bottom);  
   SetIndexLabel(1,"Bottom");  
   SetIndexArrow(1,242);  
   return(0);  
   bar=0;  
  }  
 //+------------------------------------------------------------------+  
 //| Custom indicator deinitialization function            |  
 //+------------------------------------------------------------------+  
 int deinit()  
  {  
 //----  
     
 //----  
   return(0);  
  }  
 //+------------------------------------------------------------------+  
 //| Custom indicator iteration function               |  
 //+------------------------------------------------------------------+  
 int start()  
 {  
   int  counted_bars=IndicatorCounted();  
   int bi;  
   int ti;  
   int index,i,j;  
   double FMWA1, FMWA2, SMWA1, SMWA2, t,b;  
       
   if(counted_bars<0) return(-1);   
   if(counted_bars>0) counted_bars--;   
     
   int limit = Bars-counted_bars;  
     
   if (bar == Bars)  
   {  
    return;  
   }else  
   {  
    bar=Bars;  
   }  
     
   if (limit < 1500)  
    limit=1500;  
   
   for(i=limit;i>0;i--)  
   {  
    FMWA1=iMA(NULL,0,slowMA,0,MODE_LWMA,PRICE_CLOSE,i);  
    FMWA2=iMA(NULL,0,slowMA,0,MODE_LWMA,PRICE_CLOSE,i-1);  
    SMWA1=iMA(NULL,0,fastMA,0,MODE_LWMA,PRICE_CLOSE,i);  
    SMWA2=iMA(NULL,0,fastMA,0,MODE_LWMA,PRICE_CLOSE,i-1);  
      
    top[i]=GlobalVariableGet("Top"+Symbol()+Period());  
    bottom[i]=GlobalVariableGet("Bottom"+Symbol()+Period());      
              
    if (SMWA1 > FMWA1 && SMWA2 < FMWA2)            
    {  
      bi=iLowest(Symbol(),Period(),MODE_LOW,sens,i);  
      b=Low[bi];  
      for(j=0;j<=bi;j++)  
      {  
       bottom[j]=b;  
      }  
      GlobalVariableSet("Bottom"+Symbol()+Period(),b);  
    }  
      
    if (SMWA1 < FMWA1 && SMWA2 > FMWA2)            
    {  
      ti=iHighest(Symbol(),Period(),MODE_HIGH,sens,i);  
      t=High[ti];  
      for(j=0;j<=ti;j++)  
      {  
       top[j]=t;  
      }  
      GlobalVariableSet("Top"+Symbol()+Period(),t);      
    }   
   }  
     
   UpdateChartWindow();  
 }  

Kereskedés

Az időtáv gyakorlatilag bármi lehet, M1-től D1-ig, bár azt meg kell mondjam, hogy magasabb időtávon biztosabb a jel, de aki tőzsdézik, jól tudja ezt.

Trendben
Pozíció nyitás : amikor az alsó vonal alatt zár egy gyertya, short pozíció nyitása, illetve ha a felső vonal fölött zár a gyertya, akkor long. Stop-loss lehet az átlépés helye, vagy a korábbi völgy, azaz a csatorna alja.

Pozíció zárás: több megoldás működhet, nekem ami eddig legjobban bejött, az az, ha mondjuk a felső vonal fölött zár a gyertya, megnyitom a long-ot, majd az árfolyam elkezd felfelé mozogni. Amikor visszateszt, vagy counter trend kezdődik, létrejön egy újabb mozgóátlag keresztezés, és a TopBottomChannel felső vonala felugrik. Na ekkor zárom a a long-ot. Short-nál ugyanígy, csak ellentétes irányban természetesen.
Másik megoldás egy követő stop, ami lehet ATR alapú (ha a bróker enged közeli stopokat), vagy lehet fix. Lehet nullába húzós (break even stop) is, majd ezután indul a követő stop húzás. 

Oldalazásban
Pozíció nyitás : amikor a csatorna vonala "ugrik", akkor detektálja a mozgóátlagok kereszteződését. Ekkor általában "megérinti" a csatorna tetjét, vagy az alját egy gyertya, de nem lépi át (oldalaz). Ekkor érdemes trend irányú pozíciót nyitni! Tehát ha a felső vonal "ugrott", akkor short, mert már lefelé megy az árfolyam, ha a pedig az alsó vonalat érinti, akkor long. Stop-loss lehet a csatorna vonal maga, célárnak pedig meg lehet jelölni a másik csatorna vonalát.

Pozíció zárás : amikor eléri az ár az alsó csatornát, akkor céláron, vagy kézzel ott. Esetleg követő stop, de ez rosszabb hatásfokkal működik. 

Sok sikert a kereskedéshez!