MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1266
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
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
Evet evet.
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ı
Teşekkür ederim. İlginç.
Hepinize iyi günler.
Kovalev'in ders kitabı, dizi indekslerine sabitler, değişkenler veya ifadeler şeklinde tamsayı değerleri verilebileceğini söylüyor.
mql4'te değişken şeklinde bir indeks ayarladığımda derleyici tek bir hata veriyor
Dizini şu şekilde ayarladım
intW =1000;
çift T_P[ W ]={0};
geçersiz OnTick()
{
kod
}
Lütfen bana neyi yanlış yaptığımı söyle.
Teşekkür ederim.
Hepinize iyi günler.
Kovalev'in ders kitabı, dizi indekslerine sabitler, değişkenler veya ifadeler şeklinde tamsayı değerleri verilebileceğini söylüyor.
mql4'te değişken şeklinde bir indeks ayarladığımda derleyici tek bir hata veriyor
Dizini şu şekilde ayarladım
intW =1000;
çift T_P[ W ]={0};
geçersiz OnTick()
{
kod
}
Lütfen bana neyi yanlış yaptığımı söyle.
Teşekkür ederim.
Bir dizinin dizini dizinin boyutu değildir.
Anladım teşekkürler. Bir değişken kullanarak bir dizinin boyutunu bir şekilde ayarlamak mümkün müdür?
Anladım teşekkürler. Bir değişken kullanarak bir dizinin boyutunu bir şekilde ayarlamak mümkün müdür?
Dizinin ilk boyutunda yeni boyutu ayarlar
int ArrayResize (
geçersiz& dizi[] , // başvuruya göre geçirilen dizi
int new_size , // yeni dizi boyutu
int rezerv_boyutu=0 // yedek boyut değeri (yedek)
);
Dizinin ilk boyutunda yeni boyutu ayarlar
int ArrayResize (
geçersiz& dizi[] , // başvuruya göre geçirilen dizi
int new_size , // yeni dizi boyutu
int rezerv_boyutu=0 // yedek boyut değeri (yedek)
);
Değerli bilgi için teşekkürler.
Merhaba! Lütfen bu basit kodu anlamama yardım edin.
Şimdi emir açma/kapama mekanizmalarını çözüyorum ve açık pozisyonları kapatma problemiyle karşılaştım.
Kod basit. Algoritmanın özü, 100 periyodu ile grafikte MA (hareketli ortalama) çizmektir. Eğer önceki mum [1] ise yukarıda açıldı MA ve aşağıda kapalı MA, ardından bir sonraki mum çubuğundan [0] bir SATIŞ emri açılır.
//(Satın alma koşulları tam tersi, ben boyamıyorum)
Bir emri kapatmak için, aşağıdaki koşullar - mevcut fiyat emrin açılış fiyatından, örneğin 40 puanın set değerinden geçmiştir.
Örnek: Bid=1.20045'te açılan bir atış, Ask=1.20005'te kapanmalıdır.
Eh, kısacası, benim için bir şey çalışmıyor, yeni bir emir açmak ve zaten açık olan pozisyonları kapatmak için koşullar, ama aslında fiyat belirtilen puan değerini geçebilir (kapanış seviyesini geçebilir) ve emir olmaz. kapalı olmak.
Neyin yanlış olduğunu anlayamıyorum.
p/s/ Ekran görüntüleri ve kod ekli.
Merhaba! Lütfen bu basit kodu anlamama yardım edin.
Şimdi emir açma/kapama mekanizmalarını çözüyorum ve açık pozisyonları kapatma problemiyle karşılaştım.
Kod basit. Algoritmanın özü, 100 periyodu ile grafikte MA (hareketli ortalama) çizmektir. Eğer önceki mum [1] ise yukarıda açıldı MA ve aşağıda kapalı MA, ardından bir sonraki mum çubuğundan [0] bir SATIŞ emri açılır.
//(Satın alma koşulları tam tersi, ben boyamıyorum)
Bir emri kapatmak için, aşağıdaki koşullar - mevcut fiyat emrin açılış fiyatından, örneğin 40 puanın set değerinden geçmiştir.
Örnek: Bid=1.20045'te açılan bir atış, Ask=1.20005'te kapanmalıdır.
Eh, kısacası, benim için bir şey çalışmıyor, yeni bir emir açmak ve zaten açık olan pozisyonları kapatmak için koşullar, ama aslında fiyat belirtilen puan değerini geçebilir (kapanış seviyesini geçebilir) ve emir olmaz. kapalı olmak.
Neyin yanlış olduğunu anlayamıyorum.
p/s/ Ekran görüntüleri ve kod ekli.
CheckForOpen() doğrudan OnTick'te değil, kendi kendine yazılmış bir OnBar'da (OnTick'te denir) - bar açılışında çağrılmalıdır. Ama bu küçük
Aç[1], Kapat[1] (önceki mum MA100'den kırıldı) değil, Aç[1], Aç[0] (önceki bir tarafta MA açıldı, diğer tarafta mevcut mum) izlemelisiniz. Aksi takdirde, mumlar ve veda mantığı arasında küçük bir boşluk.
0. çubukta Medyan'dan SMA değişir, yani sabit değildir. Onunla kıyaslayamazsın. Algoritmayı düzeltin.
Dizinin ilk boyutunda yeni boyutu ayarlar
int ArrayResize (
geçersiz& dizi[] , // başvuruya göre geçirilen dizi
int new_size , // yeni dizi boyutu
int rezerv_boyutu=0 // yedek boyut değeri (yedek)
);
İpucu için tekrar teşekkürler, ama..... El Kitabı bu işlevin yalnızca dinamik diziler için geçerli olduğunu söylüyor. Ve kodumda, dinamik bir dizi DEĞİL, normal bir dizi.
Sıradan bir dizinin boyutunun birinci boyutta nasıl değiştiğini bana söylerseniz (veya daha iyisi gösterirseniz) size çok minnettar olurum.
Yardımın için tekrar teşekkürler.