[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 275
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
Soru mümkün.
eksi olmadan bir sayı nasıl elde edilir, eğer Open[1] < Close[1] olduğu ortaya çıkarsa ve Open[1]-Close[1] çıkarılırken eksi ile bir değer alacağım, bunu her zaman nasıl yapacağım pozitif değer, Open ve Close arasındaki mesafeyi hesaplamam gerekiyor, başka bir şekilde yiyebilir miyim?
Teşekkür ederim.
Soru mümkün.
eksi olmadan bir sayı nasıl elde edilir, eğer Open[1] < Close[1] olduğu ortaya çıkarsa ve Open[1]-Close[1] çıkarılırken eksi ile bir değer alacağım, bunu her zaman nasıl yapacağım pozitif değer, Open ve Close arasındaki mesafeyi hesaplamam gerekiyor, başka bir şekilde yiyebilir miyim?
Teşekkür ederim.
https://docs.mql4.com/en/math/MathAbs
https://docs.mql4.com/en/math/MathAbs
;) Teşekkürler!
Tünaydın!
MT4 için bir danışman yazarken , bu danışmanın en az bir siparişinin açılıp açılmadığını programlı olarak (yani danışmanın kendi kodunda) belirlemek gerekli hale geldi. Söyle bana, böyle bir işlev var mı? Belki varsa, şöyle görünür:
Bool (bu sihirli sayı ile bir EA siparişinin açılıp açılmadığı)
{ yanıt = Doğru/Yanlış }
?
Uzmanlar - lütfen yardım edin - kendileri zaten kafalarını kırdılar
P. S. – sipariş numaralarını dikkate alarak seçeneği denedi – işe yaramadı
Tünaydın!
MT4 için bir danışman yazarken, bu danışmanın en az bir siparişinin açılıp açılmadığını programlı olarak (yani danışmanın kendi kodunda) belirlemek gerekli hale geldi. Söyle bana, böyle bir işlev var mı?
Bu f-I uygun mu?
Kullanım örneği: Fonksiyonun kendisini kodun en sonuna koyarız (BAŞLAT fonksiyonunun dışında) ve bir pozisyon açarken şunları kontrol ederiz:
Pozisyonlara değil, bekleyen emirlere ihtiyacınız varsa, f-th kullanabilirsiniz.
NumberOfOrders() işlevi.
Bu fonksiyon sipariş sayısını döndürür. Kontrol edilen siparişlerin listesini fonksiyon parametreleriyle sınırlayabilirsiniz:
sy - Araç adı. Bu parametreyi ayarlarsanız, fonksiyon sadece belirtilen enstrümanın siparişlerini kontrol edecektir. NULL, geçerli araç anlamına gelir ve "" (varsayılan) herhangi bir araç anlamına gelir.
op - bekleyen emir türü. Geçerli değerler: OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT, OP_SELLSTOP veya -1. Varsayılan değer -1, herhangi bir sipariş anlamına gelir.
mn - Sipariş Kimliği (MagicNumber). Varsayılan değer -1 - herhangi bir büyü.
https://www.mql5.com/ru/forum/107476/page12
Lütfen dosyaların ne verdiğini açıklayın:
Mümkünse, o zaman basit bir şey.
Teşekkür ederim.
Lütfen dosyaların ne verdiğini açıklayın:
Mümkünse, o zaman basit bir şey.
Teşekkür ederim.
bunlar sözde "kütüphane dosyaları". sık kullanılan işlevler bu dosyalarda saklanır. kaynağı indirmekten kaçınmak için kullanılır. kitaplık dosyası "bildirildi" ise, bildirilen dosyadaki işlevler kaynağa dahil edilmiş gibi kullanılabilir.
Lütfen dosyaların ne verdiğini açıklayın:
Mümkünse, o zaman basit bir şey.
Teşekkür ederim.
Bu dosyalardan (önceden MT4'te gömülü olan) bir işlevi kullanırken (çağırırken), danışmanın yanlış çalışması durumunda, kodda yaptığımız hatanın numarasını günlükte görebiliriz.
Örneğin, GetLastError() işlevini çağırırız:
Bu durumda, kodda bir hata yaptıysak veya harici parametreleri yanlış ayarladıysak, bu hatanın numarası logda gösterilecektir.
Örneğin, - 130.
Ve sayfadaki sayının kodunun çözülmesine bakabilirsiniz - https://book.mql4.com/ru/appendix/errors
Ve artık kodun tamamını kürek çekmemize gerek kalmayacak, çünkü hatanın tam olarak nerede yapıldığını bu numaradan zaten biliyoruz!
Bu f-I uygun mu?
Kullanım örneği: Fonksiyonun kendisini kodun en sonuna koyarız (BAŞLAT fonksiyonunun dışında) ve bir pozisyon açarken şunları kontrol ederiz:
Pozisyonlara değil, bekleyen emirlere ihtiyacınız varsa, f-th kullanabilirsiniz.
NumberOfOrders() işlevi.
Bu fonksiyon sipariş sayısını döndürür. Kontrol edilen siparişlerin listesini fonksiyon parametreleriyle sınırlayabilirsiniz:
sy - Araç adı. Bu parametreyi ayarlarsanız, fonksiyon sadece belirtilen enstrümanın siparişlerini kontrol edecektir. NULL, geçerli araç anlamına gelir ve "" (varsayılan) herhangi bir araç anlamına gelir.
op - bekleyen emir türü. Geçerli değerler: OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT, OP_SELLSTOP veya -1. Varsayılan değer -1, herhangi bir sipariş anlamına gelir.
mn - Sipariş Kimliği (MagicNumber). Varsayılan değer -1 - herhangi bir büyü.
https://www.mql5.com/en/forum/107476/page12
İpucu için çok teşekkür ederiz, bunu yapmaya çalıştık, ancak nedense çalışmıyor, lütfen kodda bir yerde bir hata olup olmadığına bakın:
Buradaki fikir, EA henüz herhangi bir emir açmadıysa (açık veya kapalı emir yoktur), o zaman sadece satın alma koşulundaki ilk koşul tetiklenir. Ve eğer danışman geçmişte sipariş açmışsa, o zaman bir sipariş açarken birinci + ikinci koşullar çalışmalıdır.
Belirttiğiniz linke baktım ExistOrders() işlevi daha uygun olabilir; ?
(ama dürüst olmak gerekirse, bunu söylemek mümkün değildi, görünüşe göre, beceri hala yeterli değil)
Fonksiyonu yanlış çağırdınız.
Bunu şöyle adlandırdınız: if (NumberOfPositions(NULL,Magic)> 1)
Ve şöyle olması gerekiyor:
Farkı hissedin ("-1"i kaçırdınız!) ve KODUNUZU DÜZELTİN.
Ve kontrol için grafikte yorumları görüntüleyebilirsiniz. Örneğin, bunun gibi (BAŞLAT işlevinin en başında)
İkinci koşulunuza gelince, ben ("daha fazla uzatmadan"), ikinci koşula göre pozisyonları açmak için başka bir sihir ve ayrı bir Open_Buy_2() işlevi ayarlardım!Ardından ikinci koşulun kodu şöyle görünür: