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
Herkese selam
Üzgünüm ama çok erken konuştum. RefreshRates() eklemek bir fark yaratıyor gibi görünse de, hala aynı sorunu yaşıyorum. Bazen bekleyen emirlerin ikisini de açar, bazen ikisinden sadece birini, bazen de hiçbirini açmaz. Bir siparişi veya her ikisini de açmadığında hala 130 hatası alıyorum, ancak ikisi de gerçekten açıldığında hata yok. Ayrıca, girişlerimin MODE_STOPLEVEL'in altında olduğu çiftlerde hiçbir zaman sipariş açmadığını ve program girişlerimi istendiği gibi ayarlamasına rağmen her zaman 130 hatası aldığımı fark ettim. Değerleri yazdırıyorum ve beklendiği gibi ayarlanmışlar. Bu yüzden OrderSend'imin neden gerçekten çalışmadığını anlamaya çalışıyorum.
Stoplevelin 5 olduğu EURUSD gibi bir paritede, genellikle her iki emri de gönderir, ancak her zaman değil. Ancak EURAUD gibi stoplevelin 10 olduğu bir paritede asla emir göndermez.
Ben de bu şekilde denedim, ama hiçbir fark yaratmadı:
Ve bunu yapsam bile, hiçbir fark yaratmaz:
Herkese yardımları için teşekkürler. Sonunda işe koyabildim. Tutarlı bir şekilde çalışmasını sağlamamın tek yolu, onu şu şekilde değiştirmekti:
Ayrıca, bekleyen emir etkinleştirilmeden önceki Pipmove seviyesinin de stop seviyesinden daha yüksek olması gerektiğini anladım. Yani şimdi her şey çalışıyor gibi görünüyor.. Teşekkürler
Herkese yardımları için teşekkürler. Sonunda işe koyabildim. Tutarlı bir şekilde çalışmasını sağlamamın tek yolu, onu şu şekilde değiştirmekti:
Ayrıca, bekleyen emir etkinleştirilmeden önceki Pipmove seviyesinin de stop seviyesinden daha yüksek olması gerektiğini anladım. Yani şimdi her şey çalışıyor gibi görünüyor.. Teşekkürler
Basit cevap, mevcut fiyata bu kadar yakın bekleyen emirler açmaya çalışmamaktır. 5 Puan genellikle yarım piptir
Cevap için teşekkürler. Hesaplamam aslında pip cinsindendir, bu nedenle bekleyen emirler en az 50 puandır ( mevcut fiyattan 5 pip uzakta), ancak onu durma seviyesinden en az 1 pip uzağa taşırsam işe yarıyor gibi görünüyor, ki bu 50 olan EURUSD'deki puanlar. Grafiğe sürükledikten sonra ilki hariç her iki ticareti de açıyormuş gibi görünüyor. Ama şimdilik bu konuda iyiyim. Kodum şimdi şöyle görünüyor:
Ayrı ama benzer bir sorunla karşılaştım. Bekleyen siparişlerden biri tetiklendiğinde, iki şeyden biri olabilir. Diğer bekleyen siparişin silindiği noktada TrailingStop'u tetikler. ya da bu ticaret bana karşı çıkarsa, ters yönde bir hedge açmalı. Kodu nasıl yazdığıma bağlı olarak, birden fazla hedge açacak veya hiç hedge açmayacak. Aşağıdaki ikisi de dahil olmak üzere her şeyi denedim:
Veya:
Bunun için ayrı bir for döngüsü kullanmalı mıyım? Teşekkür ederim
Herkese selam
Haftalarca uğraştım ve hala bir ilerleme kaydedemedim. Belirli koşullar altında EA'nın orijinal ticarette birden fazla hedge işlemi açması dışında her şey şu anda çalışıyor. Orijinal ticarette SL 11 pip ve Hedge ticaretinde SL 9 piptir. Bazen hedge ticareti, orijinal ticaret hala açıkken 9 pipte durdurulur. Daha sonra, orijinal ticaret hala açıkken ikinci bir riskten korunma ticareti ve hatta 3. ve 4. bir işlem açacaktır. Ben sadece hedge işlemlerinin miktarını bir ile sınırlamak istiyorum ve eğer durdurulursa, bekleyin ve orijinal ticarette ne olacağını görün.
Bu, aldığım sonuçların türü:
576 2015.01.15 11:39 dur satın al 29 0.48 1.16786 1.16616 0.00000 0,00 4834.24
577 2015.01.15 11:39 sat dur 30 0.48 1.16642 1.16812 0.00000 0,00 4834.24
578 2015.01.15 11:39 satmak 30 0.48 1.16642 1.16812 0.00000 0,00 4834.24
579 2015.01.15 11:39 silmek 29 0.48 1.16786 1.16616 0.00000 0,00 4834.24
580 2015.01.15 11:42 satın almak 31 1.44 1.16743 1.16653 0.00000 0,00 4834.24
581 2015.01.15 11:42 s/l 31 1.44 1.16653 1.16653 0.00000 -129.60 4704.64
582 2015.01.15 11:44 satın almak 32 1.44 1.16742 1.16652 0.00000 0,00 4704.64
583 2015.01.15 11:44 s/l 30 0.48 1.16812 1.16812 0.00000 -81.60 4623.04
584 2015.01.15 11:48 değiştirmek 32 1.44 1.16742 1.16893 0.00000 0,00 4623.04
Buystop ve sellstop emirleri (29 ve 30) olması gerektiği gibi açılır. Daha sonra fiyat düşer ve alış durdurma (29) silinirken satış emri (30) doldurulur. Ardından fiyat tekrar yükselir ve hedge(martingale) emri (31) tetiklenir (3*lot boyutu). Daha sonra fiyat tekrar düşer ve koruma (31) durdurulur, ancak 30 hala açık olduğu için başka bir korumayı (32) tetikler, vb. 32. emrin tetiklenmesini nasıl önleyebilirim? Teşekkür ederim
Herkese selam. Bunu çözmeye çalıştığım bir aydan fazla oldu ve programlamanın kodlamanın imkansız olduğunu düşünmeye başladım. Bu yüzden lütfen biri bunu onaylarsa, onu dinlendirip devam edebilirim. Yukarıdaki gönderide açıklandığı gibi hedge(martingale) emirlerinin sayısı için derin bir seviye belirlemek mümkün değil mi? Teşekkür ederim.
Şimdiye kadar sahip olduğum en iyi şey:
Bunu başarmanın farklı yolları vardır.
Hedge açıldığında, müşteri terminalinin Global Değişkenini oluşturun.
Ana ticaretin bilet numarasını içeren bir isim verin.
Ona, söz konusu bilet numarası için bir riskten korunma işleminin açıldığını gösteren bir bayrak görevi gören bir değer veya gerekirse bir riskten korunma sayımı verin.
Bir çit açmadan önce GV'yi kontrol edin.
Hedge ve ana ticaret farklı lot büyüklüklerine sahiptir.
Bir hedge açmadan önce, ana işlemin açık zamanından daha sonra bir OrderOpenTime() ile ilgili lot boyutunda karşıt bir emir açılıp açılmadığını görmek için açık emirleri ve geçmişini kontrol edin.
Bunu başarmanın farklı yolları vardır.
Hedge açıldığında, müşteri terminalinin Global Değişkenini oluşturun.
Ana ticaretin bilet numarasını içeren bir isim verin.
Ona, o bilet numarası için bir riskten korunma işleminin açıldığını gösteren bir bayrak görevi gören bir değer veya gerekirse bir riskten korunma sayımı verin.
Bir çit açmadan önce GV'yi kontrol edin.
Hedge ve ana ticaret farklı lot büyüklüklerine sahiptir.
Bir hedge açmadan önce, ana işlemin açık zamanından daha sonra bir OrderOpenTime() ile ilgili lot boyutunda karşıt bir emir açılıp açılmadığını görmek için açık emirleri ve geçmişini kontrol edin.
Bu yüzden bunu Global Değişken aracılığıyla başarmaya çalıştım, ancak bu kodu eklediğimden beri, hiçbir şekilde bir riskten korunma işlemi açmıyor. Bence sorun, EA'nın GlobalVariableCheck yapıyor olması, ancak henüz hiçbiri oluşturulmadığı için devam etmeyecek. Ancak doğru bilet numarasını seçip yazdırır. Belki de yanlış yapıyorum. İşte ilgili kod: