MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1179
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Böyle bir istekte bulunduğumda:
Bu sonucu alıyorum:
2020.06.17 13:49:53.270 2020.01.02 06:50:00 Sembol EURUSD_i Basamaklar 5 Nokta 1e-05
Böyle bir istekte bulunduğumda:
Bu sonucu alıyorum:
2020.06.17 13:51:58.787 2020.01.02 06:45:00 Sembol EURUSD_i Basamak 0 Puan 0.0
Aynı zamanda şunu da belirtmek isterim ki Yazdır işlevini eklemezsem hiçbir hata oluşmaz, düzen değiştirilmeye bile çalışmaz. Sanki CTrade siparişimi görmüyor.
Sembolü kontrol edin ve sihirli sayı başarısız olur:
Sonuç:
2020.06.17 14:37:38.147 2020.01.02 06:50:00 Symbol Magic 0 Bilet 2
Sihir, euro dolar sembolü olan 12345 olmalıdır.
Neden sembolü ve sihri alamıyorum?
Eğer çizgi:
değişmek
ve sihirli sayıya göre çeki kaldırın, o zaman fiyatlarda sorun var
2020.06.17 01:38:24.136 2020.01.02 07:40:00 sipariş #2 değiştirilemedi al stop 0.1 EURUSD_i at 1.12086 sl: 1.12023 tp: 1.12275 -> 1.00000, sl: 1.00000 tp: 1.00000 [Geçersiz fiyat]
2020.06.17 01:38:24.136 2020.01.02 07:40:00 CTrade::OrderSend: 1.00000'de #2'yi değiştirin (sl: 1.00000 tp: 1.00000) [geçersiz fiyat]
2020.06.17 01:38:24.136 2020.01.02 07:40:00 BUY STOP değişikliği başarısız oldu! Sonuç Retcode: 10015, Retcode açıklaması: geçersiz fiyat
Ben zaten kafamı kırdım. başka bir danışmandaki aynı kodun bir patlama ile çalışmasına rağmen.
Neyi yanlış yapıyorum?
CSymbolInfo sınıfının bir nesnesini yanlış başlattınız (veya hiç başlatmadınız).
böyle bir satırınız yoksa asymbol.Name(Symbol()) ekleyin.
Öyleyse, neler olup bittiğini Name(string symbol) işlevinde hata ayıklayın.
Refresh() işlevinde m_digits alanlarının doldurulması vb.
ps Eklediklerinize bakılırsa, kesinlikle başlatılmamış bir sembolünüz var.
Yeni bir onay işareti gelene kadar düğmeler hareket etmez. Benim gözlerimle gördüğüm bu. Fiyat değişir değişmez düğmeler hareket etti.
Her ne kadar bugün, yeni bir kene üzerinde bile, hiçbir şeyi değiştirmememe rağmen, düğmeler yeniden çizilmeyi bıraktı. Sadece arka plan hareket eder.Açıklıyorum - dediğiniz gibi, OnTick'teki koordinatları değiştiriyorsunuz ve düğmelerin aslında NEXT tick üzerinde hareket ettiğini belirtiyorsunuz. Neyden sonra? koordinatları değiştirdiğiniz yerden mi, yoksa Mesih'in doğumundan mı?
CSymbolInfo sınıfının bir nesnesini yanlış başlattınız (veya hiç başlatmadınız).
böyle bir satırınız yoksa asymbol.Name(Symbol()) ekleyin.
Öyleyse, ne olduğunu Name(string symbol) işlevinde hata ayıklayın.
Refresh() işlevinde m_digits alanlarının doldurulması vb.
ps Eklediklerinize bakılırsa, kesinlikle başlatılmamış bir sembolünüz var.
Bu bir başlatma mı? Derlerken aşağıdaki bilgileri alıyorum
'Ticaret.mq5 için panel' Ticaret paneli.mq5 1 1
'Ticaret.mqh' ticaret.mqh 1 1
'Object.mqh' Object.mqh 1 1
'StdLibErr.mqh' StdLibErr.mqh 1 1
'Sipariş Bilgileri.mqh' OrderInfo.mqh 1 1
'HistoryOrderInfo.mqh' HistoryOrderInfo.mqh 1 1
'PozisyonBilgisi.mqh' PozisyonBilgisi.mqh 1 1
'DealInfo.mqh' DealInfo.mqh 1 1
' SymbolInfo .mqh' SymbolInfo.mqh 1 1
oluşturulan kod 1 1
0 hata, 0 uyarı, 3192 msn geçti 1 1
Bir Buy Stop emri açtıktan sonra, tüm emirleri yeniden hesaplarım, bir açık emir seçerim ve sembol ile sihirli sayı arasında bir eşleşme olup olmadığını kontrol ederim:
Bu aşamada hiçbir şey olmuyor, zaten yukarıda yazdığım gibi, asymbol.Name() işlevi nedense açık bir siparişin sembolünü döndürmez, aorder.Magic() işlevi 0 değerini döndürür (sihirim 121345 olmasına rağmen) , asymbol.TickSize() işlevi 0 değerini döndürür. Yani kontrol geçmez ve buna göre siparişle daha fazla çalışma sonlandırılır. Lütfen " Ad(dize sembolü) işlevinde hata ayıklama ne olduğunu" açıklayın, bu ifadeyi tam olarak anlamıyorum. Ne eklenmeli ve nereye?
Açıklıyorum - dediğiniz gibi, OnTick'teki koordinatları değiştiriyorsunuz ve düğmelerin aslında NEXT tick üzerinde hareket ettiğini belirtiyorsunuz. Neyden sonra? koordinatları değiştirdiğiniz yerden mi, yoksa Mesih'in doğumundan mı?
Bu aşamada hiçbir şey olmuyor, zaten yukarıda yazdığım gibi, asymbol.Name() işlevi nedense açık bir siparişin sembolünü döndürmez, aorder.Magic() işlevi 0 değerini döndürür (sihirim 121345 olmasına rağmen) , asymbol.TickSize() işlevi 0 değerini döndürür. Yani, kontrol geçmez ve buna göre sipariş durur. Lütfen " Ad(dize sembolü) işlevinde hata ayıklama ne olduğunu" açıklayın, bu ifadeyi tam olarak anlamıyorum. Ne eklenmeli ve nereye?
Sihirli 0'a bakılırsa emrin indeksinde/biletinde bir hata olabilir. Emir yapısına erişildiği anda yanlış emrin verileri oraya kaydedilir. Seçim döngüsünde, bir sonraki sayı, ihtiyacınız olana değil, son sipariş seçimine gidebilir. Son sipariş seçiminin verileri sipariş yapısından döndürülür.
kodun en üstünde satırlarım var
Bu bir başlatma mı? Derlerken aşağıdaki bilgileri alıyorum
'Ticaret.mq5 için panel' Ticaret paneli.mq5 1 1
'Ticaret.mqh' ticaret.mqh 1 1
'Object.mqh' Object.mqh 1 1
'StdLibErr.mqh' StdLibErr.mqh 1 1
'Sipariş Bilgileri.mqh' OrderInfo.mqh 1 1
'HistoryOrderInfo.mqh' HistoryOrderInfo.mqh 1 1
'PozisyonBilgisi.mqh' PozisyonBilgisi.mqh 1 1
'DealInfo.mqh' DealInfo.mqh 1 1
'SymbolInfo.mqh' SymbolInfo.mqh 1 1
oluşturulan kod 1 1
0 hata, 0 uyarı, 3192 msn geçti 1 1
Bir Buy Stop emri açtıktan sonra, tüm emirleri yeniden hesaplarım, bir açık emir seçerim ve sembol ile sihirli sayı arasında bir eşleşme olup olmadığını kontrol ederim:
Bu aşamada hiçbir şey olmuyor, zaten yukarıda yazdığım gibi, asymbol.Name() işlevi nedense açık bir siparişin sembolünü döndürmez, aorder.Magic() işlevi 0 değerini döndürür (sihirim 121345 olmasına rağmen) , asymbol.TickSize() işlevi 0 değerini döndürür. Yani kontrol geçmez ve buna göre siparişle daha fazla çalışma sonlandırılır. Lütfen " Ad(dize sembolü) işlevinde hata ayıklama ne olduğunu" açıklayın, bu ifadeyi tam olarak anlamıyorum. Ne eklenmeli ve nereye?
Kahretsin, neden anlamadığın bir şeyi kullanıyorsun (ya güçlü bir bavulsa)))
Ve yazdıklarını okumayı düşünmüyorsun bile
böyle bir satırınız yoksa asymbol.Name( Symbol() ) ekleyin.
ps Ayrıca başlatmanın ne olduğunu açıklamak istedim ama görünüşe göre faydasız olacakSihirli 0'a bakılırsa emrin indeksinde/biletinde bir hata olabilir. Emir yapısına erişildiği anda yanlış emrin verileri oraya kaydedilir. Seçim döngüsünde, bir sonraki sayı, ihtiyacınız olana değil, son sipariş seçimine gidebilir. Son sipariş seçiminin verileri sipariş yapısından döndürülür.
Tünaydın!
Lütfen basit bir sorunu çözmeme yardım edin.
Boşluk sayacı. 10 puandan fazla olan boşlukları saymak istiyorum.
"Gap" değişkeni sıfırlanır. nedenini anlamıyorum. Henüz denemedim. Araya giren döngüler ve statik - yardımcı olmuyor. Döngülerin yanlış yazıldığından şüpheleniyorum.
Tünaydın!
Lütfen basit bir sorunu çözmeme yardım edin.
Boşluk sayacı. 10 puandan fazla olan boşlukları saymak istiyorum.
"Gap" değişkeni sıfırlanır. nedenini anlamıyorum. Henüz denemedim. Araya giren döngüler ve statik - yardımcı olmuyor. Döngülerin yanlış yazıldığından şüpheleniyorum.
Boşluk değişkeni, başlatma işlevinin kapsamındadır - ve her yeni onay işaretiyle sıfıra yeniden başlatılır
Tünaydın!
Lütfen basit bir sorunu çözmeme yardım edin.
Boşluk sayacı. 10 puandan fazla olan boşlukları saymak istiyorum.
"Gap" değişkeni sıfırlanır. nedenini anlamıyorum. Henüz denemedim. Araya giren döngüler ve statik - yardımcı olmuyor. Döngülerin yanlış yazıldığından şüpheleniyorum.