Merhaba arkadaşlar expertime benim belirlediğim teminat seviyesi şirketin yüzde olarak teminat seviyesi altına düşerse yeni işlem açmayı durdursun istiyorum. Bunu nasıl yapabilirim. yardımcı olabilir misiniz.
Bu şekilde aklıma geldi ancak experti silmesini istemiyorum. Teminat seviyesi Aktif olduğunda işlem açmaya devam etsin istiyorum. Bunu nasıl yapabilirim. Bilgisi olan var mı ?
İkinci satırda double dan sonra = olmaz hata verir.
Hocam experti kaldırmadan işlemleri durdurma konusunda biraz araştırdım. Ancak hata alıyorum hata ve kodlar aşağıdadır;
double TeminatSeviyesi = 500; // Belirlediğiniz teminat seviyesi double MarjinLevel = AccountInfoDouble(ACCOUNT_MARGIN_LEVEL); if (MarjinLevel <= TeminatSeviyesi ) { bool result = TradeAllowed(false); if (!result) { Print("Yeni işlemler durdurulamadı: ", GetLastError()); } }
Bu yaklaşım doğru mu hocam? Doğruysa bu hatanın çözümü nasıl olmalıdır?
Hocam experti kaldırmadan işlemleri durdurma konusunda biraz araştırdım. Ancak hata alıyorum hata ve kodlar aşağıdadır;
Bu yaklaşım doğru mu hocam? Doğruysa bu hatanın çözümü nasıl olmalıdır?
Derleme hataları bunlar
Hocam #include <Trade\AccountInfo.mqh> kütüphanesini de cağırdım ona bağlı olduğu için ama yine de derlemede bu hata çıktı çözemiyorum. Nasıl çözüleceği ile ile ilgili de herhangi bir kaynak bulamadım.
En son bahsettiğim konuda ilerlersen bu sorunda mql tarafından çoktan çözüldüğünü görürsün
MoneyFixedMargin.mqh e bakarsan
virtual double CheckOpenLong(double price,double sl);
virtual double CheckOpenShort(double price,double sl);
iki ch3eck var alım satımda bu checkleri aşmadan expertin alım yada satım yapamaz
bu sınıfta marjin yüzdesi ilk seferde belirleyen fonksiyon
void Percent(double percent) { m_percent=percent; }
kısaca ontickle bunu sorgulamaya gerek yok işleme girmeden önce para durumu kontrol edilmeli para yeterli ise alınmalı
OnTick, serverden gelen her değişimde aktif olur programın bu kısmında onticke eklediğin şey PC ni kasar çok kaynak harcar
burada sadece stop los yada iz sürücüyü kontrol etmen yeterli
En son bahsettiğim konuda ilerlersen bu sorunda mql tarafından çoktan çözüldüğünü görürsün
MoneyFixedMargin.mqh e bakarsan
virtual double CheckOpenLong(double price,double sl);
virtual double CheckOpenShort(double price,double sl);
iki ch3eck var alım satımda bu checkleri aşmadan expertin alım yada satım yapamaz
bu sınıfta marjin yüzdesi ilk seferde belirleyen fonksiyon
void Percent(double percent) { m_percent=percent; }
kısaca ontickle bunu sorgulamaya gerek yok işleme girmeden önce para durumu kontrol edilmeli para yeterli ise alınmalı
OnTick, serverden gelen her değişimde aktif olur programın bu kısmında onticke eklediğin şey PC ni kasar çok kaynak harcar
burada sadece stop los yada iz sürücüyü kontrol etmen yeterli
Hocam şu kodlar ile denerken çözdüm şuanlık gerek kalmadı ama söylediğiniz kütüphaneye bakkıyorum ileride yardımcı olur diye çok teşekkür ederim.
input double MinMarjinSeviyesi = 1000; // belirlediğiniz minimum marjin seviyesi double MevcutMarjinSeviyesi; void OnTick() { int total = PositionsTotal(); for (int i = 0; i < total; i++) { MevcutMarjinSeviyesi = AccountInfoDouble(ACCOUNT_MARGIN_LEVEL); // Mevcut marjin seviyesi belirlenen minimum seviyenin altındaysa, yeni işlem açmamak için programı durdur if (MevcutMarjinSeviyesi < MinMarjinSeviyesi) { Alert("Marjin Seviyesi Minimum Seviyenin Altına Düştü!"); return; } } }
Bu kodlar ile işlemleri kapatmadan marjin level altına geldiğinde işlem açmayı bırakıyor üstüme çıkınca devam ediyor işlemlere belki ihtiyacı olan olur diyerek paylaştım
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Merhaba arkadaşlar expertime benim belirlediğim teminat seviyesi şirketin yüzde olarak teminat seviyesi altına düşerse yeni işlem açmayı durdursun istiyorum. Bunu nasıl yapabilirim. yardımcı olabilir misiniz.
Bu şekilde aklıma geldi ancak experti silmesini istemiyorum. Teminat seviyesi Aktif olduğunda işlem açmaya devam etsin istiyorum. Bunu nasıl yapabilirim. Bilgisi olan var mı ?