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
isCloseLastPosByStop() işlevi.
Bu işlev, durarak son konumu kapatmak için bayrağı döndürür. İşaret kaldırıldı - Doğru - StopLoss tetiklendi. Bayrak atlandı - Yanlış - pozisyon başka bir nedenle kapatıldı. Dikkate alınacak pozisyonların daha doğru seçimi harici parametreler tarafından belirlenir:
- sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer "" herhangi bir piyasa aracı anlamına gelir. NULL , geçerli enstrüman anlamına gelir.
- op - Ticaret işlemi, pozisyon türü. Geçerli değerler: OP_BUY , OP_SELL veya -1 . Varsayılan değer -1 , herhangi bir konum anlamına gelir.
- mn - Konum Kimliği, MagicNumber. Varsayılan değer -1 , herhangi bir tanımlayıcı anlamına gelir.
PS Ekli, isCloseLastPosByStop() işlevini test etmek için bir komut dosyasıdır.Çevrimiçi için OpenPosition() işlevi.
2008.05.20 04:47:41 !OBLD_EUR_S EURUSD,M30: uzman fonksiyon çağrılarına izin verilmez; 'stdlib'-'Hata Açıklaması'
Canlı EA'da OpenPosition() işlevi bağlandı, hata 4059
Hata 4059 , özelliğin test modunda kullanılamadığı anlamına gelir. Hata kimliği ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE. Aşağıdaki işlevler bir hata oluşturur: MarketInfo, MessageBox, SendFTP, SendMail, WindowIsVisible, WindowFind, WindowHandle.
NULL'u Symbol() olarak değiştirdi, kayboldu, sonra mesaj belirdi
2008.05.20 04:47:41 !OBLD_EUR_S EURUSD,M30: uzman fonksiyon çağrılarına izin verilmez; 'stdlib'-'Hata Açıklaması'
isCloseLastPosByTake() işlevi.
Bu fonksiyon, son pozisyonu al ile kapatmak için bayrağı döndürür. Bayrak kaldırıldı - Doğru - TakeProfit çalıştı. Bayrak atlandı - Yanlış - pozisyon başka bir nedenle kapatıldı. Dikkate alınacak pozisyonların daha doğru seçimi harici parametreler tarafından belirlenir:
- sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer "" herhangi bir piyasa aracı anlamına gelir. NULL , geçerli enstrüman anlamına gelir.
- op - Ticaret işlemi, pozisyon türü. Geçerli değerler: OP_BUY , OP_SELL veya -1 . Varsayılan değer -1 , herhangi bir konum anlamına gelir.
- mn - Konum Kimliği, MagicNumber. Varsayılan değer -1 , herhangi bir tanımlayıcı anlamına gelir.
not. Ekli, isCloseLastPosByTake() işlevini test etmek için bir komut dosyasıdır.isLossLastPos() işlevi.
Bu işlev, son kapatılan pozisyonun kârsızlık bayrağını döndürür. Bayrak kaldırıldı - Doğru - son pozisyon bir kayıpla kapatıldı. Bayrak atlandı - Yanlış - son pozisyon ya sıfırdan ya da kârla kapatıldı. İşlev, takasları ve komisyonu hesaba katmaz. Konum seçimi harici parametreler tarafından belirlenir:
- sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer "" herhangi bir piyasa aracı anlamına gelir. NULL , geçerli enstrüman anlamına gelir.
- op - Ticaret işlemi, pozisyon türü. Geçerli değerler: OP_BUY , OP_SELL veya -1 . Varsayılan değer -1 , herhangi bir konum anlamına gelir.
- mn - Konum Kimliği, MagicNumber. Varsayılan değer -1 , herhangi bir tanımlayıcı anlamına gelir.
PS Ekli, isLossLastPos() işlevini test etmek için bir komut dosyasıdır.isTradeToDay() işlevi.
Bu işlev, bugünün ticari bayrağını döndürür. Bayrak kaldırdı - Doğru - pozisyonlar bugün açıldı. Bayrak atlandı - Yanlış - bugün hiç pozisyon açılmadı. Dikkate alınacak pozisyonların seçimi harici parametreler tarafından belirlenir:
- sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer "" herhangi bir piyasa aracı anlamına gelir. NULL , geçerli enstrüman anlamına gelir.
- op - Ticaret işlemi, pozisyon türü. Geçerli değerler: OP_BUY , OP_SELL veya -1 . Varsayılan değer -1 , herhangi bir konum anlamına gelir.
- mn - Konum Kimliği, MagicNumber. Varsayılan değer -1 , herhangi bir tanımlayıcı anlamına gelir.
not. Ekli, isTradeToDay() işlevini test etmek için bir komut dosyasıdır.isCloseLastPosByStop() işlevi.
Bu işlev, durarak son konumu kapatmak için bayrağı döndürür. İşaret kaldırıldı - Doğru - StopLoss tetiklendi. Bayrak atlandı - Yanlış - pozisyon başka bir nedenle kapatıldı. Dikkate alınacak pozisyonların daha doğru seçimi harici parametreler tarafından belirlenir:
().Tünaydın . Kodu bu işlevle uygularken anlaşılmazlık ortaya çıktı. Bu işlevi şu şekilde uyguladım:
Bu noktaya kadar her şey yolunda gidiyor! Bayrak göründüğünde, istediğim gibi tüm AL pozisyonları kapatılır ve AL pozisyonları silinir! Ancak daha sonra uzman, giriş sinyallerine göre tekrar bekleyen emirler verir. Beklenildiği gibi.
Ancak bu siparişler hemen silinir! Görünüşe göre bayrak hala duruyor. Neden asılı? Ne de olsa, son pozisyonlar artık zararı durdurarak değil, zorla kapatılmıştı!
Böyle bir durumda nasıl olmalıyım? Böylece, bu algoritmayı kapatma komutunu yürüttükten sonra, uzman normal olarak diğer emirlerini verebilir mi?
Böyle bir durumda nasıl olmalıyım? Kapatma komutunun yerine getirilmesinden sonra, uzman normalde başka emirler verebilir mi?
Bu konunun tüm görev bağlamında ele alınması gerekir, çünkü bu sadece ayrı bir eylem değil, etkileşim ve belirli bir sırayla anlamına gelir. Bu nedenle, sorunu tam olarak tanımlayın. Kod gerekmez. Sadece görevi kelimelerle tanımlayın.
Isınma sorusu. Neden siparişleri silip tekrar yerleştirmeniz gerekiyor? Değiştirilmesi daha uygun bence.
Kar, zarar ve zararı durdurmaya göre dizilere ayrılmış emirler ve pozisyonlarım var. ve lim. ve benzeri. sebepler.
Bu özel durumda, stop ile açılan ve toplamda belirtilen karı elde ettiğim ALIŞ pozisyonları dizisini kapatıyorum. Ve kalan, işlenmemiş stop mevduatlarını siliyorum.
//------------------------------------------------ -------------------------------------------------- --
Şimdi yoruma bir fonksiyon ekledim - Comment (isCloseLastPosByStop());
İzliyorum. Başlangıçta işlev =0. İlk stop kaybından sonra Yorum (isCloseLastPosByStop()); bir değişir ve sonra - diğer pozisyonların zorla kapatılmasından sonra sıfıra dönmez, ancak bir kalmaya devam eder!