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

 
Priffekt :
İyi günler, tüm değerleri değiştirdim, ancak uzman ayarlarında işlevin kendisini devre dışı bırakma olasılığıyla ilgileniyorum.

Günaydın.

Bir kod parçası eklerken </> butonunu kullanın, çok daha okunaklı olacaktır, yukarıda size "bu şekilde eklemek daha iyi" yazmıştım.

8518 no'lu mesajda, size zaten bir anahtar eklediğim kendi kodunuzu gönderdim. İlk satırı gelen parametrelere, ikinci satırı OnTik'e yaymanız yeterlidir.

 
Sergey Voytsekhovsky :

Tabii ki danışman rolüne pek uygun değilim ama görev zor görünmüyor.

Lütfen kodunuzun kendisine uymadığımı unutmayın, benim için (bir çaydanlık) bile çok tartışmalı olan çok şey var, işlevinizin void türünde olması gerçeğinden başlayarak. Bu tür, bir işlevin bir değer döndürmediğini belirtmek için kullanılır veya işlev parametresi olarak, parametrelerin yokluğunu belirtir . Ve kodunuzun sonunda - return(Var);

Gelen bir değişken bildirin, bunu işlevinize parametre olarak yazın ve 'gelen' değişkeni False olarak ayarlanmışsa işlevden çıkın.

Vurgulanan kesinlikle yanlıştır. Global düzeyde bildirilen değişkenlerin işlenmesini kimse yasaklamaz.

 int n = 0 ;

int OnInit ()
 {
  f();
 }

void OnTick ()
 {
  Print (n);
  f();
 }

void f()
 {
  n += n* 3 + 12 ;
 }
 
Priffekt :
İyi günler, tüm değerleri değiştirdim, ancak uzman ayarlarında işlevin kendisini devre dışı bırakma olasılığıyla ilgileniyorum.

Danışman ayarlarında bazı işlevleri devre dışı bırakma yeteneğine ihtiyacınız varsa, bayrak değişkenini ayarlamanız gerekir.

 input bool flag = true ; // флаг отключения

void OnTick ()
 {
   if (flag)
   f();
 }

void f()
 {
   // что-то выполняем
 }
f() işlevi yalnızca flag == true;
 
Alexey Viktorov :

Vurgulanan kesinlikle yanlıştır. Global düzeyde bildirilen değişkenlerin işlenmesini kimse yasaklamaz.

Garip, aslında bu MQL5 referansından bir alıntı, şöyle görünüyor:

"Void tipi ve NULL sabiti

Sözdizimsel olarak, void türü, char, uchar, bool, short, ushort, int, uint, color, long, ulong, datetime, float, double ve string türleri ile birlikte temel bir türdür. Bu tip, bir fonksiyonun bir değer döndürmediğini belirtmek için kullanılır veya fonksiyon parametresi olarak, parametrelerin yokluğunu belirtir.

Önceden tanımlanmış sabit değişken NULL , void türündedir. Herhangi bir temel türdeki değişkenlere dönüştürme yapılmadan atanabilir. Temel türlerdeki değişkenleri NULL değeriyle karşılaştırmaya da izin verilir."


Ve bu metni alıntıladım çünkü konunun yazarı void türünde bir fonksiyona sahip, yani hiçbir şey döndürmemeli, "... döndür (Var);" döndürüyor. Yanlış olan ne, ne düşünüyorsun?

Veri işlemeden hiç bahsedilmedi. Aslında bir yerde yanıldığımı kabul ediyorum çünkü daha yeni temelleri öğreniyorum, her halükarda bilgi için teşekkürler.

 
 
 
Alekseu Fedotov :

"... dönüş (Var);",

dönüş değeri, işlev

bunun gibi bir şey
 

Evet haklısın, dikkatsiz davrandım ve bu dönüşü önceki (yukarıdaki) işleve bağladım.

 
Alexey Viktorov :

Bu konuyla ilgili değil ... Sadece seçimi dikkatlice okumadım.

Vurgulanan bir viod, parametre olmadığı anlamına gelir. Ama yazılması gerekmiyor. Parametre yok, gerek yok ...

Evet haklısın ben de dikkatsizdim.

 

Uzmanlara soru plz.

Prehistorya - Bir danışman yazmaya çalışıyorum, işlevsellik açısından bana uygun bir senaryo buldum. Bundan bir fonksiyon çıkarmak istiyorum, ortamı hazırlıyorum , standart kütüphanelerde elbette kesişmeler var. Sınıf nesneleri oluşturulduğunda, doğal olarak biraz farklı olarak adlandırılırlar.Bu tür girişlerin nasıl farklı olduğunu ve "*" işaretinin herhangi bir gizli anlam taşıdığını anlamak istiyorum, gelecekteki işlevler içinde tek bir görünümde yeniden adlandırılabilirler mi ???

CTrade         trade;
CPositionInfo  apos;
CSymbolInfo    asymbol;


CTrade         *m_trade;
CSymbolInfo    *m_symbol;
CPositionInfo  *m_position_info; 

 

Yardım, trend çizgisinin ilk zaman koordinatını nasıl bulabilirim?

price = NormalizeDouble (ObjectGetValueByShift( "trend" , 0 ), Digits ); //ЦЕНА НА ТЕКУЩЕМ