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

Další pokles na pražské burze, index PX se zastavil těsně nad psychologickou úrovní 1 000 bodů

Ilustrativní obrázek

BCPP informuje, že na trhu START se bude od března obchodovat denně

Ilustrativní obrázek

Komentář BHS k dopadům koronaviru na trhy

Ilustrativní obrázek

Pražská burza otevírá čtvrteční seanci červenými čísly

Ilustrativní obrázek

Akciové trhy - denní zpráva 27.2.2020

Ilustrativní obrázek

Akciový výhled 27.2.2020



Čti více
Ilustrativní obrázek

Koruna aneb První případ nakažení koronavirem u nás

Ilustrativní obrázek

Asijské indexy převážně oslabují: včera byl počet nově nakažených po světě poprvé vyšší jak v Číně

Ilustrativní obrázek

Americké akcie uzavřely smíšeně

Ilustrativní obrázek

Americké akciové index rostou o více než 1 %

Ilustrativní obrázek

Německé akcie ztrácí

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.