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

Akciové trhy - denní zpráva 26.1.2021

Ilustrativní obrázek

Akciový výhled 26.1.2021

Ilustrativní obrázek

Racionální bublina

Ilustrativní obrázek

Tři hrozby roku 2021, které mohou ohrozit vaše finance

Ilustrativní obrázek

Pražská burza otevřela se ziskem, Moneta připisuje 12 %

Ilustrativní obrázek

Akciové trhy - denní zpráva 25.1.2021



Čti více
Ilustrativní obrázek

Asijské trhy ztrácely, centrální banka Číny stahovala hotovost a její poradce varoval před riziky

Ilustrativní obrázek

Německá burza otevřela na kladné nule

Ilustrativní obrázek

Asijským akciím se na úvod týdne dařilo

Ilustrativní obrázek

Apple: Optimismus analytiků roste před blížícím se reportem výsledků

Ilustrativní obrázek

Frankfurtská burza po otevření klesá

Ilustrativní obrázek

Asijské akcie ztrácely, lockdown v Hongkongu

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.