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
UPD: Rashid yukarıda bir kütüphane dosyası gönderdi, sorunumu çözdü. Standart kütüphanede bir hata olması üzücü. Şimdi kütüphaneyi değiştirmeden doğrudan EA'da bazı değişiklikler yapmanın mümkün olup olmadığını görmek için karşılaştırmayı inceleyeceğim, böylece her şey çalışır
Bu düzenlemeler zaten standart kütüphanede var. Yazıyı okuyacak olanlara ancak şimdi cevap vermeye karar verdim.
Güzel, gerçekten güzel bir tane..
Herkese iyi günler!
MQL5 programlama dilini incelemeye devam ediyorum. Benim için yararlı olan bilgileri bulmak için neredeyse tüm siteyi araştırdım. Sitede bulunan bilgilerin çoğu, zaten temel bir programlama anlayışına sahip kişilere yöneliktir.
Ve burada! Uzman Danışmanımı anlamama ve geliştirmeme yardımcı olan başka bir HARİKA makale buldum! Yazarın bu yazı dizisini yazmaya devam etmemesi ve kendini sadece 2012 ile sınırlaması üzücü. Ama yine de, bu adama BÜYÜK saygı duyuyorum ve ona tüm yeni başlayanlar adına aynı BÜYÜK TEŞEKKÜRÜ söylüyorum!
Saygılarımla, Vladimir.
Merhaba, Bu çok yararlı gönderi için teşekkürler ve lütfen bunu çözmeme yardım edin. MT5'te yeniyim ve EA'lar oluşturmayı öğreniyorum, bu yüzden Ctrade.Buy'ı çalıştırmak için örnek kodu kopyaladım ancak geriye dönük test başarısız oldu. İşte daha fazla bilgi:
1) Hesap: NZD olarak temel para birimi olan canlı bir hesap
2) Geriye dönük test için MetaEditor ayarları:
3) Kod: https://www.mql5.com/tr/articles/481 adresinden kopyalanmıştır:
//+------------------------------------------------------------------+
//| demo.mq5 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include<Trade\Trade.mqh>
//--- object for performing trade operations
CTrade trade;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- set MagicNumber for your orders identification
int MagicNumber=123456;
trade.SetExpertMagicNumber(MagicNumber);
//--- set available slippage in points when buying/selling
int deviation=10;
trade.SetDeviationInPoints(deviation);
//--- order execution mode
trade.SetTypeFilling(ORDER_FILLING_RETURN);
//--- logging mode: it would be better not to declare this method at all, the class will set the best mode on its own
trade.LogLevel(1);
//--- what function is to be used for trading: true - OrderSendAsync(), false - OrderSend()
trade.SetAsyncMode(true);
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
BuySample1();
}
//--- Buy sample
//+------------------------------------------------------------------+
//| Buying a specified volume at the current symbol |
//+------------------------------------------------------------------+
void BuySample1()
{
//--- 1. example of buying at the current symbol
if(!trade.Buy(0.1))
{
//--- failure message
Print("Buy() method failed. Return code=",trade.ResultRetcode(),
". Code description: ",trade.ResultRetcodeDescription());
}
else
{
Print("Buy() method executed successfully. Return code=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
//---
}
4) Hata günlüğü (Lütfen yalnızca EUR/USD üzerinde test ettiğimi unutmayın):
GJ 0 19:36:44.410 127.0.0.1 oturum açma (yapı 1730)
HH 0 19:36:44.420 Ağ 38520 bayt hesap bilgisi yüklendi
JO 0 19:36:44.420 Ağ 1482 bayt test cihazı parametresi yüklendi
QE 0 19:36:44.420 Ağ 188 bayt giriş parametresi yüklendi
FR 0 19:36:44.421 Ağ 443 baytlık sembol listesi yüklendi
IF 0 19:36:44.421 Test uzmanı dosyası eklendi: Experts\demo.ex5. 46684 bayt yüklendi
QH 0 19:36:44.433 Test cihazı ilk depozito 10000.00 NZD, kaldıraç 1:100
JN 0 19:36:44.437 Test cihazı başarıyla başlatıldı
ES 0 19:36:44.437 Ağ 46 Kb toplam başlatma verisi alındı
PP 0 19:36:44.437 Test Cihazı Intel Core i7-4510U @ 2.00GHz, 8103 MB
RJ 0 19:36:44.799 Semboller EURUSD: senkronize edilecek sembol
HR 0 19:36:44.800 Semboller EURUSD: sembol senkronize edildi, 3624 bayt sembol bilgisi alındı
NJ 0 19:36:44.800 Geçmiş EURUSD: geçmiş senkronizasyonu başladı
GO 0 19:36:44.856 Geçmiş EURUSD: 0:00:00.000'da senkronize etmek için 27 bayt geçmiş verisi yükleyin
RQ 0 19:36:44.856 Geçmiş EURUSD: geçmiş 2012.01.01 ile 2017.11.15 arasında senkronize edildi
EF 0 19:36:44.993 Geçmiş EURUSD,Günlük: geçmiş önbelleği 1010 çubuk için ayrıldı ve 2014.01.01 00:00 ile 2014.12.31 00:00 arasında 312 çubuk içeriyor
ND 0 19:36:44.993 Geçmiş EURUSD,Günlük: geçmiş 2014.01.01 00:00'dan başlıyor
OL 0 19:36:44.996 Test Cihazı EURUSD,Günlük (HalifaxPlus-Live): her tik üretiliyor
GN 0 19:36:44.996 Tester EURUSD,Daily: Experts\demo.ex5'in 2015.01.01 00:00'dan 2017.11.15 00:00'a kadar testi başladı
CK 0 19:36:56.288 Semboller NZDUSD: senkronize edilecek sembol
IS 0 19:36:56.288 Semboller NZDUSD: sembol senkronize edildi, 3624 bayt sembol bilgisi alındı
JL 0 19:36:56.288 Geçmiş NZDUSD: geçmiş senkronizasyonu başladı
HJ 0 19:36:56.575 Geçmiş NZDUSD: 0:00:00.078'de senkronize etmek için 14 Kb geçmiş verisi yükleyin
LS 0 19:36:56.575 Geçmiş NZDUSD: geçmiş 2013.01.01 ile 2017.11.15 arasında senkronize edildi
CO 0 19:36:56.579 EURNZD sembolleri: senkronize edilecek sembol
OJ 0 19:36:56.580 Semboller EURNZD: sembol senkronize edildi, 3624 bayt sembol bilgisi alındı
DL 0 19:36:56.580 Geçmiş EURNZD: geçmiş senkronizasyonu başlatıldı
MK 0 19:36:56.656 Geçmiş EURNZD: 0:00:00.000'da senkronize etmek için 27 bayt geçmiş verisi yükle
OD 0 19:36:56.656 Geçmiş EURNZD: geçmiş 2013.01.01 ile 2017.11.15 arasında senkronize edildi
IN 0 19:36:56.665 İşlem 2015.01.02 03:00:00 piyasa alış 0.10 EURUSD (1.20538 / 1.20549 / 1.20538)
PE 0 19:36:56.665 İşlemler 2015.01.02 03:00:00 anlaşma #2 1.20549'da 0.10 EURUSD satın al tamamlandı(sipariş #2'ye göre)
FH 0 19:36:56.666 İşlem 2015.01.02 03:00:00 anlaşma gerçekleştirildi [#2 1.20549'dan 0.10 EURUSD satın al]
OG 0 19:36:56.666 İşlem 2015.01.02 03:00:00 1.20549'da 0.10 alış emri gerçekleştirildi [#2 1.20549'da 0.10 EURUSD alış]
FO 0 19:36:56.670 demo (EURUSD,D1) 2015.01.02 03:00:00 Buy() yöntemi başarıyla çalıştırıldı. Dönüş kodu=10009 (1.20549'da yapıldı)
NM 2 19:37:15.823 Geçmiş NZDUSD 2016.09.21 23:01:00: bozuk geçmiş tespit edildi (s:-73370, o:73433, h:+48, l:-123, c:-117 -- tv:63, rv:11250111)
JF 2 19:37:15.823 Geçmiş NZDUSD 2016.09.21, kötü konteyner bulundu, yeniden senkronize edilmeli
LQ 2 19:37:16.106 Tanımsız işlevde test cihazı geçmiş hatası 9
OH 2 19:37:16.106 Test cihazı '20 NZDUSD' hatası ile test aralığının %0'ında durdu
Lütfen bana sorunun ne olduğunu ve bunu nasıl çözebileceğimi söyleyin?
Merhaba, Bu çok yararlı gönderi için teşekkürler ve lütfen bunu çözmeme yardım edin. MT5'te yeniyim ve EA'lar oluşturmayı öğreniyorum, bu yüzden Ctrade.Buy'ı çalıştırmak için örnek kodu kopyaladım ancak geriye dönük test başarısız oldu. İşte daha fazla bilgi:
1) Hesap: NZD olarak temel para birimi olan canlı bir hesap
2) Geriye dönük test için MetaEditor ayarları:
3) Kod: https://www.mql5.com/tr/articles/481 adresinden kopyalanmıştır:
//+------------------------------------------------------------------+
//| demo.mq5 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include<Trade\Trade.mqh>
//--- object for performing trade operations
CTrade trade;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- set MagicNumber for your orders identification
int MagicNumber=123456;
trade.SetExpertMagicNumber(MagicNumber);
//--- set available slippage in points when buying/selling
int deviation=10;
trade.SetDeviationInPoints(deviation);
//--- order execution mode
trade.SetTypeFilling(ORDER_FILLING_RETURN);
//--- logging mode: it would be better not to declare this method at all, the class will set the best mode on its own
trade.LogLevel(1);
//--- what function is to be used for trading: true - OrderSendAsync(), false - OrderSend()
trade.SetAsyncMode(true);
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
BuySample1();
}
//--- Buy sample
//+------------------------------------------------------------------+
//| Buying a specified volume at the current symbol |
//+------------------------------------------------------------------+
void BuySample1()
{
//--- 1. example of buying at the current symbol
if(!trade.Buy(0.1))
{
//--- failure message
Print("Buy() method failed. Return code=",trade.ResultRetcode(),
". Code description: ",trade.ResultRetcodeDescription());
}
else
{
Print("Buy() method executed successfully. Return code=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
//---
}
4) Hata günlüğü (Lütfen yalnızca EUR/USD üzerinde test ettiğimi unutmayın):
GJ 0 19:36:44.410 127.0.0.1 oturum açma (yapı 1730)
HH 0 19:36:44.420 Ağ 38520 bayt hesap bilgisi yüklendi
JO 0 19:36:44.420 Ağ 1482 bayt test cihazı parametresi yüklendi
QE 0 19:36:44.420 Ağ 188 bayt giriş parametresi yüklendi
FR 0 19:36:44.421 Ağ 443 baytlık sembol listesi yüklendi
IF 0 19:36:44.421 Test uzmanı dosyası eklendi: Experts\demo.ex5. 46684 bayt yüklendi
QH 0 19:36:44.433 Test cihazı ilk depozito 10000.00 NZD, kaldıraç 1:100
JN 0 19:36:44.437 Test cihazı başarıyla başlatıldı
ES 0 19:36:44.437 Ağ 46 Kb toplam başlatma verisi alındı
PP 0 19:36:44.437 Test Cihazı Intel Core i7-4510U @ 2.00GHz, 8103 MB
RJ 0 19:36:44.799 Semboller EURUSD: senkronize edilecek sembol
HR 0 19:36:44.800 Semboller EURUSD: sembol senkronize edildi, 3624 bayt sembol bilgisi alındı
NJ 0 19:36:44.800 Geçmiş EURUSD: geçmiş senkronizasyonu başladı
GO 0 19:36:44.856 Geçmiş EURUSD: 0:00:00.000'da senkronize etmek için 27 bayt geçmiş verisi yükleyin
RQ 0 19:36:44.856 Geçmiş EURUSD: geçmiş 2012.01.01 ile 2017.11.15 arasında senkronize edildi
EF 0 19:36:44.993 Geçmiş EURUSD,Günlük: geçmiş önbelleği 1010 çubuk için ayrıldı ve 2014.01.01 00:00 ile 2014.12.31 00:00 arasında 312 çubuk içeriyor
ND 0 19:36:44.993 Geçmiş EURUSD,Günlük: geçmiş 2014.01.01 00:00'dan başlıyor
OL 0 19:36:44.996 Test Cihazı EURUSD,Günlük (HalifaxPlus-Live): her tik üretiliyor
GN 0 19:36:44.996 Tester EURUSD,Daily: Experts\demo.ex5'in 2015.01.01 00:00'dan 2017.11.15 00:00'a kadar testi başladı
CK 0 19:36:56.288 Semboller NZDUSD: senkronize edilecek sembol
IS 0 19:36:56.288 Semboller NZDUSD: sembol senkronize edildi, 3624 bayt sembol bilgisi alındı
JL 0 19:36:56.288 Geçmiş NZDUSD: geçmiş senkronizasyonu başladı
HJ 0 19:36:56.575 Geçmiş NZDUSD: 0:00:00.078'de senkronize etmek için 14 Kb geçmiş verisi yükleyin
LS 0 19:36:56.575 Geçmiş NZDUSD: geçmiş 2013.01.01 ile 2017.11.15 arasında senkronize edildi
CO 0 19:36:56.579 EURNZD sembolleri: senkronize edilecek sembol
OJ 0 19:36:56.580 Semboller EURNZD: sembol senkronize edildi, 3624 bayt sembol bilgisi alındı
DL 0 19:36:56.580 Geçmiş EURNZD: geçmiş senkronizasyonu başlatıldı
MK 0 19:36:56.656 Geçmiş EURNZD: 0:00:00.000'da senkronize etmek için 27 bayt geçmiş verisi yükle
OD 0 19:36:56.656 Geçmiş EURNZD: geçmiş 2013.01.01 ile 2017.11.15 arasında senkronize edildi
IN 0 19:36:56.665 İşlem 2015.01.02 03:00:00 piyasa alış 0.10 EURUSD (1.20538 / 1.20549 / 1.20538)
PE 0 19:36:56.665 İşlemler 2015.01.02 03:00:00 anlaşma #2 1.20549'da 0.10 EURUSD satın al tamamlandı(sipariş #2'ye göre)
FH 0 19:36:56.666 İşlem 2015.01.02 03:00:00 anlaşma gerçekleştirildi [#2 1.20549'dan 0.10 EURUSD satın al]
OG 0 19:36:56.666 İşlem 2015.01.02 03:00:00 1.20549'da 0.10 alış emri gerçekleştirildi [#2 1.20549'da 0.10 EURUSD alış]
FO 0 19:36:56.670 demo (EURUSD,D1) 2015.01.02 03:00:00 Buy() yöntemi başarıyla çalıştırıldı. Dönüş kodu=10009 (1.20549'da yapıldı)
NM 2 19:37:15.823 Geçmiş NZDUSD 2016.09.21 23:01:00: bozuk geçmiş tespit edildi (s:-73370, o:73433, h:+48, l:-123, c:-117 -- tv:63, rv:11250111)
JF 2 19:37:15.823 Geçmiş NZDUSD 2016.09.21, kötü konteyner bulundu, yeniden senkronize edilmeli
LQ 2 19:37:16.106 Tanımsız işlevde test cihazı geçmiş hatası 9
OH 2 19:37:16.106 Test cihazı '20 NZDUSD' hatası ile test aralığının %0'ında durdu
Lütfen bana sorunun ne olduğunu ve bunu nasıl çözebileceğimi söyleyin?
Her yerde limit ve stop emirleri açarken makalede
Acaba makalenin kendilerine yardımcı olduğunu yazanlar makaledeki kodu eklediler mi?