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

 
Roni Iron :

Herkese iyi!


Soru: Bir çubuğun yüksek ve düşük zamanlarını belirlemenin en kolay yolu nedir?

Bar açılış/kapanış saati ilginç değil.

MT4'te.

Teşekkür ederim!

bunu yaptı

KB'de yayınlandı https://www.mql5.com/en/code/25897

 

Lütfen bana MT4'te önceden tanımlanmış bir double Ask değişkeni olduğunu söyleyin ve anladığım kadarıyla,   içinde boşluk OnTick() zorlama olmadan

RereshRates değerini DEĞİŞTİRMEDİ.

MT5'te Ask, MqlTick last_tick ile değiştirildi; SymbolInfoTick(_Symbol,last_tick); double Ask=last_tick.ask;   değeri her zaman yeni bir onay işaretiyle güncellenir .  

Benim sorunum Ask + X değeri ile hattın koordinatını ayarlamam gerekiyor fakat MT5'te değer değiştikten sonra hat koordinatlarını değiştirdiği için artık bunu yapamıyorum

Sor=last_tick.ask. ne tavsiye edersin

Документация по MQL5: Предопределенные переменные
Документация по MQL5: Предопределенные переменные
  • www.mql5.com
Для каждой выполняющейся mql5-программы поддерживается ряд предопределенных переменных, которые отражают состояние текущего ценового графика на момент запуска программы - эксперта, скрипта или пользовательского индикатора. Значение предопределенным переменным устанавливает клиентский терминал перед запуском mql5-программы на выполнение...
 
WinProject :

Lütfen bana MT4'te önceden tanımlanmış bir double Ask değişkeni olduğunu söyleyin ve anladığım kadarıyla,   içinde boşluk OnTick() zorlama olmadan

RereshRates değerini DEĞİŞTİRMEDİ.

MT5'te Ask, MqlTick last_tick ile değiştirildi; SymbolInfoTick(_Symbol,last_tick); double Ask=last_tick.ask;   değeri her zaman yeni bir onay işaretiyle güncellenir .  

Benim sorunum Ask + X değeri ile hattın koordinatını ayarlamam gerekiyor fakat MT5'te değer değiştikten sonra hat koordinatlarını değiştirdiği için artık bunu yapamıyorum

Sor=last_tick.ask. ne tavsiye edersin

Bu nasıl değişmedi? Her tik ile değişti. Ama döngüde, evet, değişmedi. Belki bununla dalga geçtin?

Ancak mql5'te bile, mevcut fiyatı döngüden önce belirleyebilirsiniz ve döngüden çıkana kadar değişmez.

 
Millet, aptal soru için üzgünüm. MT4 terminalinde komisyonlar, takaslar vb. dikkate alınarak karı gösterir. MT5'te "çıplak" gösterilir. mt5'in mt4 gibi görünmesi için herhangi bir ayar olup olmadığını bulamıyorum? Yoksa nasıl olduğunu bilmiyor mu?
 

OBJ_TEXT içindeki yazılı metnin genişliğini piksel cinsinden ölçmenin bir yolu var mı?

 
Alexey Viktorov :

Bu nasıl değişmedi? Her tik ile değişti. Ama döngüde, evet, değişmedi. Belki bununla dalga geçtin?

Ancak mql5'te bile, mevcut fiyatı döngüden önce belirleyebilirsiniz ve döngüden çıkana kadar değişmez.

Evet, teşekkürler, varsayımım yanlış çıktı ama soru biraz farklı. MT4 ve MT5 için aynı olan bir kod var:

 void OnTick ()
              {
               string S= Symbol ();
               double LastAsk= SymbolInfoDouble (S, SYMBOL_ASK );
               ObjectCreate ( 0 , "hLine" , OBJ_HLINE , 0 , 0 ,LastAsk + 500 * Point ());
              }

Soru şu ki , MT4'te oluşturulan çizgi, oluşturulduğu fiyattan sabitlenecek ve MT5'te her yeni tikte çizgi yeni bir LastAsk değerinde çekilecek ve fiyatla birlikte pozisyonu değişecek. MT5'te bunu nasıl önleyebilirim?

 
WinProject :

Evet, teşekkürler, varsayımım yanlış çıktı ama soru biraz farklı. MT4 ve MT5 için aynı olan bir kod var:

Soru şu ki , MT4'te oluşturulan çizgi, oluşturulduğu fiyattan sabitlenecek ve MT5'te her yeni tikte çizgi yeni bir LastAsk değerinde çekilecek ve fiyatla birlikte pozisyonu değişecek. MT5'te bunu nasıl önleyebilirim?

Ada göre bir satırın varlığını kontrol edin. Hayır - oluştur. Bunlar genel olarak temel bilgilerdir
 
Artyom Trishkin :
Ada göre bir satırın varlığını kontrol edin. Hayır - oluştur. Bunlar genel olarak temel bilgilerdir

Teşekkürler, programlama mantığının bu temelleri hakkında başka ne okumalı? İlkel görünüyor, ancak sıfırdan tahmin etmek zor.

 if ( ObjectFind ( 0 , "hLine" ))

Bir koşul ekledim ve her şey çalıştı.

 
WinProject :

Teşekkürler, programlama mantığının bu temelleri hakkında başka ne okumalı? İlkel görünüyor, ancak sıfırdan tahmin etmek zor.

Bir koşul ekledim ve her şey çalıştı.

aniden (ama her zamanki gibi) ObjectGetInteger(0,objectName,OBJPROP_TYPE) daha hızlıdır.

ObjectFind eşzamanlı bir komuttur, yani grafik nesnelerinin tam bir güncellemesini (ve kullanılabilirliğini) bekler.Kullanım önemli gecikmelerle doludur.

Kendi nesnelerinizle (yani, uygulamanızda oluşturulanlarla) çalışıyorsanız, ObjectFind kullanmamalısınız - nesnenin hangi pencerede oluşturulduğunu ve büyük olasılıkla var olduğunu ve istenen türde olduğunu zaten biliyorsunuzdur.
Maksimum sorun - kullanıcının nesneyi silmiş veya özelliği değiştirmiş olması

 
WinProject :

Evet, teşekkürler, varsayımım yanlış çıktı ama soru biraz farklı. MT4 ve MT5 için aynı olan bir kod var:

Soru şu ki , MT4'te oluşturulan çizgi, oluşturulduğu fiyattan sabitlenecek ve MT5'te her yeni tikte çizgi yeni bir LastAsk değerinde çekilecek ve fiyatla birlikte pozisyonu değişecek. MT5'te bunu nasıl önleyebilirim?

Bu yüzden hatırlamıyorum, kontrol etmek gerekiyor ama isteksizlik. Mql4'te, zaten var olan bir nesnenin adıyla bir nesne oluşturmaya çalışırken, basitçe bir hata döndürülürken, mql5'te artık bir hata değil, koordinatlar farklıysa parametrelerin değiştirilmesi mümkündür.

Artyom'un dediği gibi - bir nesnenin varlığını kontrol edin

 int    ObjectFind ( 
   long     chart_id,     // идентификатор графика 
   string   name           // имя объекта 
   );
Neden: