danışman
// MQL4&5-code #include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006 #ifdef __MQL5__ #define Bid ( SymbolInfoDouble ( _Symbol , SYMBOL_BID )) #define Ask ( SymbolInfoDouble ( _Symbol , SYMBOL_ASK )) #endif // __MQL5__ // Idea - https://www.mql5.com/ru/code/7464 #property strict input int Shift = 3 ; input int Limit = 18 ; input double Lots = 0.1 ; int PriceToInteger( const double Price ) { return (( int )(Price / _Point + 0.1 )); } void OnTick () { static int PrevBid = PriceToInteger( Bid ); static int PrevAsk = PriceToInteger( Ask ); const int IntBid = PriceToInteger( Bid ); const int IntAsk = PriceToInteger( Ask ); const bool TradeTime = ( TimeCurrent () % ( 24 * 60 * 60 ) < D'1970.01.01 23:50' ); // exclude swaps if (TradeTime && (IntAsk - IntBid < Limit)) { if ((IntBid - PrevBid >= Shift)) OrderSend ( _Symbol , OP_SELL , Lots, Bid , 0 , 0 , 0 ); if (PrevAsk - IntAsk >= Shift) OrderSend ( _Symbol , OP_BUY , Lots, Ask , 0 , 0 , 0 ); } PrevBid = IntBid; PrevAsk = IntAsk; for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--) if ( OrderSelect (i, SELECT_BY_POS ) && ((!TradeTime) || ( OrderProfit () > 0 ) || (( OrderType () == OP_BUY ) && (PriceToInteger( OrderOpenPrice ()) - IntBid >= Limit)) || (( OrderType () == OP_SELL ) && (IntAsk - PriceToInteger( OrderOpenPrice ()) >= Limit)))) OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 0 ); }
Sonuçlar
MT4 raporu
sembol | EURUSD (Euro vs USD) | ||||
Dönem | 1 Dakika (M1) 2017.04.10 00:00 - 2017.04.14 20:58 (2017.04.10 - 2017.04.16) | ||||
modeli | Tüm onaylar (mevcut en düşük tüm zaman dilimlerine dayalı en doğru yöntem) | ||||
Seçenekler | vardiya=3; sınır=18; lot=0.1; | ||||
Tarihteki barlar | 7292 | Simüle keneler | 1865515 | simülasyon kalitesi | %99,00 |
Grafik Uyuşmazlığı Hataları | 0 | ||||
İlk para yatırma | 100000.00 | Yayılmış | değişken | ||
Net kazanç | -10863.90 | Toplam kar | 2528.70 | Toplam kayıp | -13392.60 |
karlılık | 0.19 | kazanma beklentisi | -0.49 | ||
Mutlak Düşüş | 10864.70 | Maksimum düşüş | 10864,70 (% 10,86) | göreceli düşüş | %10.86 (10864.70) |
Toplam işlemler | 21954 | Kısa pozisyonlar (% kazandı) | 12016 (%68.60) | Uzun pozisyonlar (% kazandı) | 9938 (%67.03) |
Karlı işlemler (tümünün yüzdesi) | 14904 (%67.89) | İşlemleri kaybetme (tümünün yüzdesi) | 7050 (%32.11) | ||
En büyük | karlı ticaret | 3.00 | ticaret kaybetmek | -4.40 | |
Orta | karlı ticaret | 0.17 | ticaret kaybetmek | -1.90 | |
En yüksek miktar | sürekli kazanç (kar) | 155 (46.60) | sürekli kayıplar (kayıp) | 115 (-210.10) | |
Maks. | sürekli kar (kazanç sayısı) | 46.60 (155) | sürekli kayıp (kayıp sayısı) | -210.10 (115) | |
Ortalama | sürekli kazanç | 5 | sürekli kayıp | 2 |
MT5 raporu
Strateji Test Kullanıcısı raporu | ||||||||||||
Alpari-MT5 (Derleme 1596) | ||||||||||||
Ayarlar | ||||||||||||
Danışman: | Şanslı | |||||||||||
Sembol: | EURUSD | |||||||||||
Dönem: | M1 (2017.04.10 - 2017.04.16) | |||||||||||
Seçenekler: | Shift=3 | |||||||||||
sınır=18 | ||||||||||||
sürü = 0.1 | ||||||||||||
Komisyoncu: | Alpari Uluslararası Limited | |||||||||||
Para birimi: | Amerikan Doları | |||||||||||
İlk para yatırma: | 100 0000.00 | |||||||||||
Omuz: | 1:100 | |||||||||||
geriye dönük test | ||||||||||||
Geçmiş kalitesi: | n/a | |||||||||||
Barlar: | 7192 | Tiki: | 1865415 | Semboller: | 1 | |||||||
Net kazanç: | -10 863,90 | Bakiyeye göre mutlak düşüş: | 10 863,90 | Şu yollarla mutlak düşüş: | 10 864,70 | |||||||
Toplam kar: | 2 528.70 | Bakiyeye göre maksimum düşüş: | 10 863,90 (%10,86) | Öz sermayeye göre maksimum düşüş: | 10 864,70 (% 10,86) | |||||||
Toplam kayıp: | -13 392.60 | Bakiyeye göre göreceli düşüş: | %10.86 (10 863.90) | Öz sermayeye göre göreceli düşüş: | %10,86 (10 864,70) | |||||||
karlılık: | 0.19 | Kazanma beklentisi: | -0.49 | Sınır seviyesi: | %863,58 | |||||||
Kurtarma faktörü: | -1.00 | Sharpe oranı: | -0.50 | Z-Skoru: | -52,22 (%99,74) | |||||||
AHPR: | 1.0000 (-0.00%) | LR Korelasyonu: | -1.00 | OnTester sonucu: | 0 | |||||||
GHPR: | 1.0000 (-0.00%) | LR Standart Hatası: | 149.82 | |||||||||
Toplam işlemler: | 21954 | Kısa işlemler (% kazanç): | 12016 (%68.60) | Uzun işlemler (% kazanç): | 9938 (%67.03) | |||||||
Toplam işlemler: | 43908 | Karlı işlemler (tümünün yüzdesi): | 14904 (%67.89) | İşlemleri kaybetme (tümünün yüzdesi): | 7050 (%32.11) | |||||||
En büyük karlı ticaret: | 3.00 | En büyük kaybeden ticaret: | -4.40 | |||||||||
Ortalama karlı ticaret: | 0.17 | Ortalama kaybeden ticaret: | -1.90 | |||||||||
Maksimum sürekli kazanç sayısı (kar): | 155 (46.60) | Maksimum sürekli kayıp sayısı (kayıp): | 115 (-210.10) | |||||||||
Maks. sürekli kar (kazanç sayısı): | 46.60 (155) | Maks. sürekli kayıp (kayıp sayısı): | -210.10 (115) | |||||||||
Ortalama Sürekli Kazanç: | 5 | Ortalama Sürekli Kayıp: | 2 |
Sonuçlar eşleşiyor!
Verim
2017.05 . 08 01 : 45 : 42.765 EURUSD,M1: 1865415 tick events ( 7292 bars, 1865515 bar states) processed in 0 : 00 : 03.682 (total time 0 : 00 : 04.400 )
MT5 günlüğü
2017.05 . 08 02 : 04 : 53.278 Core 1 EURUSD,M1: 1865415 ticks, 7192 bars generated. Test passed in 0 : 00 : 12.309 (including ticks preprocessing 0 : 00 : 00.203 ).
MT4 test cihazı, MT5 test cihazından 3 kat daha hızlı yaptı. MT5 yavaşlamasının üçüncü taraf bir kitaplık kullanımından kaynaklandığına dair herhangi bir şüphe varsa, isteyenler bu Expert Advisor'ın basit MT4 mantığını MQL5'te kendi yöntemleriyle yeniden yazabilir ve hipotezi test edebilir.
Tehdit MT5 test cihazı, tüm Bases klasörlerini elleriyle temizleyene kadar çok daha yavaş çalıştı. Sonuçlar bu durum dikkate alınarak sunulmuştur.
Alpari-MT5-Demo sunucusunda , işlem geçmişine hızlı erişim ile yeni bir yapıda (bu hafta yayınlayacağız) şunları aldım:
EURUSD,M1: 1865417 ticks, 7192 bars generated. Test passed in 0 : 00 : 05.578 .
MT5, verileri ve görevin kendisini aracının harici işlemine aktarmak için bir sistem ek yüküne sahiptir ve bu, küçük (ikinci) görevlerde karşılaştırmalarda büyük bir hataya neden olur.
Eh, MT5'teki test cihazının karmaşıklığı ve kalitesi bir büyüklük sırasıdır: birçok enstrümanın milisaniyelik doğrulukla senkronize modellemesi, dünya değişikliklerinin kaydırılması sırasında adil kaymalar/gecikmeler ve bir dizi daha küçük işlev. Aynı yerde maliyet döngüsü değil.
Daha yavaş büyüklük sıraları hakkında - tüm verilerin ilk başlatılması / senkronizasyonu ve indirilmesi ile karıştırmayın? Loglarda her şey yazıyor. Diskteki dosyalara hiçbir durumda dokunulmamalıdır.
%userdata%\MetaQuotes dizinini (C:\Users\%username%\AppData\Roaming\MetaQuotes gibi) antivirüs geçişine eklemenizi öneririm. Veriler oradadır ve geçişe bir antivirüs eklenmesi, terminal ve test cihazının verilerine erişim hızını önemli ölçüde artırır.
Aksi takdirde, metatester[64].exe'nin başlatıldığını, bir ağ bağlantı noktası ve terminal ve test cihazı tarafından yazılan çok sayıda büyük veri dosyasının açıldığını gördüklerinde böylesine güçlü bir test etkinliği geliştirirler. Bazı tüccarlar için, antivirüsün başlatılmakta olan metatester[64].exe dosyasını kontrol etmek için zamanı olmadığı ve terminalin birkaç saniye içinde bile erişemeyeceği için test cihazının bile düşmek için zamanı vardır.
MT5'teki test cihazının karmaşıklığı ve kalitesi bir kat daha yüksektir: birçok enstrümanın milisaniyelik doğrulukla eşzamanlı modellemesi , dünya değişikliklerinin kaydırılması sırasında adil kaymalar/gecikmeler ve bir dizi daha küçük işlev.
Bu aynı zamanda MT4+TDS kombinasyonunda da mevcuttur. Artı, MT5'te eksik olan başka özellikler de var... Ama tabii ki çoklu para birimi yok.
Daha yavaş büyüklük emirleri hakkında
İlk başta TDS'nin özellikle MT5'i yavaşlattığını düşündüm, bu yüzden hafızasını temizledim. Aynı zamanda, Bases klasörleri (disk alanı tükeniyordu). Bundan sonra, MT5 iki büyüklük sırasını daha hızlı tek bir çalıştırma gerçekleştirmeye başladı (bundan önce yeniden başlatmalar yardımcı olmadı). Ne kadar denersem deneyeyim, TDS frenleriyle ilgili hipotezi doğrulayamadım. Makinede antivirüs yoktu.
Alpari-MT5 sunucusu - gerçek.
Tehdit Tam arama için MT4 optimize edici başlatıldı - 14 dakika. MT5 (yalnızca bir ajan kaldı) - görünüşe göre daha saatler olacak. Sonuçları sabah/öğleden sonra yazarım.
Fişler nereden?
Tamamen farklı bir şey demek istiyorsun. MT5 test cihazındaki Delay alanı ile oynayın ve tamamen farklı olduğunu göreceksiniz. MQL5 kodundaki normal Sleep(2500) bile, test cihazında yürütüldüğünde, tüm dünya modellenmeye devam ederken kodda gecikmeye neden olacaktır. Yürütme gecikmesi alanı, 100ms ping'inizi oradaki sunucuya koyarsanız, işlemlerin nasıl yürütüleceğini etkin bir şekilde gösterir.
Büyüklükte frenler olamaz. Ve MT5 kendi kendine iyi çalışıyorken neden herhangi bir ekleme yapsın ki?
Aramalar hakkında - ayar ve sınır yoktur.Antivirüs eksikliği hakkında - uzun süredir zaten yediden tüm sürümlerde, tüm dosyaları oldukça iyi tarayan düzenli ve göze çarpmayan bir Windows Defender var.
Bazen SSD sürücülerinde bile dosya işlemlerinde gözle görülür gecikmeler oluşturur.
Antivirüs eksikliği hakkında - uzun bir süredir, yediden tüm sürümlerde, tüm dosyaları oldukça iyi tarayan düzenli ve göze çarpmayan bir Windows Defender var.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
fxsaber , 2017.05.07 21:55
Alpari-MT5 ticaret sunucusu
FOREX sembollerinin kene geçmişinde neden yinelenen tikler var (teklif ve talep eşittir)?
Test cihazı, Uzman Danışmanları kopyalar halinde çalıştırır ve bunların yarısı vardır. Performansta iki kez karşılık gelen bir düşüş elde etmek gerçekten gerekli mi?
Sen hala hangi notlardan bahsettiğimi anlamıyorsun. MT4'te bu temelde çalışmıyor.
Tiklerde değil, µl5 programını çalıştırma sürecinde, durduğunda ve keneler devam ediyor ve dünya dönüyor. Sleep(3000) yazın ve program 3 saniye bekleyecek, keneler işaretlenirken piyasa simüle edilecektir.
Test cihazında Yürütme gecikmesi alanını 200 ms'ye ayarlarsanız, işlemler yürütülürken 200'lük bir ağ gecikmesi simüle edilir ve bu da piyasa kaymasına veya yeniden fiyat verilmesine neden olur .
Bu, ayrıca, çok para birimli bir sistem çerçevesinde piyasa süreçlerini modellemenin tamamen farklı ve güçlü bir seviyesidir. Ve daha da önemlisi, uzaktan yabancılaştırılabilir bir süreçte. Örneğin, 10.000 km uzaktaki bir aracı, bir görevi yerine getirirken, birdenbire koddan eksik sembollere erişim için dinamik bir istek alır ve bu verileri master'dan talep edebilir, pazar dünyasına entegre edebilir ve döndürmeye devam edebilir.
Hala hangi notlardan bahsettiğimi anlamıyorsun. MT4'te bu temelde çalışmıyor.
Tiklerde değil, µl5 programını çalıştırma sürecinde, durduğunda ve keneler devam ediyor ve dünya dönüyor. Sleep(3000) yazın ve program 3 saniye bekleyecek, keneler işaretlenirken piyasa simüle edilecektir.
Bu şimdi MT4'te çalışmıyor.
Test cihazında Yürütme gecikmesi alanını 200 ms'ye ayarlarsanız, işlemler yürütülürken 200'lük bir ağ gecikmesi simüle edilir ve bu da piyasa kaymasına veya yeniden fiyat verilmesine neden olur.
Şimdi MT4'te çalışıyor.
Bu, ayrıca, çok para birimli bir sistem çerçevesinde piyasa süreçlerini modellemenin tamamen farklı ve güçlü bir seviyesidir. Ve daha da önemlisi, uzaktan yabancılaştırılabilir bir süreçte. Örneğin, 10.000 km uzaktaki bir aracı, bir görevi yürütürken birdenbire koddan eksik sembollere erişim için dinamik bir istek alır ve bu verileri master'dan talep edebilir, pazar dünyasına entegre edebilir ve döndürmeye devam edebilir.
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
"MQL5 Sihirbazından Hazır Uzman Danışmanlar MetaTrader 4'te çalışır" makalesinin tartışılması
fxsaber , 2017.03.09 13:02
Karşılaştırma için, Tick Data Suite (Uyumlu: MT4 build 940 - 1052) deneme sürümünü almanızı öneririm.
MT5 test cihazında "gerçek keneler ile" modunu seçin. Bunları kaydedin ve TDS aracılığıyla MT4 test cihazına besleyin.
THer iki test cihazındaki teklifler %100 eşleştiğinde, bu onları yalnızca işlemler açısından değil, aynı zamanda hız açısından da doğru bir şekilde karşılaştırmanıza olanak tanır.
Böylece, Uzman Danışmanların dönüşümünü/oluşturulmasını her iki yönde karşılaştırmak mümkün olacaktır.
MT4 build 1072, MT5 build 1596 Alpari-MT5 ticaret sunucusu.
MT4 test cihazı ayarlarının ekran görüntüsü
Her iki test cihazındaki para birimi USD'dir. Bu, EURUSD'deki aynı MT5 test cihazında dönüşüm sembolünden daha fazla kene çekmemesine izin verir.
Her iki test cihazında da böyle bir platformlar arası Uzman Danışman başlattık
MT4 test cihazı günlüğü
MT5 test cihazı günlüğü
Her bir test cihazından alınan dosyaların aynı olduğundan emin oluruz - test edenlerin onayları aynıdır.
Bu konuda, her iki testçinin de konuyla ilgili hazırlığı hazır.