Egy egyszerű stochastikus indikátoron mutatom be az AMibrokerben rejlő optimalizálási lehetőséget.

Két progit másolok ide be, mindkettő tartalmazza az utasításokat is, hogy mit kell velük tenni, hogy optimalizálni tudj.

1. progi:

//////////////////////////////////////////////////////////////////////////

// Ezt a progit húzd ki pane-re

// Itt megadom neki, hogy a felhasználó jobb gombbal a pane-re aztan a parameters menüre kattintva milyen

// állítási lehetőségek közül választhasson.

// Beállíthatja a periódust. A formula a következő:

// Periods változó legyen egyenlő egy beállított értékkel, aminek a neve "Period", alapértéke 52,

// minimuma 1, maximuma 100, lépésköze pedig 1

// Tehát ezt az értéket állítgathatjuk a fent leírt módon. Jobb gomb a pane-re -> Parameters

// és ott már látjuk is

Periods = Param( "Periods", 15, 1, 100, 1 );

// Az előző analógiájára megadjuk a %K-t is változtathatóra, hogy szabadon módosíthassuk a kívánt értékre

Ksmooth = Param( "%K avg", 3, 1, 30, 1 );

// És a %D-t is ugyanígy

Dsmooth = Param( "%D avg", 3, 1, 30, 1 );

// Itt megadjuk, hogy a Stoch_D legyen egyenlő a Stochastic D indikátorral,

// mégpedig az általunk megadott paraméterekkel vegye fel az értékét.

Stoch_D = StochD( periods , Ksmooth, DSmooth );

// Stochastic K-ra ugyanez

Stoch_K = StochK( periods , Ksmooth);

//Itt kirajzoltatom az indikátorokat.

Plot( Stoch_D, _DEFAULT_NAME(), colorRed, 0 );

Plot( Stoch_K, _DEFAULT_NAME(), colorBlue, 0 );

// Itt megadom, hogy mit tekintsen vételi, eladási, short nyitási és zárási pontnak.

// A cross függvény 1-et ad, amikor az első fügvény alulról metszi a másodikat.

// Ebben az esetben vétel, ha stochk alulról metszi stochd-t és eladás, ha fordítva.

Buy= Cross(Stoch_K, Stoch_D);

Sell= Cross(Stoch_D, Stoch_K);

Short= Sell;

Cover= Buy;

// Itt a kereskedési nyilakat rajzoltatom ki vele.

PlotShapes( IIf(Buy, shapeUpArrow, Null), colorGreen, 0, Stoch_K*1.03);

PlotShapes( IIf(Sell, shapeDownArrow, Null), colorRed, 0, Stoch_K*0.97);

//////////////////////////////////////////////////////////////////////////////////

2. progi:

//////////////////////////////////////////////////////////////////////////////////

// Ez a program ugyanaz, mint a másik volt kis különbséggel.

// Itt a paraméterek definiálásához nem a Param utasítást használtam, hanem az Optimize-t.

// Ezt így nem lehet kitenni pane-re, mert nem rajzol semmit és nem is lehet állítani benne a paramétereket.

// Viszont ezt lehet optimalizálni!

//

// Ez úgy működik, hogy fent megnyomod a felkiáltójel gombot.

// A felugró ablakban megnyomod a settings gombot.

// Alul a Commissions Rates-nél bepontozod a percent-et és beírod a szövegmezőbe, hogy lábanként hány % a brokidíj.

// Fent Initial Equity-nek az egyszerűség kedvéért állíts be 1 millát.

// Alatta positions: long. Ha hatira nézed, akkor: short és long.

// Periodicity Hourly.

// Ezután nyomd meg az OK-t

//

// Ekkor visszajutsz az Automatic Analysis ablakba

// bepontozod, hogy Apply to current symbol.

// Range-nél meg beállítod, hogy from to tetszőleges általad válsztott időpontot.

// Ne legyen túl tág, mert más a stratégia 5k-n, mint 1,5k-n. Túl szűk se legyen, mert akkor meg kevés a minta.

// Utána klikkelj rá az Optimize gombra.

// Ekkor feldob egy kérdést, hogy sok lesz a számítás biztos akarod-e.

// Nyomj Yes-t és akkor elkezd számolni.

// Várd ki a végét.

//

// Ha végzett akkor látnod kell egy táblázatot a profitra rendezve.

// A táblázat végén pedig az ideális paraméterek lesznek a megfelelő oszlopban. "Periods" oszlopban a periódus,

// "%K avg" oszlopban a %K, stb.

Periods = Optimize( "Periods", 52, 1, 100, 1 );

Ksmooth = Optimize( "%K avg", 8, 1, 30, 1 );

Dsmooth = Optimize( "%D avg", 9, 1, 30, 1 );

Stoch_D = StochD( periods , Ksmooth, DSmooth );

Stoch_K = StochK( periods , Ksmooth);

Buy= Cross(Stoch_K, Stoch_D);

Sell= Cross(Stoch_D, Stoch_K);

Cover=Buy;

Short=Sell;

////////////////////////////////////////////////////////////////////////////////////