"Yeni Başlayanlar için MQL5’te Uzman Danışman Yazmak İçin Adım Adım Açıklamalı Kılavuz" makalesi için tartışma - sayfa 6
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 günler!
Şu anda bu makalenin örneğinde Uzman Danışmanların nasıl yazılacağını öğreniyorum ve aşağıdaki sorunla karşılaştım - bir işlem için istek göndermeye çalışırken 10014 hatası alıyorum - yanlış hacim. SYMBOL_VOLUME_MAX işlemi için izin verilen maksimum hacmi kontrol ettim - 0 geri alıyorum. Ancak aynı zamanda manuel anlaşmalar normal şekilde açılıyor.
Bana neyi yanlış yaptığımı veya nereye bakacağımı söyleyebilir misiniz? Makalede ekli olan Uzman Danışman kodunu kullanıyorum.
Teşekkür ederim.
Merhaba,
kod harika görünüyor ama denediğimde bu hatayı alıyorum
2011.11.13 23:39:58 2011.11.01 14:20:00 Alert: The Sell order request could not be completed -error:47562011.11.13 23:39:58 2011.11.01 14:20:00 failed instant sell 1.00 EURUSD at 1.36833 sl: 1.37133 tp: 1.35833 [Invalid request]
Hiçbir işlem gerçekleştirilmiyor.
Biri düzeltmeye yardımcı olabilir mi?
Teşekkürler
F
Merhaba,
kod harika görünüyor ama denediğimde bu hatayı alıyorum
2011.11.13 23:39:58 2011.11.01 14:20:00 Alert: The Sell order request could not be completed -error:47562011.11.13 23:39:58 2011.11.01 14:20:00 failed instant sell 1.00 EURUSD at 1.36833 sl: 1.37133 tp: 1.35833 [Invalid request]
Hiçbir işlem gerçekleştirilmemiştir.
Biri düzeltmeye yardım edebilir mi?
Teşekkürler
F
Aynı soruyu ben de sordum ama kimse cevap vermedi.
Ben buldum.
Bu bir hata. Bir satır kod eklemeniz gerekiyor
ZeroMemory(mrequest);
bu satır mrequest.action=... mrequest.price=... vb. satırlardan önce olmalıdır.
Merhaba.
Detaylı ve anlaşılır rehber için çok teşekkür ederim.
Bir sorunum var. Program derleniyor, ancak bir istek oluşturmak için ilk denemede aşağıdaki hata görünüyor: "Satış emri belirleme isteği başarısız oldu - hata kodu:4756"
Belgelerde hiçbir şey bulamadım. Bu konuda ne yapabileceğimi veya nerede bilgi bulabileceğimi söyleyebilir misiniz?
Bir sorunum var. Program derleniyor, ancak bir istek oluşturmaya yönelik ilk denemede aşağıdaki hata görüntüleniyor: "Satış emri belirleme isteği başarısız oldu - hata kodu:4756"
Belgelerde hiçbir şey bulamadım. Bana bu konuda ne yapılabileceğini veya bilgiyi nerede bulabileceğimi söyleyebilir misiniz?
Düzeltildi, Uzman Danışmanın güncellenmiş sürümünü indirin.
Sorun mrequest yapısındaydı, ZeroMemory işlevi kullanılarak önceden sıfırlanmalıdır. "mrequest.action=TRADE_ACTION_DEAL;" (s. 199 ve 245) satırlarından önce "ZeroMemory(mrequest);" eklemelisiniz.
Aynı soruyu ben de sordum ama kimse cevap vermedi.
Onu buldum.
Bu bir hata. Bir kod satırı eklemeniz gerekir
ZeroMemory(mrequest);
bu satır mrequest.action=... mrequest.price=... vb. satırlardan önce olmalıdır.
Bunu yapmak, yani istek yapısını istekten önce sıfırlamak her zaman gerekli midir?
Bir istek göndermeden önce, yapının tüm alanları ilklendirilmelidir (bu durumda ZeroMemory işlevi kullanılarak yapılır, ancak bunu öğe öğe yapabilirsiniz), ilklendirme yapı bildirildikten sonra yapılmalıdır.
Referans Kılavuzunda böyle mi yazıyor? (Şu anda kontrol etme şansım yok).
Programın global seviyesinde bir yapı tipi değişkeni bir kez bildirmek, bir kez ilklendirmek ve ZeroMemory fonksiyonunu kullanma sorusuna tekrar dönmemek yeterli mi?
El Kitabı bu konuda bir şey söylüyor mu? (Şu anda kontrol etme şansım yok)
Herhangi bir değişken beyan edildiğinde sıfırlanmaya zorlanmaz. Tüm değişkenleri kullanmadan önce temizlemesi/ataması gereken kişi programcının kendisidir.
Sıfırlanmamış (veya eksik) değişkenler (özellikle yapılar) kullanmak programlamada çok yaygın bir hatadır.
Yapı tipindeki bir değişkeni programın global seviyesinde bir kez bildirmenin, bir kez ilklendirmenin ve ZeroMemory fonksiyonunu kullanma sorusuna tekrar dönmemenin yeterli olduğu ortaya çıktı.
Değişkenleri global seviyeye getirerek başlatma ile savaşmak yerine (gereksiz ve daha tehlikeli) değişkenleri doğru şekilde başlatmak daha iyidir.
Kendinize "neden birinin benim için değişkenleri ve özellikle karmaşık yapıları başlatacağını düşünüyorum" sorusunu sormak çok kolaydır.
Yapıları bildirirken uygunsuz ZeroMemory olmadan sıfırlamak çok kullanışlıdır: