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

 
MakarFX :

Expert Advisor'ın sunucu üzerinde hangi yükü oluşturduğu nasıl belirlenir?

İstekler Her bir onayda Sor, Teklif Ver, Yayılım, TICKVALUE

Doğru anladıysam, profil oluşturucu yardımcı olacaktır. Ancak yük yükünün farklı olduğunu anlamalıyız. Bu, bir isteği yürütmek veya makinenin işlemcisini yüklemek için harcanan zamandır. Bir pencerede sembol başına bir danışman varsa, bu normaldir. Ve bir makinede 10 terminalde 40 karakterli 120 pencere vb. varsa, makine donabilir)

 
Aleksei Stepanenko :

Bilmiyorum, dövüşte deneyebilirsin. Ya da belki INT_MAX'ın bir çeşidi olarak ?


Evet, saydığım şey bu:

Ve bugüne kadar, hafta sonları da dahil olmak üzere, bu doğru olmayan bir şey.

Saniyede puan, evet okunabilir çıkıyor. Ve daha düşük TF'lerde daha fazla hız var ve menzil daha küçük.

_     ;qstr7_41;_;EURUSD;_TF_; 1 ; Имя файла ;QstrV.csv; Локальное время ; 2020.10 . 23 15 : 34 : 25
2020.10 . 23 14 : 34 : 20 ; [i]= ; 13 ; VTrend[i] = ; 25 ; SumVTrend= ; 97 ; AbsVTrend= ; 341 ; pos= ; 8 ;SumVTrendPos= ; 339 ; neg= ; 7 ; SumVTrendNeg= ;- 345
2020.10 . 23 14 : 34 : 20 ; [i]= ; 2 ; VTrend1[i] = ; 272 ; SumVTrend1= ; 17 ; AbsVTrend1= ; 137 ; pos1= ; 2 ;SumVTrendPos1= ;- 84 ; neg1= ; 2 ; SumVTrendNeg1= ;- 84
_     ;qstr7_41;_;EURUSD;_TF_; 5 ; Имя файла ;QstrV.csv; Локальное время ; 2020.10 . 23 15 : 34 : 36 ;
 2020.10 . 23 14 : 34 : 31 ; [i]= ; 15 ; VTrend[i] = ; 414 ; SumVTrend= ; 47 ; AbsVTrend= ; 124 ; pos= ; 9 ;SumVTrendPos= ; 160 ; neg= ; 8 ; SumVTrendNeg= ;- 82
2020.10 . 23 14 : 34 : 31 ; [i]= ; 2 ; VTrend1[i] = ;- 32 ; SumVTrend1= ; 63 ; AbsVTrend1= ; 83 ; pos1= ; 2 ;SumVTrendPos1= ; 37 ; neg1= ; 2 ; SumVTrendNeg1= ;- 32
_     ;qstr7_41;_;EURUSD;_TF_; 1440 ; Имя файла ;QstrV.csv; Локальное время ; 2020.10 . 26 15 : 42 : 42 ;
2020.10 . 26 14 : 42 : 42 ; [i]= ; 14 ; VTrend[i] = ;- 26 ; SumVTrend= ; 3 ; AbsVTrend= ; 9 ; pos= ; 9 ;SumVTrendPos= ; 9 ; neg= ; 7 ; SumVTrendNeg= ;- 11
2020.10 . 26 14 : 42 : 42 ; [i]= ; 1 ; VTrend1[i] = ;- 7 ; SumVTrend1= ;- 7 ; AbsVTrend1= ; 7 ; pos1= ; 1 ;SumVTrendPos1= ; 0 ; neg1= ; 2 ; SumVTrendNeg1= ;- 7
 
Valeriy Yastremskiy :

Doğru anladıysam, profil oluşturucu yardımcı olacaktır. Ancak yük yükünün farklı olduğunu anlamalıyız. Bu, bir isteği yürütmek veya makinenin işlemcisini yüklemek için harcanan zamandır. Bir pencerede sembol başına bir danışman varsa, bu normaldir. Ve bir makinede 10 terminalde 40 karakterli 120 pencere vb. varsa, makine donabilir)

MQL4'ten terminal verilerine birçok kez erişmeye değer olup olmadığını, ardından OrderSelect hakkında sizinle zaten tartışmıştık https://www.mql5.com/ru/forum/342989#comment_16743716

güncel fiyatları da test edebilirsiniz, bence tek tıkta 100500 kez kullanılabilir, çünkü saniyede milyonlarca kez performans olacak


tek şey, evet - piyasaya genel bakış penceresinde ne kadar fazla sembol varsa, terminalin kendisi o kadar fazla yüklenecek ve buna göre, birçok farklı sembolden veri çağırırsanız, gecikmeler de olacaktır.

onlar. terminali akıllıca kullanırsanız, hiçbir şey askıda kalmaz - pazara genel bakış penceresinde sizin kullandığınız on karakter vardır


Aynı anda kaç grafiğin açılabileceğini kontrol etmedim, ancak geçmiş 1000 çubukla sınırlıysa, büyük olasılıkla terminal birkaç düzine grafik penceresini sorunsuz bir şekilde çekecektir.

 

Hepinize iyi günler!

mql5 öğrenmeye başladı (mql4'ten sonra). Dörtlü, Tarih ve Saat adlı bir işlev grubuna sahiptir. Aynı grup ilk beşte. Ancak bu işlev grubundaki ilk beşte, dördünden çok daha az işlev vardır. Beşte, geçerli saat, dakika ... ve diğer işlevlerin değerini döndüren hiçbir işlev yoktur.
Örneğin, dördü, mevcut saatin değerini döndüren Hour() işlevini içeriyordu. Beşte bu özellik yoktur.
SORU

Beşteki hangi işlevler Hour() ile benzerdir ve beşteki benzer grupta olmayan dörtlü Tarih ve Saat işlevleri grubundaki diğer işlevler.

Yardım için teşekkürler.

 
Igor Makanu :

MQL4'ten terminal verilerine birçok kez erişmeye değer olup olmadığını, ardından OrderSelect hakkında sizinle zaten tartışmıştık https://www.mql5.com/ru/forum/342989#comment_16743716

güncel fiyatları da test edebilirsiniz, bence tek tıkta 100500 kez kullanılabilir, çünkü saniyede milyonlarca kez performans olacak


tek şey, evet - piyasaya genel bakış penceresinde ne kadar fazla sembol varsa, terminalin kendisi o kadar fazla yüklenecek ve buna göre, birçok farklı sembolden veri çağırırsanız, gecikmeler de olacaktır.

onlar. terminali akıllıca kullanırsanız, hiçbir şey askıda kalmaz - pazara genel bakış penceresinde sizin kullandığınız on karakter vardır


Aynı anda kaç grafiğin açılabileceğini kontrol etmedim, ancak geçmiş 1000 çubukla sınırlıysa, büyük olasılıkla terminal birkaç düzine grafik penceresini sorunsuz bir şekilde çekecektir.

Teşekkür ederim hatırlattım))) Evet pek bir şey anlamadım o zaman) Sadece makul isteklerle her şeyin yürümesi gerektiğini söylemek istedim.Bunlar maliyet açısından ucuz istekler (yürütme süresi ve işlemci yükü).)

 
ANDREY :

Hepinize iyi günler!

mql5 öğrenmeye başladı (mql4'ten sonra). Dörtlü, Tarih ve Saat adlı bir işlev grubuna sahiptir. Aynı grup ilk beşte. Ancak bu işlev grubundaki ilk beşte, dördünden çok daha az işlev vardır. Beşte, geçerli saat, dakika ... ve diğer işlevlerin değerini döndüren hiçbir işlev yoktur.
Örneğin, dördü, mevcut saatin değerini döndüren Hour() işlevini içeriyordu. Beşte bu özellik yoktur.
SORU

Beşteki hangi işlevler Hour() ile benzerdir ve beşteki benzer grupta olmayan dörtlü Tarih ve Saat işlevleri grubundaki diğer işlevler.

Yardım için teşekkürler.

https://www.mql5.com/ru/docs/dateandtime/timecurrent adresini kullanın

ikinci işlev çağrısı

 datetime    TimeCurrent (
   MqlDateTime &  dt_struct       // переменная типа структуры
   );
genel olarak https://www.mql5.com/ru/docs/dateandtime/timetostruct
 
4ki için sor. Grafikte fare tıklaması koordinatları nasıl döndürülür, tercihen çubuk numarasına göre. Yalnızca komut dosyasının atıldığı koordinatları buluyorum.
 
Valeriy Yastremskiy :

Teşekkür ederim hatırlattım))) Evet pek bir şey anlamadım o zaman) Sadece makul isteklerle her şeyin yürümesi gerektiğini söylemek istedim.Bunlar maliyet açısından ucuz istekler (yürütme süresi ve işlemci yükü).)

Evet

kod "kirli" ise, herhangi bir sistemi yapabilirsiniz

ve eğer Ask / Bid fiyatına erişilen makul bir kullanımsa, kene başına birkaç düzine kez olmasına izin verin, o zaman bu EA'nın performansını hiçbir şekilde etkilemeyecektir (en fazla %1-2)

onlar. Kaynakları (veya sistem işlevlerine / terminal ortamına yapılan çağrıları) kullanma mantığı, eğer algoritma Ask / Bid fiyatlarına tek bir tıklamayla birkaç bin kez erişmeyi içeriyorsa, o zaman .... büyük olasılıkla algoritmanın kendisini gözden geçirmeniz gerekir, veya opsiyonel olarak Algoritma hesaplamadan önce Ask/Teklif değerlerini bir kez hatırlayın




Valeriy Yastremskiy :
4ki için sor. Grafikte fare tıklaması koordinatları nasıl döndürülür, tercihen çubuk numarasına göre. Yalnızca komut dosyasının atıldığı koordinatları buluyorum.

muhtemelen ChartXYToTimePrice https://docs.mql4.com/en/chart_operations/chartxytotimeprice arayın

sadece tartışıldı https://www.mql5.com/ru/forum/353726

burada da tıklanarak tartışılan başka bir konu var https://www.mql5.com/ru/forum/344607

 
Igor Makanu :

Algoritma, tik başına birkaç bin kez Alış/Teklif fiyatlarına erişmeyi içeriyorsa, o zaman... büyük olasılıkla, algoritmanın kendisini revize etmeniz veya bir seçenek olarak, algoritmayı hesaplamadan önce Alış/Teklif değerlerini bir kez hatırlamanız gerekir.




muhtemelen ChartXYToTimePrice https://docs.mql4.com/en/chart_operations/chartxytotimeprice arayın

sadece tartışıldı https://www.mql5.com/ru/forum/353726

burada da tıklanarak tartışılan başka bir konu var https://www.mql5.com/ru/forum/344607

Genel olarak, bir kene üzerinde fiyatlarımız varsa, kritik değilse, OnTick'in sonuna kadar onlarla çalışabiliriz. Ve kaymaya karşı yardımcı olacak sınırlayıcılar)

Tam olarak değil, daha doğrusu, hazır bir çözüm ...)) kodunuzu kendiniz anlamanız gerekecek. Mumu tıklayıp değerlerini dosyaya yazmak istedim.

CHARTEVENT_MOUSE_MOVE

 
Valeriy Yastremskiy :

Genel olarak, bir kene üzerinde fiyatlarımız varsa, kritik değilse, OnTick'in sonuna kadar onlarla çalışabiliriz. Ve kaymaya karşı yardımcı olacak sınırlayıcılar)

Tam olarak değil, daha doğrusu, hazır bir çözüm ...)) kodunuzu kendiniz anlamanız gerekecek. Mumu tıklayıp değerlerini dosyaya yazmak istedim.

CHARTEVENT_MOUSE_MOVE

muhtemelen barın fiyatını ve zamanını şu şekilde belirlemek istersiniz:

 void OnChartEvent ( const int id,
                   const long &lparam,
                   const double &dparam,
                   const string &sparam)
{
   if (id == CHARTEVENT_CLICK )
   {
       int window = 0 ;
       datetime time;
       double    price;
       if ( ChartXYToTimePrice ( 0 , ( int )lparam, ( int )dparam, window, time, price))
      {
         Print ( "time = " , time, " ,price = " , price);
      }
   }
}
daha ziyade, bunlar grafikteki zaman + fiyat değerlerinde fare tıklamasının koordinatlarıdır, çubuk iBarShift() kullanılarak belirlenmelidir.
Neden: