MathMax

Fonksiyon, iki değer arasındaki en büyük değere dönüş yapar.

double  MathMax(
   double  value1,     // ilk değer
   double  value2      // ikinci değer
   );

Parametreler

value1

[in]  İlk sayısal değer.

value2

[in]  İkinci sayısal değer.

Dönüş değeri

İki değer arasında en büyük olana dönüş yapar.

Not

MathMax() fonksiyonunun yerine fmax() kullanabilirsiniz. fmax(), fmin(), MathMax(), MathMin() fonksiyonları, double tip dönüşümü yapılmaksızın tamsayı tipleriyle de kullanılabilir.

Fonksiyon farklı tiplerde parametreler ile kullanıldığında, daha küçük tipli parametre, otomatik olarak büyük tipe dönüştürülür. Dönüş değerinin tipi büyük tipe karşılık gelir.

Aynı tipteki veriler için dönüşüm gerçekleştirilmez.

 

Örnek:

//--- girdi parametreleri
input int                  InpPeriod = 10;            // Hareketli ortalama hesaplama periyodu
input ENUM_MA_METHOD       InpMethod = MODE_SMA;      // Hareketli ortalama hesaplama yöntemi
input ENUM_APPLIED_PRICE   InpPrice  = PRICE_CLOSE;   // Hareketli ortalama hesaplama fiyatı
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- hareketli ortalama periyodu 1'den küçük bir değere ayarlanırsa, varsayılan değer (10) kullanılır
   int period=(InpPeriod<1 ? 10 : InpPeriod);
//--- Moving Average göstergesinin tanıtıcısını oluştur
   int handle=iMA(Symbol(),Period(),period,0,InpMethod,InpPrice);
   if(handle==INVALID_HANDLE)
     {
      Print("Failed to create the Moving Average indicator handle. Error ",GetLastError());
      return;
     }
//--- mevcut Bid fiyatını al
   double bid=0;
   ResetLastError();
   if(!SymbolInfoDouble(Symbol(),SYMBOL_BID,bid))
     {
      Print("Failed to get Bid price. Error ",GetLastError());
      return;
     }
//--- mevcut çubuktaki hareketli ortalama değerini al
   double array[1];
   int    copied=CopyBuffer(handle,0,0,1,array);
   if(copied!=1)
     {
      Print("Failed to get Moving Average data. Error ",GetLastError());
      return;
     }
//--- iki değerden (Bid fiyatı ve Moving Average değeri) en yüksek fiyatı al ve elde edilen verileri günlükte görüntüle
   double max_price=MathMax(bid,array[0]);
   PrintFormat("Bid: %.*f, Moving Average: %.*f, highest price of the two: %.*f",_Digits,bid,_Digits,array[0],_Digits,max_price);
   PrintFormat("Bid price %s moving average",(bid>array[0] ? "higher" : bid<array[0] ? "lower" : "equal to"));
  }