Radu MetaTrader a blogja | További ingyenes és hasznos eszközök MetaTraderhez | Kérdésed merült fel? Kérdezz!
MQL4 Könyv tartalomjegyzék | Stratégiák programozása MetaTrader platformra | Fogalomtár | Gyakran Ismételt Kérdések

MQL4 könyv   Beépített függvények   Matematikai függvények


Matematikai függvények

 

Az MQL4 matematikai és trigonometriai függvényeket is tartalmaz. Némelyik függvény használata nagyon egyszerű. Például a MathMax() függvény visszaküldi a paraméterlistában megadott két érték közül a nagyobbat. Néhány függvény használata bizonyos figyelmet és körültekintést követel. Vizsgáljuk meg az egyik ilyen függvényt!

MathFloor() függvény

 double MathFloor(double x)

A függvény visszaküldi azt a legnagyobb egész számot, ami kisebb vagy egyenlő, mint x.

Paraméterek:

x - számszerű érték.

Vegyük észre, hogy az érték, amit visszaküldött a függvény valós szám (double típus), ugyanakkor az előbb azt írtuk, hogy a függvény visszaküld egy egész számot. Ez azért lehetséges, mert a függvény egy olyan valós számot küld vissza, aminek a tizedespont utáni pozícióiban csak nullák szerepelnek. Például a MathFloor() függvény visszaküldhet  37.0-t (double típusú pozitív szám) vagy -4.0-et  (a double típus negatív szám).

A leírásban az is szerepel, hogy a függvény a megadott számhoz legközelebbi nálánál kisebb egész számot küldi vissza. Például, ha az adott x paraméter értéke 13.5, a legközelebbi kisebb egész szám a 13.0. Vagy ha x értékének  a -13.5 negatív értéket adjuk a függvényparaméterben, a legközelebbi kisebb egész szám egyenlő -14.0-el. A függvényparaméter előjelének módosítása abszolút értékben különböző eredményeket adhat.

Az ilyen függvények használata néhány esetben nagyon kényelmes. Például, vizsgáljuk meg az új megbízások megadásakor a függvény használatát a kötésméret meghatározására.

int Percent =30;  // % of free margin
double Free =AccountFreeMargin(); // Free margin
double One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// 1 lot price
double Step =MarketInfo(Symb,MODE_LOTSTEP); // Size step changed

double Lots_New=MathFloor(Free*Percent/100/One_Lot/Step)*Step;

A Percent paraméter értékét a felhasználó állíthatja be. Ebben az esetben a felhasználó a szabad margin 30 százalékát engedélyezi felhasználásra. A dealing center szabályai szerint, a megbízás lot méretének oszthatónak kell lennie a kötésméret megváltoztatásának minimális lépése által (Step). Az 1 lot (One_Lot) kötésmérethez szükséges szabad margin (Free) értékének ismerete szintén nélkülözhetetlen a számításhoz.

Ismerjük meg a programozó logikáját, amikor összeállította azt a kifejezést, amivel számítható a Lots_New kötésméret. A szemléltetés kedvéért adjunk a változóknak számszerű értékeket! Legyen Free=5000.0, One_Lot=1360.0  (A legtöbb dealing center hasonló nagyságú fedezetet követel sok devizapárra), Step=0.1. Ebben az esetben, a Lots_New értékét meghatározó kifejezést a következőképpen tudjuk fölírni:

Lots_New = MathFloor(5000.0*30/100/1360.0/0.1)*0.1;

Az 5000.0*30/100 kifejezés az új megbízás nyitásához szükséges pénz mennyisége. Ebben az esetben az új megbízásra 1500.0 fedezet áll rendelkezésre. Ez a fedezet 1500.0 / 1360.0 = 1.102941 lot kötésméretre elegendő. Azonban a dealing center nem fogad el ilyen összegű megbízást, mert a minimális lépésköz Step=0.1 (ez a leggyakoribb). A helyes kötésméret meghatározásához el kell dobni mindent szükségtelen számjegyet a tizedes jegy után, és le kell cserélni őket nullákra.

Erre a célra használhatjuk a szóban forgó matematikai függvényt:

Lots_New = MathFloor(1.102941/0.1)*0.1;

A MathFloor(1.102941/0.1) értéke 11.0 lesz, és a Lots_New változó kiszámított értéke 1.1 lot lesz. Ez az érték megfelel a dealing center követelményeinek és ezért az új megbízás összegeként használhatjuk.

 

Matematikai függvények

Függvény Összefoglaló információ
MathAbs A függvény visszaküldi az adott szám abszolút értékét.
MathArccos A függvény visszaküldi az x arc cosinus értékét az 0-π radián tartományban. Ha x kisebb, mint -1 vagy nagyobb 1-nél a függvény meghatározatlan értéket küld.
MathArcsin A függvény az x arc sinus értékét küld vissza a -π/2 - π/2 radián tartományban. Ha x kisebb mint -1 vagy nagyobb 1-nél a függvény meghatározatlan értéket küld vissza.
MathArctan A függvény az x arc tangensét küldi vissza. Ha x egyenlő 0-val, a visszatérési érték 0. A MathArctan függvény -π/2 - π/2 tartományban küld vissza az értéket.
MathCeil A függvény visszaküldi azt a legkisebb egész számot, ami nagyobb vagy egyenlő mint x.
MathCos A függvény visszaküldi a szög koszinuszát.
MathExp A függvény visszaküldi az e értékének d-edik  hatványát. A túlcsordulásnál a függvény INF-et küld vissza (infinity, végtelen), és az alulcsordulásnál 0-t.
MathFloor A függvény visszaküldi azt a legnagyobb egész számot, ami kisebb vagy egyenlő, mint x.
MathLog A függvény visszaküldi x  természetes logaritmusát. Ha x negatív, a függvény NaN értéket küld vissza (meghatározatlan érték). Ha x = 0, visszaküldi az INF-et (végtelen).
MathMax A függvény visszaküldi két számszerű érték közül a nagyobbat.
MathMin A függvény visszaküldi két számszerű érték közül a kisebbet.
MathMod A függvény visszaküldi két szám hányadosának a maradékát. A MathMod függvény kiszámítja az x / y hányados f  maradékát, ahol  x = i * y + f , ahol i egy egész szám, f  ugyanolyan típus, mint  x és f abszolút értéke kisebb y abszolút értéknél.
MathPow Visszaküldi az alapkifejezés adott kitevőre (exponens) emelt hatványát.
MathRand A függvény generál egy ál-véletlen egész számot a 0-32767 tartományán belül. A MathSrand függvénnyel hozzuk létre az ál-véletlen szám kiindulási értékét a generálás előtt.
MathRound A függvény visszaküldi a megadott számszerű érték legközelebbi egész számára kerekített értékét.
MathSin A függvény visszaküldi a megadott szög szinuszát.
MathSqrt A függvény visszaküldi az x négyzetgyökét. Ha x negatív, a MathSqrt függvény NaN értéket küld vissza (meghatározatlan érték).
MathSrand A függvény beállítja az ál-véletlen szám létrehozásának kiindulási értékét.
MathTan MathTan függvény visszaküldi az x tangensét. Ha x nagyobb vagy egyenlő, mint 263, vagy kevesebb, vagy egyenlő, mint -263 akkor az eredmény értelmezhetetlen. Ebben az esetben a függvény egy határozatlan értéket küld vissza.