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

 
lil_lil :

MTF göstergesi, H1'i harici ayarlarda ayarlayın, M15'i tabloya ekleyin. Sinyal 4 çubuk boyunca yanıp söner. H1 çubuğu kapandığında, sinyal yanıp sönmez M15'te, çubuk 4'te alınan sinyalin yanıp sönmesi durur. M1'e koyarsanız buna göre bar 60'da yanıp sönmeyi durdurur yani i + N indeksini hesaplamanız gerekir ki ayarlarda seçilen periyoda ve göstergenin bağlı olduğu tablodaki tabloya göre N değişir.

Tüm kod var mı?

 

Tünaydın. Anlayamıyorum, OOP özür dileyenleri, lütfen yardım edin.

Bu nedenle, örneğin CCandle gibi bir sınıf vardır. Bu sınıf, bu sınıfın tüm nesneleri için aynı parametrelere sahip olacaktır. Bu parametreler OnInit() içinde başlatılabilir ve bu sınıfın tüm nesneleri için aynı olacaktır. Peki, her yeni nesne oluşturulduğunda bunları başlatmamak için bunu nasıl doğru bir şekilde yapabilirim. Hepsinin CCandle::Init() işlevinde olduğunu varsayalım. düşünemiyorum.

 
Juer :

Tünaydın. Anlayamıyorum, OOP özür dileyenleri, lütfen yardım edin.

Bu nedenle, örneğin CCandle gibi bir sınıf vardır. Bu sınıf, bu sınıfın tüm nesneleri için aynı parametrelere sahip olacaktır. Bu parametreler OnInit() içinde başlatılabilir ve bu sınıfın tüm nesneleri için aynı olacaktır. Peki, her yeni nesne oluşturulduğunda bunları başlatmamak için bunu nasıl doğru bir şekilde yapabilirim. Hepsinin CCandle::Init() işlevinde olduğunu varsayalım. düşünemiyorum.

Bu, sınıf yapıcısında bulunan başlatma listesinde yapılır:

 class CCandle
{
   int       m_nA;
   double    m_fB;
   datetime m_dtC;


   void CCandle::CCandle( void );
};

CCandle::CCandle( void )
            : m_nA( 0 )
            , m_fB( 0.0 )
            , m_dtC( 0 )
{
}
 
Juer :

Tünaydın. Anlayamıyorum, OOP özür dileyenleri, lütfen yardım edin.

Bu nedenle, örneğin CCandle gibi bir sınıf vardır. Bu sınıf, bu sınıfın tüm nesneleri için aynı parametrelere sahip olacaktır. Bu parametreler OnInit() içinde başlatılabilir ve bu sınıfın tüm nesneleri için aynı olacaktır. Peki, her yeni nesne oluşturulduğunda bunları başlatmamak için bunu nasıl doğru bir şekilde yapabilirim. Hepsinin CCandle::Init() işlevinde olduğunu varsayalım. düşünemiyorum.

Sınıfta bir parametrik kurucu yapın ve nesneyi başlatmak için gerekli parametreleri ona iletin.
 
Hiçbir şey anlamadım. Bir nesneyi başlatmak sorun değil. Belirli bir sınıfın tüm nesneleri için bir kez nasıl başlatabilirim? Yani, yeni bir nesne yaratılır ve parametreler, her yeni nesne için her seferinde bunları başlatmaya gerek kalmadan, değerlerle zaten başlatılır.
 
Meslektaşlarım, söyleyin lütfen, döngü gövdesinden return ifadesini kullanmak yasal mı? Örneğin, bir döngümüzün olduğu bir fonksiyon var. Bir noktada, bir değer döndürmemiz ve böylece fonksiyondan çıkmamız gerekiyor. break ve ardından return( value) kullanmak doğrudur. Ama hemen döndürmek ( değer ) mümkün mü?
 
Juer :
Hiçbir şey anlamadım. Bir nesneyi başlatmak sorun değil. Belirli bir sınıfın tüm nesneleri için bir kez nasıl başlatabilirim? Yani, yeni bir nesne yaratılır ve parametreler, her yeni nesne için her seferinde bunları başlatmaya gerek kalmadan, değerlerle zaten başlatılır.
Parametreler var olana göre başlatılabilir.
 
lsv107 :
Meslektaşlarım, söyleyin lütfen, döngü gövdesinden return ifadesini kullanmak yasal mı? Örneğin, bir döngümüzün olduğu bir fonksiyon var. Bir noktada, bir değer döndürmemiz ve böylece fonksiyondan çıkmamız gerekiyor. break ve ardından return( value) kullanmak doğrudur. Ama hemen döndürmek ( değer ) mümkün mü?
Hiçbir şey döngüden çıkmanızı engellemez.
 
Artyom Trishkin :
Parametreler var olana göre başlatılabilir.

Nasıl olur da sorunun ifadesi anlaşılır gibi. Aynı başlatmak için Sense.

 
Artyom Trishkin :
Hiçbir şey döngüden çıkmanızı engellemez.

Sadece döngünün fonksiyon içinde aktif kalacağından ve return ifadesinin sadece aktif döngüden çağrı noktasına kontrolü aktaracağından korktum, fonksiyon tekrar çağrılırsa (özyineleme) bir yığın taşması tehlikesi olurdu. Pascal'da bu tam olarak böyleydi ve genel olarak yapılandırılmış programlama kurallarına göre döngüleri sırayla tamamlamalı ve ardından fonksiyondan çıkmalısınız. İşlevle birlikte dönüş, döngüyü sonlandırıyorsa, harika, ancak uzun bir aradan sonra programlamaya döndüğüm için açıklığa kavuşturmam gerekiyordu.