[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 4

 

gülmüyor

 
Fox_RM : Sonraki yinelemelerde her şey yolunda. Nedenmiş?

ikiden biri:

- init() bölümünde değişken başlatma kullanıyorsunuz, orada tüm işlevler düzgün çalışmıyor

- belki de bazı değişkenleri başlatmadınız, değişkenleri tanımladıktan sonra en azından bazı değerleri başlatmak uzun süredir iyi bir programlama uygulaması olarak kabul ediliyor.

Not: neden ArrHigh[ i ] diziniz var, ancak ArrHigh[ 0 ] kullanılıyor?

 

Ve bir küçük soru daha.

Bu gönderiye rastladım:

 void IncArray( int & Array[] )

Bu durumda işaret ve ne anlama geldiği dışında her şey açık görünüyor?

 
Fox_RM bu durumda işaret & ne anlama geliyor?
https://docs.mql4.com/en/basis/variables/formal
 

IgorM :

ikiden biri:

- init() bölümünde değişken başlatma kullanıyorsunuz, orada tüm işlevler düzgün çalışmıyor

- belki de bazı değişkenleri başlatmadınız, değişkenleri tanımladıktan sonra en azından bazı değerleri başlatmak uzun süredir iyi bir programlama uygulaması olarak kabul ediliyor.

Not: neden ArrHigh[ i ] diziniz var, ancak ArrHigh[ 0 ] kullanılıyor?

Kesinlikle haklısın, " init (), ..." bölümünde değişkenlerin başlatılmasını kullanıyorsun - böyle bir günah var)

"... en azından bir değer" - 0 atandı.

"Neden ArrHigh[ i ] diziniz var, ama ArrHigh[ 0 ] kullanın"... Sonuç şudur.

Kodda daha sonra çalışacağım High[i] değerini almam gerekiyor.

Bir döngüde bir değişkene atama yaparsanız, bir sonraki adımda üzerine yazılır. yinelemeler. Daha akıllı bir şey nasıl uygun hale getirileceğini düşünemezdi

TÜM Yüksek[i] değerleri diziye ve ardından yalnızca ArrHigh[ 0 ] ile çalışır. Bu döngüdeki bir sonraki vuruşta, tüm değerler yeniden başlatılır.

Belki daha iyi bir seçenek vardır?

 
 
Fox_RM :
1. Kesinlikle haklısınız, "init (), ..." bölümünde değişkenlerin başlatılmasını kullanıyorsunuz - böyle bir günah var)

2. Daha iyi bir seçenek olabilir mi?

1. init() bölümünde başlatmak mümkündür ve bazen sadece orada gereklidir, sadece tüm standart fonksiyonların doğru çalışmayacağına, zaman serilerine erişimin doğru çalışacağına dikkat ettim.

2. Görevi neden karmaşıklaştırdığınızı anlamıyorum? High[i] dizisi hiçbir yere gitmeyecek, neden bir kez daha kopyalasın? yeni bir çubuk açıldığında "barı kaybetmekten" korkuyorsanız, istediğiniz çubuğun zamanını hatırlayın - zaman kesinlikle asla değişmeyecek, aşağıdaki yapıyı kullanabilirsiniz High[iBarShift(NULL,0,mytime)]

Not: ifadeden sonra: "Bir döngüde bir değişken atarsanız, sonraki yinelemelerde üzerine yazılır." Sorunun bazı değişkenlerin rastgele başlatılması olduğundan şüpheleniyorum, Print() içindeki kodun sorunlu bölümündeki tüm değişkenleri yazdırmayı deneyin.

 
IgorM :
Teşekkürler Igor, bunu deneyeceğim!
 

Beyler lütfen bana yardım edin, bu programlama dilini hiçbir şekilde alamadığım bir şey) Bir haftadır bir ders kitabından öğreniyorum))

belli bir stop ve kârla iki emir (zıt) açması için ne yazılmalı ve sonra onları kapatırsa hemen diğerlerini aynı sabit hacimle açar + akışı kontrol eder ve sadece 8'den pozisyon açar 8

şimdiden teşekkür ederim)))

 
vkontakte0 :

Beyler lütfen bana yardım edin, bu programlama dilini hiçbir şekilde alamadığım bir şey) Bir haftadır bir ders kitabından öğreniyorum))

belli bir stop ve kârla iki emir (zıt) açması için ne yazılmalı ve sonra onları kapatırsa hemen diğerlerini aynı sabit hacimle açar + akışı kontrol eder ve sadece 8'den pozisyon açar 8

şimdiden teşekkür ederim)))

TEK ders kitabının açıkça yeterli olmadığını düşünüyorum. İnternette MQL'nin temellerinin ve "uzman yazmanın" temellerinin ana hatlarıyla verildiği birçok farklı site vardır (gerekirse kişisel bir atışta bağlantılar). Ben mesela bu siteleri kendim için

indirilir ve chm formatına dönüştürülür. Her zaman elinizin altında. Ticaret robotlarına gelince, işleri aceleye getirdiğinizi düşünüyorum, elinizi hindilerle doldurmanız ve ardından IMHO görevini karmaşıklaştırmanız gerekiyor.