[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 1126
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
Kod doğru değil. İlk olarak, start() işlevi int türündeyse, bir tamsayı değeri döndürmesi gerekir. Dönüşte sadece bir şartla iade edilir. Ve koşul karşılanmazsa, Başlat işlevi terminale ne dönmelidir?
Ayrıca, kontrolü çok karmaşık hale getirdiniz - bunu yapmak daha iyidir: bugün açılan ve kapanan siparişlerin bir sayacını yapıyoruz. Bugünkü siparişlerin sayısı sıfırdan büyükse, ticaret yapmayız. Aksi takdirde, ticarete izin verilir.
int void olarak değiştirildi... yardımcı olmadı
Dürüst olmak gerekirse, bir sipariş sayacının nasıl yapıldığını tam olarak anlamıyorum ve aynı zamanda bir kerelik günlük ticaret seçeneğini etkinleştirme / devre dışı bırakma özelliğini koruyorum ....
.... Düşündüm ve düşündüm: Bunu deneyeceğim
if(CalculateCurrentOrders(Symbol())==0 && Orders==0)
{
CheckForOpen();
if (WaitForNewDay) {Siparişler++;}
dönüş;
}
Sayacı sıfırla:
if(WaitForNewDay)CheckForNewDay();
geçersiz CheckForNewDay()
{
tm=iTime(Symbol(), PERIOD_D1 ,0);
if (bt!=tm) {bt=tm; siparişler=0;}
}
Genel olarak, kaçtığı şeye geri döndü)))
int void olarak değiştirildi... yardımcı olmadı
Dürüst olmak gerekirse, bir sipariş sayacının nasıl yapıldığını tam olarak anlamıyorum ve aynı zamanda bir kerelik günlük ticaret seçeneğini etkinleştirme / devre dışı bırakma özelliğini koruyorum ....
-------------
Genel olarak, kaçtığım şeye geri döndüm)))
Değerli forum kullanıcıları kod konusunda yardımcı olur. Durum şu ki, yatay bir çizgiyi manuel olarak çizip hareket ettiriyorum ve fiyat ona dokunduğunda bir sinyal tetikleniyor.
Fiyat çizgiye dokundu - bir sinyal var. Bu temiz. Kodun nesi var?
Üzgünüm, görevi yanlış ayarladım)) Bunu yapacak gerçek koda ihtiyacımız var.
Anlamanız gereken ilk şey, bir çizginin bir nesne olduğudur. Program kodu nesneleri adlarına göre ayırır. Kodun içine satırın adını yazmanız ve ardından satırı grafiğe bıraktığınızda, özelliklerini girmeniz ve adı kodda yazılan adla değiştirmeniz gerekir. Sadece bu durumda kod, bu nesneden alınan okumaların işlenmesi gerektiğini anlayacaktır.
Kodun yanında, hattın bulunduğu fiyatı talep etmeniz gerekir. İstek, double ObjectGet (dize adı, int prop_id) işlevi aracılığıyla yapılır. Ad yerine satırınızın adını belirtmeniz ve prop_id yerine OBJPROP_PRICE1 belirtmeniz gerekir. Böylece, bu satırın ayarlandığı fiyatı programlı olarak alabilirsiniz. Bu değeri alın ve bir değişkende saklayın. kodun devamında, bu satırın fiyatına dokunmak için bir çek düzenlemeniz gerekir. Örneğin: Bir önceki tikte fiyat, çizginin bulunduğu seviyenin altındaysa ve aynı zamanda mevcut tikte bu seviyeden büyük veya ona eşitse, bir dokunma meydana geldi.
Alexander, kodlu bir şey senin için işe yaramazsa, o zaman burada yardımcı olacaklar. Kodun sizin yerinize yapılması gerekiyorsa, buraya gidebilirsiniz https://www.mql5.com/en/job .
Bunu yaptı, ancak Kapat[0]==n olduğunda sinyal bir nedenle çalışmıyor. Nasıl düzeltirsin?
Eh, koda bakılırsa, bir gösterge yapmışsın. Bu nedenle, kodun bu bölümünün performansını kontrol etmek için oturmanız ve bir sonraki onay işaretinin çizgiye dokunmaya tenezzül etmesini beklemeniz gerekecektir. Bu kod bölümünde hata ayıklamak için bir komut dosyası oluşturmayı kullanmak daha iyidir - anında sonuç verecektir.
Emin olmanız gereken ilk şey, kodun gerçekten satırınızı görmesidir. Nasıl yapılır? Fiyatını talep etmeniz ve ekranda bir uyarı görüntülemeniz gerekir. Yaparız.
Komut dosyası yeniden derlendiğine göre, herhangi bir grafiği açın ve üzerine yatay bir çizgi çizin. Sonra onun özelliklerini giriyoruz ve kodda satıra "1" ismini atadığımız için satırın özelliklerine bu ismi de koyuyoruz:
Tamam'a basıyoruz. Senaryoyu grafiğe atıyoruz ve uyarının bize doğru fiyatı döndürdüğünden emin oluyoruz. Çizgiyi grafik boyunca başka bir yere taşırız ve komut dosyasını tekrar grafiğin üzerine atarız - çizginin konumunu ellerimizle değiştirirsek, kodumuzun hala onu görüp tanıdığından emin oluruz.
Peki, aynı ruhla devam edin.
Göstergeyi, görselleştirmenin etkin olduğu bir test cihazı aracılığıyla test ediyorum. Bir uyarıyı tetiklemek için değerlerin normalleştirilmesi gerektiğinden kodu biraz düzelttim. Ancak mevcut çubuktaki satırı yeniden düzenlerseniz, diyelim ki saatlik bir saat, o zaman uyarı sadece 1 kez satır geçerli çubuk boyunca hareket ettiğinde çalışır, uyarı çalışmaz. Başka bir bar beklemek zorundasın.