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

 
Artyom Trishkin :

GöstergeRakamlar(5)

Teşekkür ederim!
 

Başka bir soru soracağım. Aynı göstergeye göre. Diyelim ki göstergeyi grafiğe astık. İlk Bid1 değerini alıyoruz. Sonra ikinci Bid2 değerini alırız. Ve bu 2 değeri karşılaştırmanız gerekiyor. İlkini ikinciden çıkarın ve ilk Teklif1'e eklediğimiz sayıyı alın.

Teklif1=1.11133

Teklif2=1.11135

Bid2-Bid1 = 0.00002

Teklif1+0.00002=1.11135

Orijinal göstergedekiyle aynı olacağını anlıyorum.

Sadece uygulamayı görmek ve kodun mantığını anlamak istiyorum.

 
Alexey Viktorov :

Dosyanın özelliklerindeki kilidi kaldırmak gerekir.

Teşekkür ederim! :)
 
jaffer wilson :

İki açıklama:

Baskı: 22.33

Ve

Baskı: 2.00000

Neden farklı sonuçlar var? C/C++'da yukarıdaki ifade gayet iyi çalışıyor.

Bu konu hakkında fikri olan var mı?

 

MT5'teki fiyat dizileriyle başa çıkmama yardım et. Gösterge bir şekilde belirsiz. OnCalculate'deki fiyatları gösteriyorum:

   for ( int i= 10 ; i>= 0 ; i--)
         PrintFormat ( "s- open[%d] = %d" ,i,open[i]);

Bana garip fiyatlar veriyor:

 2020.01 . 15 20 : 09 : 51.517 ZZ_And_Moving_Averages (EURUSD,H1)      s- open[ 10 ] = 1597040639
2020.01 . 15 20 : 09 : 51.517 ZZ_And_Moving_Averages (EURUSD,H1)      s- open[ 9 ] = - 523642413
2020.01 . 15 20 : 09 : 51.517 ZZ_And_Moving_Averages (EURUSD,H1)      s- open[ 8 ] = 1691873517
2020.01 . 15 20 : 09 : 51.517 ZZ_And_Moving_Averages (EURUSD,H1)      s- open[ 7 ] = 590987500
2020.01 . 15 20 : 09 : 51.517 ZZ_And_Moving_Averages (EURUSD,H1)      s- open[ 6 ] = 1583296744
2020.01 . 15 20 : 09 : 51.517 ZZ_And_Moving_Averages (EURUSD,H1)      s- open[ 5 ] = 115448721
2020.01 . 15 20 : 09 : 51.517 ZZ_And_Moving_Averages (EURUSD,H1)      s- open[ 4 ] = 360090058
2020.01 . 15 20 : 09 : 51.517 ZZ_And_Moving_Averages (EURUSD,H1)      s- open[ 3 ] = - 1597040639
2020.01 . 15 20 : 09 : 51.517 ZZ_And_Moving_Averages (EURUSD,H1)      s- open[ 2 ] = - 856244680
2020.01 . 15 20 : 09 : 51.517 ZZ_And_Moving_Averages (EURUSD,H1)      s- open[ 1 ] = 366962006
2020.01 . 15 20 : 09 : 51.517 ZZ_And_Moving_Averages (EURUSD,H1)      s- open[ 0 ] = - 1209462791

Farklı yapıyorum, bir dizi oluşturuyorum, kopyalıyorum (bir dürtme yöntemi arıyorum, hiç bir şey anlamıyorum):

 double Open[];//глобальная
CopyOpen ( NULL , 0 , 0 ,Bars_To_Process* 2 ,Open); //OnCalculate
 for ( int i= 10 ; i>= 0 ; i--)
         PrintFormat ( "Open[%d] = %d" ,i,Open[i]);//OnCalculate

Ve bana şöyle bir şey veriyor:

 2020.01 . 15 20 : 10 : 11.557 ZZ_And_Moving_Averages (EURUSD,H1)      Open[ 10 ] = 1356522471
2020.01 . 15 20 : 10 : 11.557 ZZ_And_Moving_Averages (EURUSD,H1)      Open[ 9 ] = - 1708366192
2020.01 . 15 20 : 10 : 11.557 ZZ_And_Moving_Averages (EURUSD,H1)      Open[ 8 ] = - 729800843
2020.01 . 15 20 : 10 : 11.557 ZZ_And_Moving_Averages (EURUSD,H1)      Open[ 7 ] = 1499458982
2020.01 . 15 20 : 10 : 11.557 ZZ_And_Moving_Averages (EURUSD,H1)      Open[ 6 ] = 167675523
2020.01 . 15 20 : 10 : 11.557 ZZ_And_Moving_Averages (EURUSD,H1)      Open[ 5 ] = - 90709709
2020.01 . 15 20 : 10 : 11.557 ZZ_And_Moving_Averages (EURUSD,H1)      Open[ 4 ] = - 321607151
2020.01 . 15 20 : 10 : 11.557 ZZ_And_Moving_Averages (EURUSD,H1)      Open[ 3 ] = - 314735203
2020.01 . 15 20 : 10 : 11.557 ZZ_And_Moving_Averages (EURUSD,H1)      Open[ 2 ] = - 314735203
2020.01 . 15 20 : 10 : 11.557 ZZ_And_Moving_Averages (EURUSD,H1)      Open[ 1 ] = 1663011337
2020.01 . 15 20 : 10 : 11.557 ZZ_And_Moving_Averages (EURUSD,H1)      Open[ 0 ] = - 1408749273

Tarihler daha da ilginç. OnCalculate'deki tarihleri gösteriyorum:

 for ( int i= 10 ; i>= 0 ; i--)
         PrintFormat ( " s- time[%d] = %s" ,i, TimeToString (time[i]));

Bunu anladım:

 2020.01 . 15 20 : 17 : 04.421 ZZ_And_Moving_Averages (EURUSD,H1)      s- time[ 10 ] = 2015.12 . 02 10 : 00
2020.01 . 15 20 : 17 : 04.421 ZZ_And_Moving_Averages (EURUSD,H1)      s- time[ 9 ] = 2015.12 . 02 09 : 00
2020.01 . 15 20 : 17 : 04.421 ZZ_And_Moving_Averages (EURUSD,H1)      s- time[ 8 ] = 2015.12 . 02 08 : 00
2020.01 . 15 20 : 17 : 04.421 ZZ_And_Moving_Averages (EURUSD,H1)      s- time[ 7 ] = 2015.12 . 02 07 : 00
2020.01 . 15 20 : 17 : 04.421 ZZ_And_Moving_Averages (EURUSD,H1)      s- time[ 6 ] = 2015.12 . 02 06 : 00
2020.01 . 15 20 : 17 : 04.421 ZZ_And_Moving_Averages (EURUSD,H1)      s- time[ 5 ] = 2015.12 . 02 05 : 00
2020.01 . 15 20 : 17 : 04.421 ZZ_And_Moving_Averages (EURUSD,H1)      s- time[ 4 ] = 2015.12 . 02 04 : 00
2020.01 . 15 20 : 17 : 04.421 ZZ_And_Moving_Averages (EURUSD,H1)      s- time[ 3 ] = 2015.12 . 02 03 : 00
2020.01 . 15 20 : 17 : 04.421 ZZ_And_Moving_Averages (EURUSD,H1)      s- time[ 2 ] = 2015.12 . 02 02 : 00
2020.01 . 15 20 : 17 : 04.421 ZZ_And_Moving_Averages (EURUSD,H1)      s- time[ 1 ] = 2015.12 . 02 01 : 00
2020.01 . 15 20 : 17 : 04.421 ZZ_And_Moving_Averages (EURUSD,H1)      s- time[ 0 ] = 2015.12 . 02 00 : 00

Ve kopyaladığımda:

 datetime Time[];
CopyTime ( NULL , 0 , 0 ,Bars_To_Process* 2 ,Time);
for ( int i= 10 ; i>= 0 ; i--)
         PrintFormat ( "Time[%d] = %s" ,i, TimeToString (Time[i]));

Kuralları çıkarır:

 2020.01 . 15 20 : 20 : 37.686 ZZ_And_Moving_Averages (EURUSD,H1)      Time[ 10 ] = 2020.01 . 15 10 : 00
2020.01 . 15 20 : 20 : 37.686 ZZ_And_Moving_Averages (EURUSD,H1)      Time[ 9 ] = 2020.01 . 15 11 : 00
2020.01 . 15 20 : 20 : 37.686 ZZ_And_Moving_Averages (EURUSD,H1)      Time[ 8 ] = 2020.01 . 15 12 : 00
2020.01 . 15 20 : 20 : 37.686 ZZ_And_Moving_Averages (EURUSD,H1)      Time[ 7 ] = 2020.01 . 15 13 : 00
2020.01 . 15 20 : 20 : 37.686 ZZ_And_Moving_Averages (EURUSD,H1)      Time[ 6 ] = 2020.01 . 15 14 : 00
2020.01 . 15 20 : 20 : 37.686 ZZ_And_Moving_Averages (EURUSD,H1)      Time[ 5 ] = 2020.01 . 15 15 : 00
2020.01 . 15 20 : 20 : 37.686 ZZ_And_Moving_Averages (EURUSD,H1)      Time[ 4 ] = 2020.01 . 15 16 : 00
2020.01 . 15 20 : 20 : 37.686 ZZ_And_Moving_Averages (EURUSD,H1)      Time[ 3 ] = 2020.01 . 15 17 : 00
2020.01 . 15 20 : 20 : 37.686 ZZ_And_Moving_Averages (EURUSD,H1)      Time[ 2 ] = 2020.01 . 15 18 : 00
2020.01 . 15 20 : 20 : 37.686 ZZ_And_Moving_Averages (EURUSD,H1)      Time[ 1 ] = 2020.01 . 15 19 : 00
2020.01 . 15 20 : 20 : 37.686 ZZ_And_Moving_Averages (EURUSD,H1)      Time[ 0 ] = 2020.01 . 15 20 : 00

Ancak bazı tarihlerde uzağa gidemezsiniz. Anlamama yardım et. Doğru açılış ve kapanış fiyatları nasıl alınır?

 
Yevhenii Levchenko :

MT5'teki fiyat dizileriyle başa çıkmama yardım et. Gösterge bir şekilde belirsiz. OnCalculate'deki fiyatları gösteriyorum:

 for ( int i= 10 ; i>= 0 ; i--)
         PrintFormat ( "s- open[%d] = %d" ,i,open[i]);

Bunu yap:

 for ( int i= 10 ; i>= 0 ; i--)
{
   Print ( "s- open[" ,i, "] = " ,open[i]);
}

Biçimlendirilmiş çıktıda yanlış tür belirtimini kullandınız

 
Igor Makanu :

Bunu yap:

Biçimlendirilmiş çıktıda yanlış tür belirtimini kullandınız

Aaaaah, lanet olsun! Çok teşekkür ederim İgor!

%f yazmak gerekliydi ... Bir şeyi körelttim ... ve ayrıca ArraySetAsSeries'i her yere zincirlemem gerekiyor. Biraz sıradışı...

 
Igor Makanu :

lütfen

Gösterge kodunu sıfırdan yazıyorsanız ArraySetAsSeries() kullanmanızı tavsiye etmem (eğer MQL4'ten port yapıyorsanız - başka bir soru),

en sağdaki çubuğun sayısı olarak rate_total - 1'i kullanın, MQL5'teki göstergelerin mantığına daha hızlı alışın

Teşekkür ederim!

Sıfırdan yazmıyorum... Bir göstergeyi MT4'ten MT5'e çeviriyorum
 
Oleg Bondarev :

Başka bir soru soracağım. Aynı göstergeye göre. Diyelim ki göstergeyi grafiğe astık. İlk Bid1 değerini alıyoruz. Sonra ikinci Bid2 değerini alırız. Ve bu 2 değeri karşılaştırmanız gerekiyor. İlkini ikinciden çıkarın ve ilk Teklif1'e eklediğimiz sayıyı alın.

Teklif1=1.11133

Teklif2=1.11135

Bid2-Bid1 = 0.00002

Teklif1+0.00002=1.11135

Orijinal göstergedekiyle aynı olacağını anlıyorum.

Sadece uygulamayı görmek ve kodun mantığını anlamak istiyorum.

Yardım. Hiçbir şey kendi kendine çalışmıyor. Çizim için Bid ve y[ ] değerlerini karşılaştırmak için 2 adet x[ ] tampon yapıyorum. Ve hiçbir şey.

 
Oleg Bondarev :

Yardım. Hiçbir şey kendi kendine çalışmıyor. Çizim için Bid ve y[ ] değerlerini karşılaştırmak için 2 adet x[ ] tampon yapıyorum. Ve hiçbir şey.

bir soruyu farklı bir şekilde sormaya çalışın, sorunuz muhtemelen net değil