MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 94

 
Vikon :
Sınıf içinde bir işlevin nasıl çağrılacağının tüm amacı, yani ne kadar private: public: birbirleriyle nasıl çalışılacağı, sınıfa nasıl veri aktarılacağı ve sınıftan sonucun nasıl alınacağı budur. Şimdilik, işte burada!

Sınıf içinde, sonuç bir şekilde hesaplanmalıdır. Ve sınıf, katılımınız olmadan, sonucun şimdi döndürülmesi gerektiğini, ancak başka bir anda gerekli olmadığını nasıl anlayacak?

Yani sınıfın içinde dışarıdan çağrılabilecek bir metoda ihtiyacınız var. Yani halka açık olmalıdır.

Tabii ki, sınıf içindeki tüm verileri okuyacak ve bir sınıf değişkenine yazacak özel bir yöntem yapabilirsiniz ve genel yöntem özel olanı çağırır. Ancak bazı yöntemlerin bir çağrısı aynı olmalıdır. Ve orada özel bir yöntemde neyin dikkate alınacağı, hesaplamaların ne kadar karmaşık olacağı ve hesaplamalar için hangi değişkenlerin dahil edileceği - her şey sizin takdirinize ve kendi sorumluluğunuzdadır.

 
Vikon :
Sınıf içinde bir işlevin nasıl çağrılacağının tüm amacı, yani ne kadar private: public: birbirleriyle nasıl çalışılacağı, sınıfa nasıl veri aktarılacağı ve sınıftan sonucun nasıl alınacağı budur. Şimdilik, işte burada!
#property version    "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int       inputA= 1 ;
input int       inputB= 3 ;

class ASD
  {
private :
   // Здесь располагаются переменные и функции, доступные только внутри класса
public :
   int  Add( int a, int b)
     {
       Print ( __FUNCTION__ , ": Результат сложения: a" ,a, " + b" ,b, " = " ,a+b);
       return (a+b);
     }
  } ar;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   ar.Add( inputA, inputB );
  }
//+------------------------------------------------------------------+
Çalışması gerekiyor gibi görünüyor, doğruluğunu kontrol etmedim)
 
Alexey Kozitsyn :
Çalışması gerekiyor gibi görünüyor, doğruluğunu kontrol etmedim)

İşte, teşekkürler, şimdiden hareket etmeye başladım -

senaryo:

#include <ASD.mqh>
ASD ar;
void OnStart ()
  {
   ar.fg ( 3 , 5 );
   ar.sf ();
  }

Sınıf:

class ASD
  {
private :
   int d;
   int g ( int a_s, int a_d){d=a_s+a_d; return (d=a_s+a_d); }
public :
void fg ( int a_s, int a_d)  { g (a_s,a_d); }
void sf ()                 { Alert (d);}
  };

Uyarı 8 sonucunu verir, ancak bu bir sınıftan uyarıdır ve şimdi bir komut dosyasından uyarıya ihtiyacım var

 
Vikon :

İşte, teşekkürler, şimdiden hareket etmeye başladım -

senaryo:

#include <ASD.mqh>
ASD ar;
void OnStart ()
  {
   ar.fg ( 3 , 5 );
   ar.sf ();
  }

Sınıf:

class ASD
  {
private :
   int d;
   int g ( int a_s, int a_d){d=a_s+a_d; return (d=a_s+a_d); }
public :
void fg ( int a_s, int a_d)  { g (a_s,a_d); }
void sf ()                 { Alert (d);}
  };

Uyarı 8 sonucunu verir, ancak bu bir sınıftan uyarıdır ve şimdi bir komut dosyasından uyarıya ihtiyacım var

Tamam, sınıfta Alert() yöntemini bildirirsiniz ve onu ar.Alert() olarak adlandırırsınız, ancak şimdi sf() yöntemi aynı şeyi yapar. d alanına değeri yazdıktan sonra ne görmek istediğinizi tam anlamadım?
 
Alexey Kozitsyn :
Tamam, sınıfta Alert() yöntemini bildirirsiniz ve onu ar.Alert() olarak adlandırırsınız, ancak şimdi sf() yöntemi aynı şeyi yapar. d alanına değeri yazdıktan sonra ne görmek istediğinizi tam anlamadım?
sf() yöntemini çağırmadan d değerini almak istiyorsanız, o zaman bir public method int GetD() const { return( d ); eklemeniz gerekir. }. Ve komut dosyasına Alert ( ar.GetD() ); yazın.
 
Alexey Kozitsyn :
Çalışması gerekiyor gibi görünüyor, doğruluğunu kontrol etmedim)

Herşey! Çok teşekkürler! Olmuş-

senaryo:

#include <ASD.mqh>
ASD ar;
void OnStart ()
  {
   ar.fg ( 3 , 5 );
   Alert ( ar.sf ());
  }

Sınıf:

class ASD
  {
private :
   int d;
   int g   ( int a_s, int a_d)  { return (d=a_s+a_d); }
public :
  void fg ( int a_s, int a_d)  { g (a_s,a_d); }
  int sf  ()                 { return (d);}    
  
  };


çiğneyeceğim!

 

Bu başlıkta bana test cihazının bozulduğunu kimin yazdığını hatırlamıyorum, ancak kırılabileceğini cevaplayacağım. Ya farklı zaman dilimlerini yutar ya da keyfi bir bölümden saymaya başlar (bütün alıntılar orada olmasına rağmen).

Görmeye ihtiyacı olan herkesin anlayacağını düşünüyorum.

 
İyi günler, lütfen bana MSDN'den içe aktarmanın mümkün olup olmadığını söyleyin
MRoubd işlevi?
(verilen anlamın katlarına yuvarlanmış bir sayı döndürür)

veya örneğin 2285.13'ün (0.25) 2285.00 __ 2285.25 ___ 2285.50 ___ 2285.75'in katı olacak şekilde nasıl yuvarlanacağı
 
Bir hesabın değil, bir çiftin kaldıraç oranını nasıl öğrenebilirim?
 
SAMER :
Bir hesabın değil, bir çiftin kaldıraç oranını nasıl öğrenebilirim?

Sağlanan kaldıraç:

long liverage= AccountInfoInteger ( ACCOUNT_LEVERAGE );