Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 81
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
Program sunucuya iki özdeş istek gönderdiği için konum tersine çevrilir. Program sunucuya iki özdeş istek gönderir, çünkü kodu daha önce gönderilen bir isteğin varlığını kontrol etmeyi sağlamaz (ve ayrıca bu isteğin sunucuda işlenmesinin sonucunu kontrol etmeyi sağlamaz).
Yedelkin şunu yazıyor: kodunun daha önce gönderilmiş bir isteğin varlığını kontrol etmeyi sağlamadığını. Bu hangi işlevi kontrol ediyor lütfen söyler misiniz?
Herkesin kodun doğruluğu konusunda kendi anlayışı vardır. Bu nedenle, "doğru" kodun sonunda sizin tarafınızdan yazılması gerekecektir. Ve başka bir ipucu olarak, aşağıdaki kodun doğru şekilde çalışıp çalışmadığını deneyin (sentRequest bayrağının şematik kullanımı):
Herkesin kodun doğruluğu konusunda kendi anlayışı vardır. Bu nedenle, "doğru" kodun sonunda sizin tarafınızdan yazılması gerekecektir. Ve başka bir ipucu olarak, aşağıdaki kodun doğru şekilde çalışıp çalışmadığını deneyin (sentRequest bayrağının şematik kullanımı):
Çok teşekkürler! Deniyorum...
Sonuç aşağıdaki gibidir: kod, uzun bir pozisyonu doğru bir şekilde kapatır ve kısa bir pozisyon açmaz... Ama! Uzun bir pozisyonu yeniden açarken, uzman artık pozisyonu şartlı olarak kapatmaz. Uzman penceresinde her zaman mesajlar vardır:
Bu kod sadece 1 kez çalışıyorsa Expert Advisor bünyesinde nasıl kullanılır?
oldiol : При повторном открытии лонга, эксперт не закрывает больше позу по условию. В окне эксперта всё время идут сообщения: Как же использовать этот код в теле эксперта, если он работает только 1 раз)?
Bu konuda, her şey oldukça basit olmalıdır. Şematik kodda, açık pozisyon bir Alış pozisyonu değilse (kodun son satırı) sentRequest bayrağı sıfıra ayarlanmalıdır. Açık pozisyon olmadığı veya açık pozisyonun Alış pozisyonu olmadığı durumlarda kodunuzdaki bu bayrağın neden sıfırlanmadığını görün.
Yaşasın! Kazanılan))) Kaldırıldı lse if( sentRequest ) sentRequest= false ; Ve bloğun önüne if( PositionsTotal()==0 ) sentRequest=false; yazdım. Yardımlarınız için Yedelkin'e derin şükranlarımı sunarım, BAŞARILAR SİZE!
oldiol : Uzun bir pozisyonu yeniden açarken, EA artık pozisyonu şartlı olarak kapatmaz. Uzman penceresinde her zaman mesajlar vardır: Bu kod sadece 1 kez çalışıyorsa bir uzmanın gövdesinde nasıl kullanılır? Kusura bakmayın benim hatam... Kodda bir koşul daha var
if(PositionSelect(_Symbol)==true) // açık pozisyon var
{
POZİSYON KAPATMA BLOK
} // ... Bu yüzden
e lse if( sentRequest ) sentRequest= false ;// sonraki parantezden sonra yerleştirilir ve her şey BÜYÜK çalışır. Yedelkin TEŞEKKÜR EDERİM!