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

 
Hepinize iyi günler. Ben güçlü bir programcı değilim ve bu nedenle bazı basit şeyleri anlamıyorum. Böyle bir sorunum var: danışmanda, kapatılan siparişler arasında SL tarafından kapatılan sonuncuyu seçin.
 
Igor Makanu :

Basit görevleri fazla karmaşık hale getirmeyin! ... bir sınıfta yeni bir çubuk tanımlama işlevini bile tamamlayan ben dedim))))

konuya göre:


fikir açık, sadece daha doğru >= görünüşe göre

 if ((timer1++)>=Timer1) { timer1 = 0 ; Print ( "Timer №1" ); }
if ((timer2++)>=Timer2) { timer2 = 0 ; Print ( "Timer №2" ); }
 
leonerd :

fikir açık, sadece daha doğru >= görünüşe göre

kontrol etmediniz, hemen göreceğiniz değişkenleri yazdırın, 1'e kadar bir hata yaptıysanız, o zaman ya seçeneğiniz ya da sıfırlamayın, ancak sayaç1 ve zamanlayıcı2 sayaçlarına \u003d 1 değerlerini atayın

Alternatif olarak şunu deneyebilirsiniz:


 if ((++timer1)>=Timer1) { timer1 = 0 ; Print ( "Timer №1" ); }
if ((++timer2)>=Timer2) { timer2 = 0 ; Print ( "Timer №2" ); }
 
Igor Makanu :

kontrol etmediniz, hemen göreceğiniz değişkenleri yazdırın, 1'e kadar bir hata yaptıysanız, o zaman ya seçeneğiniz ya da sıfırlamayın, ancak sayaç1 ve zamanlayıcı2 sayaçlarına \u003d 1 değerlerini atayın

Ancak, yöntem elbette belirli bir periyodikliği garanti etmez. Kodun bir zamanlayıcıda yürütülmesi, başka bir zamanlayıcının zamanını aşabilir.

 
leonerd :

Ancak, yöntem elbette belirli bir periyodikliği garanti etmez. Kodun bir zamanlayıcıda yürütülmesi, başka bir zamanlayıcının zamanını aşabilir.

ve Windows sistemlerinde gerçek zamanlı bir zamanlayıcı almanın garanti edildiği yer neresidir? - sistem aşırı yüklenirse gecikmeler olur

yani MQL'de - eğer OnTick()'i karmaşık hesaplamalarla yüklediyseniz, o zaman yürütülene kadar OnTimer() olayı gerçekleşmez

IMHO, MT4 bile karmaşık hesaplamalar için yeterlidir, yeterli değilse MT5'ten sonra - gerçekten C ++ düzeyinde çalışır, ancak genellikle performans eksikliği zayıf bir hesaplama algoritması ile ilişkilidir - bir profil oluşturucu kullanın, her tikte hesaplama yapmayın yeni bir çubuk görünene kadar hiçbir şey olmadığında hesaplayın, son 1-3 çubukta sinyal kullanıyorsanız tüm geçmişi hesaplamayın - sadece 100 çubuğu hesaplayın ... birçok seçenek var

Not: grafik nesnelerle çalışmak her şeyi yavaşlatır, dizelerle çalışmak da performansı düşürür - teoride, ancak son zamanlarda bunu fark etmedim, zaman dönüştürme işlevleriyle çalışmak da pahalı görünüyor - profil oluşturucuda kesinlikle her şeyi görebilirsiniz. çok zaman harcadınız - bu kod parçasını daha az kullanmaya çalışıyoruz

Профилирование кода - Разработка программ - MetaTrader 5
Профилирование кода - Разработка программ - MetaTrader 5
  • www.metatrader5.com
Профилирование — это сбор характеристик программы во время ее выполнения. При профилировании замеряется время выполнения и количество вызовов отдельных функций и строк в коде программы. При помощи этого инструмента программист может найти наиболее медленные участки кода и провести их оптимизацию. Профилирование можно проводить на обычном...
 
Igor Makanu :

ve Windows sistemlerinde gerçek zamanlı bir zamanlayıcı almanın garanti edildiği yer neresidir? - sistem aşırı yüklenirse gecikmeler olur

yani MQL'de - eğer OnTick()'i karmaşık hesaplamalarla yüklediyseniz, o zaman yürütülene kadar OnTimer() olayı gerçekleşmez

IMHO, MT4 bile karmaşık hesaplamalar için yeterlidir, yeterli değilse MT5'ten sonra - gerçekten C ++ düzeyinde çalışır, ancak genellikle performans eksikliği zayıf bir hesaplama algoritması ile ilişkilidir - bir profil oluşturucu kullanın, her tikte hesaplama yapmayın yeni bir çubuk görünene kadar hiçbir şey olmadığında hesaplayın, son 1-3 çubukta sinyal kullanıyorsanız tüm geçmişi hesaplamayın - sadece 100 çubuğu hesaplayın ... birçok seçenek var

Not: grafik nesnelerle çalışmak her şeyi yavaşlatır, dizelerle çalışmak da performansı düşürür - teoride, ancak son zamanlarda bunu fark etmedim, zaman dönüştürme işlevleriyle çalışmak da pahalı görünüyor - profil oluşturucuda kesinlikle her şeyi görebilirsiniz. çok zaman harcadınız - bu kod parçasını daha az kullanmaya çalışıyoruz

Katılıyorum, standart zamanlayıcı da hiçbir şeyi garanti etmiyor. Peki teşekkürler, deneyeceğiz.

 

İyi günler, sevgili varlıklar!

Söyleyin bana, lütfen, MKL4'te bir pozisyon açılışını başka bir sembol için bir pozisyon açarken bir sembol için bir pozisyon açılışını ayarlamak mümkün müdür? Belki bu soru daha önce tartışılmıştır, sonra bir bağlantı verin.

Teşekkür ederim.

 
novichok2018 :

İyi günler, sevgili varlıklar!

Söyleyin bana, lütfen, MKL4'te bir pozisyon açılışını başka bir sembol için bir pozisyon açarken bir sembol için bir pozisyon açılışını ayarlamak mümkün müdür? Belki bu soru daha önce tartışılmıştır, sonra bir bağlantı verin.

Teşekkür ederim.

Soru tam olarak formüle edilmemiştir.
Ancak genel olarak - mümkün. Ancak aynı anda değil, iki durumdan herhangi birinde sırayla.
 
Artyom Trishkin :
Soru tam olarak formüle edilmemiştir.
Ancak genel olarak - mümkün. Ancak aynı anda değil, iki durumdan herhangi birinde sırayla.

İyi. Kodda nasıl tarif edilir? Örneğin, koşullar 9-00'da oluşturulmuşsa ve sterlin için BAI açıldıysa, o zaman BAI euro için de açıldı (9-00'da).

 
novichok2018 :

İyi. Kodda nasıl tarif edilir? Örneğin, koşullar 9-00'da oluşturulmuşsa ve sterlin için BAI açıldıysa, o zaman BAI euro için de açıldı (9-00'da).

Nasıl açıldı? Açılma sebebi nedir?