"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

 

İ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.

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
Makaleniz için teşekkürler.
 

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:4756
2011.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

[Silindi]  
Financialabs:

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:4756
2011.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?

Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений - Документация по MQL5
 
Alfff:

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.

 
senerzen:

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.

Teşekkürler, hata düzeltildi.
Get in touch with developers using Service Desk!
  • www.mql5.com
We therefore attach great importance to all user reports about issues in our programs and try to answer each one of them.
 
papaklass:
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ı başlatılmalıdır (bu durumda ZeroMemory işlevi kullanılarak yapılır, ancak bunu öğe öğe yapabilirsiniz), başlatma işlemi yapı bildirildikten sonra yapılmalıdır.
 
Automated-Trading:
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?

 
Yedelkin:

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:

   MqlTick my={0};