Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 815
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
Sadece uygun olup olmadığını anlayamıyorum..
Burada anlaşılması zor olan birçok şey var. Özellikle işlem sırası ile uğraşırken bazı durumlarda saçmalıklar olduğunu gördüm.
Benim düşünceme göre, ticaret kontrolünüzü organize etmek en iyisidir: ticaret emirlerinizi hatırlayın ve emirlerin ve pozisyonların kompozisyonunu basitçe onların varlığına göre kontrol edin. listeler.Örneğin, bir pozisyon açarken, önce resmi olarak bir piyasa emri açılır ve daha sonra bir pozisyona dönüşür. Ancak bu makineli tüfek serisi işlemler sırasında, pozisyonun zaten açık olduğu ancak emrin henüz kapatılmadığı bir durum söz konusudur. Bunların aynı olay olduğu, ancak işlemlerin parça bazında düzenlendiği, sırayla verildiği ve bu yaklaşımla bir piyasa emrinin pozisyona dönüşümünü doğru bir şekilde yansıtmak prensipte imkansızdır.
Kuşlardan bahsetmişken.
Bu sıfır maliyetli işlemlerde piyasa emirlerinin verildiğini biliyor muydunuz?
Burada bir kişi örneğin 1.2000, Sl= 1.1000, Tr=1.3000 fiyatından bir Buy pozisyonu açmak istiyor.
Bu işlemi gerçekleştirirken, görünen ilk şey, aşağıdaki verilerle birlikte bir piyasa emrini yansıtan bir işlemdir:
Sl= 1.1000, Тр=1.3000, yani. verilen sayılarla ve Fiyat = 0 (sıfıra eşittir). Sıfır fiyatla böyle bir piyasa emri :) Ve ne istersen onu düşün.
Rahatlık için. MqlTradeTransaction öğesinden küçük bir işlev çağrılır. İçinde, sınıfın elemanları numaralandırılarak, istenilen eleman bulunur. Ve zaten bu öğe için, yararlı bir şey yapan sınıf işlevlerinden biri çağrılır.
Lütfen tam olarak ne almak istediğinizi daha ayrıntılı olarak açıklayın. Neden OnTradeTransaction'dan bir şey arıyorsunuz?
Önce sadece kelimeler, sonra doğru yönde düzelteceğiz.
Uzun (zaman içinde) bir algoritma uygulayan özel Abc() işlevi yürütülür.
Bu işlevin yürütülmesi sırasında, örneğin - Ticaret, Zamanlayıcı, vb. olaylar gerçekleşir.
Abc() işlevinin yürütülmesini tamamlamadan bu olayların gerçekleştiğini öğrenmek mümkün müdür?
Numara. Bir fonksiyon sayarken, diğer her şey atlanır.
Bu, Sleep() işlevine benzer - yani, işleviniz çok uzun süre sayarken davranışı Sleep'e benzer - diğer tüm olaylar atlanır.
...
OnTradeTransaction'da kesinlikle her şey şeffaftır.
Birincisi: MqlTradeTransaction yapısı, ticari işlem türüne ( ENUM_TRADE_TRANSACTION_TYPE ) bağlı olarak farklı şekilde doldurulur.
buradan okuyun: Ticari İşlem Yapısı (MqlTradeTransaction))
İkincisi: sonuçları görselleştirmek için OrderSendAsync örneğinden bu kod bloğunu çıkarabilirsiniz.
ve çizelgeye eklenecek olan danışmana ekleyin. Ardından pozisyonları manuel olarak açıp kapatabilir ve "Uzmanlar" sekmesinde sonuçların çıktılarına bakabilirsiniz.
Numara. Bir fonksiyon sayarken, diğer her şey atlanır.
Bu, Sleep() işlevine benzer - yani, işleviniz çok uzun süre sayarken davranışı Sleep'e benzer - diğer tüm olaylar atlanır.
Teşekkür ederim. Talihsiz.
Ve o zaman PC'nin kaynağı nasıl etkin bir şekilde kullanılır? Tekrar döngülü kod ve parametrelerin periyodik olarak yoklanması?
OnTradeTransaction'da kesinlikle her şey şeffaftır.
Cevap için teşekkürler, temelde yaptığım şey buydu. Şimdiye kadar, anlamaktan daha fazla soru.
Lütfen tam olarak ne almak istediğinizi daha ayrıntılı olarak açıklayın. Neden OnTradeTransaction'dan bir şey arıyorsunuz?
İlk başta sadece kelimeler, sonra doğru yönde düzelteceğiz.
Sorunun OnTradeTransaction'da olmadığını anladım. Bakın nasıl bir korku yaşıyorum:
İşte kod.
Ve işte yürütmenin sonucu
2017.09.22 10:30:12 SBRF-12.17 sembolüne göre konum seçilemedi
2017.09.22 10:30:12 Hacim 0.0 Hacim 0.0
2. ve 3. satırları değiştiriyorum. yani kod şimdi böyle
Bu sonucu alıyorum.
2017.09.22 10:30:12 SBRF-12.17 sembolüne göre konum seçilemedi
2017.09.22 10:30:12 SBRF-3.18 Cilt 1.0 SBRF-3.18 Cilt 1.0
Her iki durumda da derleyici herhangi bir uyarı vermez . 80 satır ve test ayarları için uzman kodunu ekledim. Komisyoncu BCS. Sürüm 1730.
Sorunun OnTradeTransaction'da olmadığını anladım. Bakın nasıl bir dehşet yaşıyorum:
İşte kod.
Ve işte yürütmenin sonucu
2017.09.22 10:30:12 SBRF-12.17 sembolüne göre konum seçilemedi
2017.09.22 10:30:12 Hacim 0.0 Hacim 0.0
2. ve 3. satırları değiştiriyorum. yani kod şimdi böyle
Bu sonucu alıyorum.
2017.09.22 10:30:12 SBRF-12.17 sembolüne göre konum seçilemedi
2017.09.22 10:30:12 SBRF-3.18 Cilt 1.0 SBRF-3.18 Cilt 1.0
Her iki durumda da derleyici herhangi bir uyarı vermez . 80 satır ve test ayarları için uzman kodunu ekledim. Komisyoncu BCS. Sürüm 1730.
Hata, 1 satırda ( Print ) 1'den fazla pozisyon hakkında bilgi almaya çalışıyorsunuz gibi görünüyor.
Herhangi bir zamanda, yalnızca 1 ( seçili ) konum hakkında bilgi mevcuttur :
- ikinci durumda, her şey doğrudur, çünkü son Seçim, kontrol etmediğiniz true değerini döndürür.
- ve ilk durumda : son Seçim, sizin de kontrol etmediğiniz false değerini döndürür ve sonuç tahmin edilemez.
..... açıkçası Select==false önceki Select==true'nun bilgilerini sıfırlar