Tvorba vlastního AOS (5) – Deklarace a výpočet proměnných

15:44 | Mar Ve | Diskuze

V předchozím díle jsme si stanovili zadání pro tvorbu AOS, a tak nic nebrání začátku programování. Nejprve se zaměříme na deklaraci a výpočet proměnných.

Ilustrační obrázek
Foto: Public Domain

Začneme deklarací proměnných, o kterých již víme, že je budeme určitě potřebovat. Ze zadání víme, že si musíme spočítat úroveň pro vstup do trhu, do hlavičky (nad funkci OnTicket() ) tak napíšeme:

double uroven_vstupu;

Tímto jsme deklarovali novou proměnnou s názvem uroven_vstupu, která má datový typ double, jelikož její hodnota bude číslo s desetinným místem. Stejně tak budeme dál potřebovat proměnné pro určení maximálního risku a požadovaného profitu z daného obchodu. Ty si pojmenujeme jako stoploss a takeprofit a jelikož se bude jednat pouze o celá čísla, jako datový typ zvolíme integer.

int stoploss;

int takeprofit;

Poslední hodnotou, o které nyní víme, že ji budeme potřebovat je úroveň klouzavého průměru (Moving Average, MA), která bude sloužit k potvrzení obchodního signálu. 

double hodnota_MA;

Kód nyní vypadá následovně:

  

  


Dalším krokem bude výpočet proměnných. K výpočtu proměnných přejdeme do funkce OnTick(), jelikož chceme, aby se jejich hodnota přepočítala s každou novou změnou ceny (s každým tickem). Začneme proměnnou uroven_vstupu, která má najít úroveň pro vstup, jež se dle zadání nachází 1 % hodnoty indexu pod uzavírací cenou předchozího dne. Zápis vypadá následovně:  

uroven_vstupu = Close[1] * 0.99;

Proměnná je již deklarována v hlavičce, lze tedy rovnou psát a přiřadit hodnotu. Hodnotu uzavírací ceny získáme z předdefinované proměnné Close[], kterou již známe. Index ve složené závorce určí, o jakou svíčku (v našem případě den, jelikož budeme strategii obchodovat na denním grafu) se jedná. Index je počítán od konce, poslední svíčka má tak index 0, předposlední 1 a tak dále. Nás zajímá předchozí den, tedy předchozí svíčka na grafu, použijeme tak index 1. O 1 % pod úroveň této hodnoty se lze dostat vynásobením uzavírací ceny číslem 0.99 (pozor na desetinnou tečku).

Výpočet proměnných stoploss (2 %) a takeprofit (4 %) se proveden podobně, akorát u nich chceme vycházet z hodnoty indexu v moment nákupu, použijeme tedy uzavírací cenu aktuální svíčky, na které provádíme nákup (Close[0]).

stoploss=Close[0] * 0.98;

takeprofit=Close[0] * 1.04;

Poslední proměnnou k výpočtu je klouzavý průměr, který je jakožto indikátor editoru dobře známý. Jeho hodnotu lze spočítat pomocí funkce iMA(), která má 7 parametrů a následující zápis:

double iMA(string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)

Parametr symbol specifikuje konkrétní trh, při zadání Symbol() bude pracovat s aktuálně zvoleným trhem.

Timeframe určuje časový rámec grafu. Při zadání 0 použije aktuální timeframe grafu.

Period specifikuje počet období určených k výpočtu klouzavého průměru. My chceme dle zadání periodu 100.

Ma_shift je posunutí linie grafu. To nevyužijeme, tedy 0.

Ma_method specifikuje metodu výpočtu klouzavého průměru, kterých je vícero. My chceme jednoduchý klouzavý průměr s kódem MODE_SMA.

Applied_price určuje typ ceny, ze které je MA počítán. Běžné se používá uzavírací cena, tedy PRICE_CLOSE.

Shift nabízí možný posun na jinou svíčku, pomocí indexu. Nevyužijeme, tedy 0.

Námi požadovaný zápis funkce, kterou umístíme do proměnné hodnota_MA tak bude vypadat následovně: 

iMA(Symbol(),0,100,0,MODE_SMA,PRICE_CLOSE,0);

Podobným způsobem lze vypočítat také hodnoty ostatních technických indikátorů, které lze v MT4 nalézt. Lišit se budou pouze parametry, ty jsou však pro každý indikátor dostupné v oficiální dokumentaci

 

Nyní máme vytvořených několik proměnných, které budeme dále potřebovat. Příště se již dostaneme k samotné nákupní funkci, která na základě stanovených pravidel provádí obchodní příkazy.

Zdroj:Mar Ve
Líbil se vám článek?
+0 / -0
Odeslat článek e-mailem
Diskuze
Vstoupit do diskuze
V diskuzi zatím není žádný komentář. Buďte první, kdo bude komentovat.


Související články
Ilustrativní obrázek

Google plánuje investice do evropských datových center

Ilustrativní obrázek

Airbnb chce vstoupit na burzu někdy v průběhu příštího roku

Ilustrativní obrázek

Pražská burza otevírá na kladné nule

Ilustrativní obrázek

Akciový výhled 20.9.2019



Čti více
Ilustrativní obrázek

Dnes proběhne převážení indexů PX a CECE

Ilustrativní obrázek

Klidná seance pro asijské akcie, indické si připsaly 5 % po daňové reformě

Ilustrativní obrázek

Akcie na Wall Street zavřely smíšeně

Ilustrativní obrázek

Pražskou burzu vytáhla do plusu Erste Bank

Ilustrativní obrázek

Frankfurtská burze otevírá na zelené nule

Ilustrativní obrázek

Asijské trhy spíše rostou; Cut FEDu doprovází neměnná politika BoJ se slovy o příp. snížení sazeb

Portál W4T.CZ používá cookies s cílem zajistit co možná nejlepší zážitek při návštěvě těchto webových stránek. Dalším užíváním těchto webových stránek vyjadřujete souhlas s umístěním souborů cookies na vašem počítači / zařízení. Více informací naleznete zde.