Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 87

 
Hızlı528 :

bana söyleme, bir numara buldu, MK hala ana işlevlerden birinin adının ödünç alınmasını düzeltmedi, okuma ve arama ile bu konuda çok zaman öldürdü

https://www.mql5.com/ru/docs/basis/function/functionoverload

Документация по MQL5: Основы языка / Функции / Перегрузка функций
Документация по MQL5: Основы языка / Функции / Перегрузка функций
  • www.mql5.com
Обычно в названии функции стремятся отобразить ее основное назначение. Читабельные программы, как правило, содержат разнообразные и грамотно подобранные идентификаторы. Иногда различные функции используются для одних и тех же целей. Например, рассмотрим функцию, которая вычисляет среднее значение массива чисел двойной точности, и такую же...
 

anladım teşekkürler


Konstantin Gruzdev'e özel teşekkürler

MetaTrader 5'te çoklu para birimi modunun uygulanması
Реализация мультивалютного режима в MetaTrader 5
Реализация мультивалютного режима в MetaTrader 5
  • 2011.01.10
  • Konstantin Gruzdev
  • www.mql5.com
В настоящее время мультивалютных торговых систем, индикаторов и экспертов разработано огромное количество. Тем не менее, до сих пор создатели этого "огромного количества" сталкивались со специфическими для мультивалютных систем трудностями. С выпуском в свет терминала MetaTrader 5 и языка программирования MQL5 появилась возможность  реализации...
 
// Возвращает тип переменной. Exact == true - учитывает const-спецификатор
template < typename T>
string GetType( T&, const bool Exact = false )
{
   static const int Offset = StringFind ( __FUNCTION__ , "<" ) + 1 ;

   return (Exact ? StringSubstr ( __FUNCTION__ , Offset, StringLen ( __FUNCTION__ ) - Offset - 1 ) : typename (T));
}


Başvuru

 #define PRINT(A) Print ( #A + " = " + ( string )(A))

void OnStart ()
{
   const int Var1 = 0 ;
   double Var2;
    
  PRINT(GetType(Var1));
  PRINT(GetType(Var2));  
  
  PRINT(GetType(Var1, true ));
  PRINT(GetType(Var2, true ));
}


Sonuç

GetType(Var1) = int
GetType(Var2) = double

GetType(Var1, true ) = const int
GetType(Var2, true ) = double
 
fxsaber :

Başvuru

Sonuç

ve MQL kullanarak, argüman sayısı tanımlanmayan bir işlevi tanımlamak mümkünse, nasıl olur?

Print(arg1,arg.......) veya StringConcatenate (string_var,void argüman1 ,void argüman2, .......)


 
Igor Makanu :

ve MQL kullanarak, argüman sayısı tanımlanmayan bir işlevi tanımlamak mümkünse, nasıl olur?

Print(arg1,arg.......) veya StringConcatenate(string_var,void argüman1 ,void argüman2, .......)

Makrolara dayalı bir şey bulmak mümkün, ancak bu bir koltuk değneği.

Şablonlar + geçen diziler / yapılar - birçok fikrin uygulanmasına izin verir.

 
fxsaber :

Makrolara dayalı bir şey bulmak mümkün, ancak bu bir koltuk değneği.

Şablonlar + geçiş dizileri / yapıları - birçok fikrin uygulanmasına izin verir.

teşekkürler bende öyle düşünmüştüm prensipte gerek yok ama kodlarınızı izleyince şöyle düşündüm

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri

fxsaber , 2017.02.27 18:40

// Альтернатива OrderCalcMargin
bool MyOrderCalcMargin(  const ENUM_ORDER_TYPE action, const string symbol, const double volume, const double price, double &margin )

İşte bir çapraz platform prof. uygulama.

Instant estimation of profit, margin level, drawdown on MetaTrader charts
Instant estimation of profit, margin level, drawdown on MetaTrader charts
  • 2018.07.16
  • www.mql5.com
I'm sure all of you use the crosshair tool on MetaTrader's charts. It's very useful to measure distance in bars or points between 2 spots. Yet I was always wondering, why it does not provide an option to show profit value, margin level, drawdown or gain percentage in addition to points. To remedy this problem I've developed a MQL program, which...
 
Neden const harika!
 void OnTradeTransaction ( const MqlTradeTransaction &Trans, const MqlTradeRequest &Request, const MqlTradeResult &Result )
{
   if (Trans.type = TRADE_TRANSACTION_REQUEST ) // 'type' - constant cannot be modified


"==" yerine "=" yazsalar, büyük bir kodda bir hata bulmanın ne kadar süreceğini hayal edin. Burada const nedeniyle derleyicinin kendisi hemen her şeyi rapor eder.

 

fxsaber :

"==" yerine "=" yazsalar, büyük bir kodda bir hata bulmanın ne kadar süreceğini hayal edin. Burada const nedeniyle derleyicinin kendisi hemen her şeyi rapor eder.

Bu gibi durumlarda, karşılaştırmaya bir sabitle başlayabilirsiniz - bu daha da iyidir.

 void OnTradeTransaction ( const MqlTradeTransaction &Trans, const MqlTradeRequest &Request, const MqlTradeResult &Result )
{
   if ( TRADE_TRANSACTION_REQUEST = Trans.type)
 
TheXpert :

Bu gibi durumlarda, karşılaştırmaya bir sabitle başlayabilirsiniz - bu daha da iyidir.

Evet, sadece böyle bir durum için bir örnek oluşturdum

 if (Trans.type = Variable)