"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 13
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
MQL5 programlamasındaki tüm değişikliklerle birlikte, bu adım adım kodun güncellenmiş bir sürümüne ihtiyaç var, bu kodu kopyalarsam artık derlenmiyor - en son değişiklikleri içeren bir sürüm var mı - çok teşekkürler.
Merhaba Michael,
Yorumunuz için teşekkürler. Önerinizi inceleyeceğim ve kodlarda herhangi bir güncelleme gerekiyorsa, yakında kullanıma sunulacaktır.
neden çıktı hata kodu: 10030?
Yardım edin, burada kimse var mı?
neden çıktı hata kodu: 10030?
Öncelikle makale için teşekkürler, mql5 programlamaya başlamamda bana yardımcı oluyor.
Kodunuzu denedim ve OnInit() üzerinde amacını anlamadığım bir kod var:
//--- 4 yerine 5 veya 3 basamaklı fiyatlara sahip döviz çiftlerini ele alalım
STP = StopLoss;
TKP = TakeProfit;
if(_Digits==5 || _Digits==3)
{
STP = STP*10;
TKP = TKP*10;
}
Bu kısım, kar alma ve zararı durdurma piblerinin değerlerini değiştirerek giriş değerleriniz ile gerçekte kullanılanlar arasında bir farka neden olur.
Ancak, if içindeki iki satırı kaldırırsam, emri sunucuya gönderirken genellikle 10016 (geçersiz stoplar) hatası alıyorum. İlk emir verme denemesi iyi gidiyor ve 10009'u alıyorum, ancak sonraki zamanların çoğunda 10016 alıyorum. EA'da hata ayıkladım ve tüm zarar durdurma ve kar alma işlemleri, zarar durdurma 30 veya 300 ve kar alma 100 veya 1000 pibs mevcut fiyatın üstünde veya altında olma farkıyla iyi görünüyor.
STP ve TKP 10 ile çarpılmadığında sunucunun bana 10016 hatası vermesinin nedenini bulamıyorum.
Hatanın neden olduğunu veya _Digits 5 veya 3 olduğunda 10 ile çarpmanın amacını bana açıklayabilecek biri var mı?
Yardımlarınız için teşekkürler.
Yardım edin, burada kimse var mı?
neden çıktı hata kodu: 10030?
Merhaba,
Hatayı nasıl aldığınızı bize bildirebilir misiniz?
eshelios.sr:
Öncelikle makale için teşekkürler, mql5 programlamaya başlamamda bana yardımcı oluyor.
Kodunuzu denedim ve OnInit() üzerinde amacını anlamadığım bir kod var:
//--- 4 yerine 5 veya 3 basamaklı fiyatlara sahip döviz çiftlerini ele alalım
STP = StopLoss;
TKP = TakeProfit;
if(_Digits==5 || _Digits==3)
{
STP = STP*10;
TKP = TKP*10;
}
Bu kısım, kar al ve zararı durdur piblerinin değerlerini değiştirerek giriş değerleriniz ile gerçekte kullanılanlar arasında bir farka neden olur.
Ancak, if içindeki iki satırı kaldırırsam, emri sunucuya gönderirken genellikle 10016 (geçersiz stoplar) hatası alıyorum. İlk emir verme denemesi iyi gidiyor ve 10009'u alıyorum, ancak sonraki zamanların çoğunda 10016 alıyorum. EA'da hata ayıkladım ve tüm zarar durdurma ve kar alma işlemleri, zarar durdurma 30 veya 300 ve kar alma 100 veya 1000 pibs mevcut fiyatın üstünde veya altında olma farkıyla iyi görünüyor.
STP ve TKP 10 ile çarpılmadığında sunucunun bana 10016 hatası vermesinin nedenini bulamıyorum.
Hatanın neden olduğunu veya _Digits 5 veya 3 olduğunda 10 ile çarpmanın amacını bana açıklayabilecek biri var mı?
Yardımlarınız için teşekkürler.
Merhaba,
Öncelikle açıklamanızdan, bu kod satırlarını kaldırdığınızda hata alıyorsunuz ve stoploss/takeprofit değerlerini 10 ile çarpmadığınızda hata alıyorsunuz? Bu, bu kod satırlarının çok önemli olduğunu açıkladığına inanıyorum.
Makaleye geri dönersek, 5 ondalık basamaklı (0.XXXXX) veya 3 ondalık basamaklı (0.XXX) döviz çiftlerine sahip bir grafik kullanıyorsanız, bu kod satırlarının gerekli olduğunu açıkladı.
Bu yüzden burada EA'mızın tüm brokerlerle çok iyi çalıştığından emin olmak istiyoruz.Digits veya Digits(), mevcut grafik sembolünün fiyatının doğruluğunu belirleyen ondalık basamak sayısını döndürür.5 basamaklı veya 3 basamaklı bir fiyat grafiği için, hem Zararı Durdur hem de Kâr Al'ı 10 ile çarparız.
Aşağıdaki örneklere bakınız:
5 - Ondalık Basamaklı fiyat
3 - Ondalık Basamaklı fiyat
Umarım bu sorunuza cevap olmuştur.
Merhaba,
Hatayı nasıl aldığınızı bize bildirebilir misiniz?
1. adım: bu örnek kodunuzu indirin.
adım 2: mql5'te derleyin.
3. adım: mt5'te eurusd 1mgrafiğini açın, ardından "otomatik ticaret" i tıklayın
4. adım: 223,224 vb. kod satırında kesme sembolünü ayarlayın...
adım 5: mt5'te hata ayıklamayı başlat düğmesine tıklayın, ardından bu hatayı gösterin.
1. adım: bu örnek kodu indirin.
adım 2: mql5'te derleyin.
adım 3: mt5'te eurusd 1mgrafiğini açın, ardından "otomatik ticaret" i tıklayın
4. adım: 223,224 vb. kod satırında kesme sembolünü ayarlayın...
5. adım: mt5'te hata ayıklamayı başlat düğmesine tıklayın, ardından bu hatayı gösterin.
Merhaba,
Adımlarınızı paylaştığınız için teşekkürler. Sizi koda geri götürebilirsem,
if(mresult.retcode==10009 || mresult.retcode==10008) //Request is completed or order placed
{
Alert("A Buy order has been successfully placed with Ticket#:",mresult.order,"!!");
}
else
{
Alert("The Buy order request could not be completed -error:",GetLastError()); // line 223
ResetLastError(); // line 224
return;
}
Bildiğim kadarıyla, kod yapması gerekeni yaptı. Hatayı aldınız çünkü vermeye çalıştığınız emir BAŞARILI DEĞİLDİ ve 223. satırın yapması gereken de buydu. Hatanın ne anlama geldiğini öğrenmek için lütfen bunu okuyun - https://www.mql5.com/tr/docs/constants/errorswarnings/enum_trade_return_codes - (Aslında, 10030 Geçersizsipariş doldur matürü anlamına gelir).
Sipariş doldurma tipinin ne olduğunu anlamak için -ORDER_FILLING_FOK -
mrequest.type_filling = ORDER_FILLING_FOK; // Order execution type ( line 213 )
anlamına gelir, lütfen https://www.mql5.com/tr/docs/constants/tradingconstants/orderproperties#enum_order_type_filling adresini okuyun
Umarım bu sorunuzu yanıtlamıştır.
Merhaba Samuel,
Kodu indirdim, kurdum ve çalıştırdım ve çoğunlukla kriterleri karşılayan her mumda alış ve satış emirleri açtığını fark ettim (zaman dilimi olarak H1 kullanıyorum).
Hata ayıklama yapmadım ve kodların bir kısmının tetiklenmediğini fark ettim. EA'yı indirilebilen kodla düzgün bir şekilde çalıştırabiliyor musunuz?