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

 
Valeriy Yastremskiy # :

Soru bununla ilgili değildi. Dmitry'nin işlevi, başvuruya göre bağımsız bir argüman döndürür. Neden referans olarak bir argüman kullanalım? Evet, yerel kapsamlar kendi içlerinde bir değişken bildirebilecek ve işlev çağrısından sonra değişkene yanıtı alabilecektir.

Ve tüm???

Bir değişken global olarak bildirilmişse, aynı isimde değişkenler olmamalıdır. Örneğinizdeki gibi birkaç fonksiyondan bir fonksiyon çağırırsanız, her birinde aynı isimde bir değişken ile uğraşamaz ve bildiremezsiniz. O konforlu…

 
Valeriy Yastremskiy # :

Soru bununla ilgili değildi. Dmitry'nin işlevi, başvuruya göre bağımsız bir argüman döndürür. Neden referans olarak bir argüman kullanalım? Evet, yerel kapsamlar kendi içlerinde bir değişken bildirebilecek ve işlev çağrısından sonra değişkene yanıtı alabilecektir.

Ve tüm???

1. Böylece kendi içindeki işlev, belirli bir global değişkeni değil, kendisine iletilen herhangi bir değişkeni değiştirebilir ve döndürebilir.

2. Fonksiyona bazı büyük değişkenleri kopyalamamak için - bir dizi, bir yapı, bir metin dizisi ...

 
Alexey Viktorov # :

Bir değişken global olarak bildirilmişse, aynı isimde değişkenler olmamalıdır. Örneğinizdeki gibi birkaç fonksiyondan bir fonksiyon çağırırsanız, her birinde aynı isimde bir değişken ile uğraşamaz ve bildiremezsiniz. O konforlu…

Onlar. soru, yalnızca başvuruya göre aynı argüman adlarına sahip yerel kapsamlar için kullanımın yerelleştirilmesiyle ilgilidir. Pek değil ama bir şey var. Başka bir şey olduğunu düşündüm.

 
JRandomTrader # :

1. Böylece kendi içindeki işlev, belirli bir global değişkeni değil, kendisine iletilen herhangi bir değişkeni değiştirebilir ve döndürebilir.

2. Bazı büyük değişkenleri fonksiyona kopyalamamak için - bir dizi, bir yapı, bir metin dizisi ...

Soru başka bir şeyle ilgiliydi. Üçüncü örnekte, 1. cevabınız. 2. Sorunun, varlığın alanlarını veya öğelerini değiştirme olasılığı olduğunu düşünmüyorum. Çoğu durumda const değildirler, bu nedenle çoğu durumda referansa dayalı argüman açıktır. AMA varlık sabitse, o zaman ... ancak geliştiriciler rahatsız etmemeye karar verdi.

 
Valeriy Yastremskiy # :

Onlar. soru, yalnızca başvuruya göre aynı argüman adlarına sahip yerel kapsamlar için kullanımın yerelleştirilmesiyle ilgilidir. Pek değil ama bir şey var. Başka bir şey olduğunu düşündüm.

Sadece benim için rahat olduğunu bildiğim şey bu. Elbette hafıza rezervasyonu veya başka bir şey gibi daha fazla avantaj var. Neden doğrudan Fedoseyev'e sormuyorsun?
 
Alexey Viktorov # :
Sadece benim için rahat olduğunu bildiğim şey bu. Elbette hafıza rezervasyonu veya başka bir şey gibi daha fazla avantaj var. Neden doğrudan Fedoseyev'e sormuyorsun?

Farklı algı düzeyi))) Belki kendime günah işliyorum, kendim için bariz olan şeyleri başkalarına iletmek çok zor))))

 
Valeriy Yastremskiy # :

Global kapsamda r bildirerek bunu bir x argümanıyla yapabilirsiniz.

Global kapsamda x bildirerek hiçbir argüman olmadan yapılabilir. Üstelik sonucu döndüremezsiniz, ancak global bir değişkene yazabilirsiniz. Ancak bu durum kod karmaşasına, neyin nereye kaydedildiğini hatırlama ihtiyacına yol açacak ve program kodunun artmasıyla bir programcının hayatını cehenneme çevirecektir.
 
Tünaydın. Lütfen bana neyin eksik olduğunu söyle? Amaç, ilk anlaşmaları minimum hacimle kapatmaktır. Şu anda yalnızca 0,01 hacimli siparişleri seçiyorum.
     for ( int i= 0 ; i< OrdersTotal (); i++){
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)){
       if (OrderLots()== 0.01 ){ 
     OrderClose(OrderTicket(), 0.01 ,OrderType()==OP_BUY?Bid:Ask, 3 , clrWhite ); return ;}}}    }

0,01'den değilse, 0,02'den vb. siparişleri seçmelidir. Bu anı nasıl tarif edebilirim?

 
Rustam Bikbulatov minimum hacimle kapatmaktır. Şu anda yalnızca 0.01 hacimli siparişleri seçiyorum.

0,01'den değilse, 0,02'den siparişleri seçmelidir. Bu anı nasıl tarif edebilirim?

 if (OrderLots()== 0.01 )

Gerçekten kendin görmüyor musun?

"Bu an nasıl boyanır?" - çok fazla 0.01 belirtildiğinde, mevcut minimumu hesaplamak gerekir.

Belki de kaymanın noktalarla belirtilmesi gerekiyor, bunlar 3*Point() , 3 değil

 
Rustam Bikbulatov minimum hacimle kapatmaktır. Şu anda yalnızca 0.01 hacimli siparişleri seçiyorum.

0,01'den değilse, 0,02'den siparişleri seçmelidir. Bu anı nasıl tarif edebilirim?

2 döngüye ihtiyacınız var: ilkinde minimum hacmi buluyorsunuz, ikincisinde kapatıyorsunuz. Ve kapanış sırasında siparişlerin 1 pozisyon kaydırıldığını, bu nedenle maksimum pozisyondan 0'a geçiş yapmanız gerektiğini unutmayın.