[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 564
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
İyi akşamlar! nasıl anlayacağımı söyle
Mevcut bekleyen emirler ve açık pozisyonlar hariç, cari hesapta ve mevcut piyasa ortamında belirtilen emir türü için gerekli teminat tutarı.
Mevcut işlevi yaklaşık olarak tahmin edebilir misiniz?
Bu işlevi çok yerine kullanmaya başladım
Oldukça sık OrderSend hatası 131 yazıyor - yanlış birim. 10.000'lik bir başlangıç deposu ile ilk lot 1'dir. Ancak, bir şeyler çalışmıyor..
Bazen denemek Yalnızca son iki satın alma pozisyonunu kapatmak için kapanış satın alma pozisyonu bloğunu yeniden yapın , ancak işe yaramıyor . önerebilir misin gibi blok değiştir?
Bu işlevi çok yerine kullanmaya başladım
Oldukça sık OrderSend hatası 131 yazıyor - yanlış birim. 10.000'lik bir başlangıç deposu ile ilk lot 1'dir. Ancak, bir şeyler çalışmıyor..
Bunu kullanıyorum. Kendiniz için ince ayar yapın ve deneyin.(HesapBalance()'i AccountFreeMargin() olarak değiştirin, LotsDigits değişkeninizi koyun) )
Bu kodda neyin yanlış olabileceğini söyleyebilir misiniz? Bu, takip eden bir durdurmaya benzer, ancak test ederken, değiştirildiğinde 1 hatası verir. Sipariş neden değiştirilmiyor?
Ayrıca, bu hatayı düzelttiğimde (şimdiye kadar başarısız), derleme sırasında Expert Advisor'ın ana kodundan yazdırma işlevine bir hata döndürmeye başladı, yeterli alıntı olmadığını ve orada her şeyin doğru ayarlandığını yazıyor ve Bu hatayı düzeltmek için alıntıyı kaldırmanız ve yeniden alıntı yapmanız gerekir. .
bool takip durdur()Bu kodda neyin yanlış olabileceğini söyleyebilir misiniz? Bu, takip eden bir durdurmaya benzer, ancak test ederken, değiştirildiğinde 1 hatası verir. Sipariş neden değiştirilmiyor?
Ayrıca, bu hatayı düzelttiğimde (şimdiye kadar başarısız), derleme sırasında Expert Advisor'ın ana kodundan yazdırma işlevine bir hata döndürmeye başladı, yeterli alıntı olmadığını ve orada her şeyin doğru ayarlandığını yazıyor ve Bu hatayı düzeltmek için alıntıyı kaldırmanız ve yeniden alıntı yapmanız gerekir. .
bool takip durdur()Hata 1 bir hata değildir. bu, siparişin zaten değiştirildiği anlamına gelir. OrderModify()'dan önce değişiklik parametrelerini kontrol edin ( sipariş stoploss stoploss , (ND(Bid-StopLevel*Point) veya ND(Ask+StopLevel*Point) ) ile eşit değilse, ardından OrderModify() , aksi takdirde -- return).
Hata 1 bir hata değildir. bu, siparişin zaten değiştirildiği anlamına gelir. OrderModify()'dan önce değişiklik parametrelerini kontrol edin (sipariş stoploss stoploss , (ND(Bid-StopLevel*Point) veya ND(Ask+StopLevel*Point) ) ile eşit değilse, ardından OrderModify() , aksi takdirde -- return).
Yani bu kontrol daha yüksek: if ((Bid-OrderStopLoss())>(StopLevel*Point)) veya ben sizi yanlış anladım
keskin bir hareket üzerinde test ettiğimde, orada görsel olarak bile, stop emirlerinin ve ifadelerin eşit olmadığı açıkça görülüyor.
Hazırlıksız, siparişleri kapatma işlevinde, siparişe göre bir sipariş seçmeniz gerekiyor OrderSelect(Ticket, SELECT_BY_TICKET) , Lts değişkeninde olmayan lot sayısını belirtin, çünkü her seferinde yeniden hesaplanır, ancak OrderLots kullanın () Ve bir şey daha - sırasıyla 0. çubuk üzerinde çalışmaya devam ederseniz, bir çubuktaki kriterler kaybolabilir, siparişleriniz istediğiniz yerde açılmayabilir. Gösterge parametrelerinde çubuğu 0'dan 1'e, 1'den 2'ye değiştirin
Cevap için çok teşekkürler), ama burada kriterler yine gerektiği gibi çalışmıyor, ekranda görebilirsiniz (siparişler ( ) stokastiğin tüm kesişimleri için çalışmıyor ve yine de 0 barda çalışmak istiyorum , ancak bunun için, anladığım kadarıyla, ek koşula ihtiyacınız var: mevcut çubukta bir sipariş açtıktan sonra, çubuk kapanana kadar hiçbir şey yapmayın, ancak nasıl uygulanacağını bilmiyorum (belki zaman serisi dizileri aracılığıyla ??? ) Söyle bana.
Yani bu kontrol daha yüksek: if ((Bid-OrderStopLoss())>(StopLevel*Point)) veya ben sizi yanlış anladım
keskin bir hareket üzerinde test ettiğimde, orada görsel olarak bile, stop emirlerinin ve ifadelerin eşit olmadığı açıkça görülüyor.
Sorun şudur: Bu işlevde OrderSelect() bulunmadığından, sipariş döngüsünde bir yerde kullanılmış gibi görünüyor. Bu döngü, sıfırdan sonuncuya bir arama düzenlerse, o zaman ilk sıranın değiştirilmesinden sonra veya örneğin, bu işaret üzerinde bir emir kapatılmışsa, OrderSelect() işlevi bir sonraki çağrıldığında, sipariş emir değişiklikleri ve fonksiyon, halihazırda değiştirilmiş olan bir emri değiştirmek için seçebilir. Bu nedenle, emrin stop loss değerinin OrderModify() fonksiyonuna ilettiğimiz değere eşit olup olmadığını kontrol etmemiz gerekiyor.