MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 93
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Baskılar yalnızca işlevin içine eklenebilir, ancak yazdırma veya uyarının çalışması için bu işlevi nasıl çağıracağımı anlamıyorum. Kodumu üç basit değişkenle düzelterek yardımcı olabilir misiniz ??? Her şeyi yazıda anlatıldığı gibi yapıyorum ama editör atlamıyor ya da bir şey eklenmemiş ya da bir şey anlaşılmamış, her halükarda duvar, bu yüzden yardım istedim. SKC için teşekkürler.
uyarırsın d.
Sizin için nerede hesaplanır?
//| TestASD.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int InputA= 1 ;
input int InputB= 3 ;
class ASD
{
private :
// Здесь располагаются переменные и функции, доступные только внутри класса
int c( int m_a, int m_b)
{
m_a=a+b; m_b=a-b;
int m_d=m_a+m_b;
d=m_d;
Print ( __FUNCTION__ );
return (c(m_a,m_b));
}
public :
int a;
int b;
int d;
};
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
ASD ar;
void OnStart ()
{
//---
ar.a=InputA;
ar.b=InputB;
Alert ( "ar.a=" ,ar.a, "\nar.b=" ,ar.b, "\nar.d=" ,ar.d);
}
//+------------------------------------------------------------------+
Sınıfın içinde, değerlere Prints yapın. Ardından, komut dosyasını çalıştırdığınızda orada ne yazdırılacağına günlüğe bakın;)
Ve ayrıca hiçbir şey
Sınıf:
{
private :
// Здесь располагаются переменные и функции, доступные только внутри класса
int a_s;
int a_d;
int d;
int g ()
{d=a_s+a_d;
return (g());
}
public :
void fg ( int a, int b)
{ a_s=a;
a_d=b;
}
void sf ()
{g ();
Alert (d);}
};
senaryo
ASD ar;
void OnStart ()
{
ar.fg ( 3 , 5 );
ar.sf ();
}
Ve ayrıca hiçbir şey
Sınıf:
Ve ayrıca hiçbir şey
//| TestASD.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#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 a;
int b;
int d;
int c( int m_a, int m_b)
{
m_a=a+b; m_b=a-b;
d=m_a+m_b;
Print ( __FUNCTION__ );
return (d);
}
};
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
ASD ar;
void OnStart ()
{
//---
ar.a=InputA;
ar.b=InputB;
Alert ( "ar.a=" ,ar.a, "\nar.b=" ,ar.b, "\nar.d=" ,ar.d, "\nar.c(" ,ar.a, "," ,ar.b, ")=" ,ar.c(ar.a,ar.b));
}
//+------------------------------------------------------------------+
Net değil - bir şeyi ne elde etmek istiyorsunuz?
İstemek:
1. komut dosyasından sınıfa veri aktarın
2. sınıfta bu verilerin toplamını üretmek
3. Tutarı sınıftan komut dosyasına aktarın
4. Komut dosyasındaki verilerin toplamını monitöre veya yazıcıya gönderin.
Herşey!
İstemek:
1. komut dosyasından sınıfa veri aktarın
2. sınıfta bu verilerin toplamını üretmek
3. Tutarı sınıftan komut dosyasına aktarın
4. Komut dosyasındaki verilerin toplamını monitöre veya yazıcıya gönderin.
Herşey!
Yukarıdaki örneğe bakın
Ama aynı zamanda a + b = d değişkenlerinin toplamını da vermiyor ama d toplamına ihtiyacım var!
Size göre tam olarak neyi sayması gerektiğini göstermedim. Hesaplanan değerin nasıl alınacağını gösterdim -c() işlevini çağırın ;
Onu hiçbir yerde aramadın ve d'nin bir şekilde kendini hesaplamasını bekledin.
Ve c() işlevinin orada ne düşündüğü size kalmış
Size göre tam olarak neyi sayması gerektiğini göstermedim. Hesaplanan değerin nasıl alınacağını gösterdim -c() işlevini çağırın ;
Onu hiçbir yerde aramadın ve d'nin bir şekilde kendini hesaplamasını bekledin.
Ve c() işlevinin orada ne düşündüğü size kalmış
Bir işlevin nasıl oluşturulacağını ve onu bir EA'da nasıl çağırılacağını biliyorum ve kullanıyorum. Sorun sınıflarla ortaya çıktı!
Size göre tam olarak neyi sayması gerektiğini göstermedim. Hesaplanan değerin nasıl alınacağını gösterdim -c() işlevini çağırın ;
Onu hiçbir yerde aramadın ve d'nin bir şekilde kendini hesaplamasını bekledin.
Ve c() işlevinin orada ne düşündüğü size kalmış
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!
Ancak işleviniz de hiçbir şey hesaplamaz.