Çok Para Birimli EA'yı Geri Test Etme

 

Şu anda MT5 Strategy Tester'da çoklu para birimi çiftli bir EA'yı geriye dönük test ediyorum ve bunu farklı döviz çiftlerine eklerken farklı sonuçlar alıyorum. EA, AUDUSD ve GBPCHF üzerinde işlem görmektedir.

AUDUSD'ye eklediğimde 10k kar elde ediyor.

GBPCHF'ye eklediğimde 30 binden fazla kar elde ediyor.

USDCHF'ye eklediğimde (OnTick() işlevinin USDCHF'yi takip ederken hem AUDUSD hem de GBPCHF değişikliklerine tepki vereceğini düşündüm) yaklaşık 17k kar elde ediyor.

OnTick() işlevini kullanma sorunu mu var? Yoksa çok para birimli EA'ları geriye dönük test etmede gizli bir sorun mu var? Yoksa kodumda bir karışıklık mı var?

 
enivid :

Şu anda MT5 Strateji Test Cihazında çoklu para birimi çiftli bir EA'yı geriye dönük test ediyorum ve bunu farklı döviz çiftlerine eklerken farklı sonuçlar alıyorum. EA, AUDUSD ve GBPCHF üzerinde işlem görmektedir.

AUDUSD'ye eklediğimde 10k kar elde ediyor.

GBPCHF'ye eklediğimde 30 binden fazla kar elde ediyor.

USDCHF'ye eklediğimde (OnTick() işlevinin USDCHF'yi takip ederken hem AUDUSD hem de GBPCHF değişikliklerine tepki vereceğini düşündüm) yaklaşık 17k kar elde ediyor.

OnTick() işlevini kullanma sorunu mu var? Yoksa çok para birimli EA'ları geriye dönük test etmede gizli bir sorun mu var? Yoksa kodumda bir karışıklık mı var?

daha iyi, eğer kodu buraya kopyalarsan.. belki yardımcı olur.
 
Kod gerçekten önemli olmamalı. Tüm işlemler önceden tanımlanmış iki döviz çifti üzerinde yapılıyorsa ve tüm işlemler her tıklamada değil de yeni çubuk açılışında gerçekleştirilirse, Test Cihazı ekli döviz çifti için neden herhangi bir fark yaratsın?
 
enivid :

Kod gerçekten önemli olmamalı. Tüm işlemler önceden tanımlanmış iki döviz çifti üzerinde yapılıyorsa ve tüm işlemler her tıklamada değil de yeni çubuk açılışında gerçekleştirilirse, Test Cihazı ekli döviz çifti için neden herhangi bir fark yaratsın?

"On kene" işlevi yalnızca grafik para birimi için değil mi? %99 öyle diyebilirim. Sanırım daha doğru keneler elde etmek için her saniyede bir sonsuz döngü yenileme alıntıları oluşturabilirsiniz. Bu, bir uygulamanın tüm yapısını değiştirecektir.

 
enivid :

Kod gerçekten önemli olmamalı. Tüm işlemler önceden tanımlanmış iki döviz çifti üzerinde yapılıyorsa ve tüm işlemler her tıklamada değil de yeni çubuk açılışında gerçekleştirilirse, Test Cihazı ekli döviz çifti için neden herhangi bir fark yaratsın?

Belki OnTick() yerine OnBookEvent()'i denemelisiniz? - OnTick() yalnızca geçerli sembol işareti geldiğinde tetiklenir.

OnBookEtkinliği

OnBookEvent() işlevi, BookEvent işleyicisidir. BookEvent, yalnızca Pazar Derinliği değiştiğinde Uzman Danışmanlar için oluşturulur. void türünde olmalı ve dize türünde bir parametreye sahip olmalıdır:

geçersiz   OnBookEvent ( const   dize ve sembol );

Herhangi bir sembol için BookEvent olaylarını almak için, MarketBookAdd() işlevini kullanarak bu sembol için bu olayları almak üzere önceden abone olmanız yeterlidir. Belirli bir sembol için BookEvent olaylarını almaktan çıkmak için MarketBookRelease() öğesini arayın.

Diğer olaylardan farklı olarak, BookEvent olayı yayınlanır. Bu, bir Uzman Danışmanın MarketBookAdd kullanarak BookEvent olaylarını almaya abone olması durumunda, OnBookEvent() işleyicisine sahip diğer tüm Uzman Danışmanların bu olayı alacağı anlamına gelir. Bu nedenle, işleyiciye const string&symbol parametresi olarak iletilen sembolün adını analiz etmek gerekir .

 

Aynı sorunu yaşıyorum: Çok para birimli bir EA'yı geriye dönük test etme Strateji test panelinde hangi sembolü seçtiğime bağlı olarak tamamen farklı davranışlar elde ediyorum.

Bu son derece rahatsız edici. Rosh? kimse var mı? yorum yapabilir misin lütfen

On tik sadece seçili çizelge için geçerli olsa bile, hem kıskanıyorum hem de ben yeni bir çubuğun açılması üzerinde çalışıyoruz. Benim durumumda günlük çubuklar kullanıyorum, bu nedenle çeşitli para birimlerindeki yeni çubukların açık işareti farklı zamanlarda ortaya çıksa bile, yaşadığım gibi büyük farklılıklar olmamalıdır.

Açık nedenlerden dolayı EA'mı dahil etmiyorum. Bakalım burada yayınlanan EA ile aynı sorunu yaşıyor muyuz: https://www.mql5.com/en/articles/105 .

Çok para birimli bir EA oluşturmada başarılı olan ve özellikle bu tutarsızlıktan muzdarip olmayan herkesten haber almaktan çok mutlu olurum.

Creating an Expert Advisor, which Trades on a Number of Instruments
  • 2010.07.08
  • Nikolay Kositsin
  • www.mql5.com
The concept of diversification of assets on financial markets is quiet old, and has always attracted beginner traders. In this article, the author proposes a maximally simple approach to a construction of a multi-currency Expert Advisor, for an initial introduction to this direction of trading strategies.
 
investeo :

Belki OnTick() yerine OnBookEvent()'i denemelisiniz? - OnTick() yalnızca geçerli sembol işareti geldiğinde tetiklenir.

OnBookEtkinliği

OnBookEvent() işlevi, BookEvent işleyicisidir. BookEvent, yalnızca Pazar Derinliği değiştiğinde Uzman Danışmanlar için oluşturulur. void türünde olmalı ve dize türünde bir parametreye sahip olmalıdır:

geçersiz   OnBookEvent ( const   dize ve sembol );

Herhangi bir sembol için BookEvent olaylarını almak için, MarketBookAdd() işlevini kullanarak bu sembol için bu olayları almak üzere önceden abone olmanız yeterlidir. Belirli bir sembol için BookEvent olaylarını almaktan çıkmak için MarketBookRelease() öğesini arayın.

Diğer olaylardan farklı olarak, BookEvent olayı yayınlanır. Bu, bir Uzman Danışmanın MarketBookAdd kullanarak BookEvent olaylarını almaya abone olması durumunda, OnBookEvent() işleyicisine sahip diğer tüm Uzman Danışmanların bu olayı alacağı anlamına gelir. Bu nedenle, işleyiciye const string&symbol parametresi olarak iletilen sembolün adını analiz etmek gerekir .

OnBookEvent() kullanmayı denedim ama çalışmıyor (en azından geriye dönük testlerde). Her iki çiftim için de OnInit() işlevinde MarketBookAdd() kullandım.
 

İşte bir örnek. https://www.mql5.com/en/articles/105 adresinden TEMA EA'yı kullanarak Aşağıdaki farklı davranışları alıyoruz.

Tek ihtiyacınız olan EA exp_tema_en.mq5 ve multistochastic_en.mq5 göstergesi

Bu örnekte ekli param seti dosyasını kullandım. EA, EURUSD, USDCHF ve USDJPY çiftlerini (bu parametrelerle) takas eder.

EURUSD'ye eklediğinizde,

EURUSD'ye eklendiğinde öz sermaye

USDCHF'ye eklerken alacaksınız

usdchf

Ardından, USDJPY ile şunu elde ederiz:

usdjpy

ve daha da iyisi, EA'yı AUDUSD üzerinde çalıştırırken sonuç

bütçe

Aynı EA, aynı zaman dilimi (H1), aynı işlem gören çiftler, aynı tarihler (2009.01.01-2009.03.01).

Olması gereken bu mu? ve eğer öyleyse, biri bize bunun ne anlama geldiğini söyleyebilir mi?

Çoklu para birimi geri testine/optimizasyonuna gerçekten hazır mıyız?

Creating an Expert Advisor, which Trades on a Number of Instruments
  • 2010.07.08
  • Nikolay Kositsin
  • www.mql5.com
The concept of diversification of assets on financial markets is quiet old, and has always attracted beginner traders. In this article, the author proposes a maximally simple approach to a construction of a multi-currency Expert Advisor, for an initial introduction to this direction of trading strategies.
 
trendick :

İşte bir örnek. https://www.mql5.com/en/articles/105 adresinden TEMA EA'yı kullanarak Aşağıdaki farklı davranışları alıyoruz.

Tek ihtiyacınız olan EA exp_tema_en.mq5 ve multistochastic_en.mq5 göstergesi

Bu örnekte ekli param seti dosyasını kullandım. EA, EURUSD, USDCHF ve USDJPY çiftlerini (bu parametrelerle) takas eder.

EURUSD'ye eklediğinizde,


USDCHF'ye eklerken alacaksınız


Ardından, USDJPY ile şunu elde ederiz:

ve daha da iyisi, EA'yı AUDUSD üzerinde çalıştırırken sonuç

Aynı EA, aynı zaman dilimi (H1), aynı işlem gören çiftler, aynı tarihler (2009.01.01-2009.03.01).

Olması gereken bu mu? ve eğer öyleyse, biri bize bunun ne anlama geldiğini söyleyebilir mi?

Çoklu para birimi geri testine/optimizasyonuna gerçekten hazır mıyız?




Merhaba, aynı sorunu yaşadım (farklı sonuçlar), ancak IsNewBar() ile çözdüm

baq'a katılıyorum, o halde ne yapmalıyız?

Sadece IsNewBar(bir sembol) o zaman falan filan

EA'm için farklı sembollere ek olarak aynı sonuçları aldım.

işlevi aldığım makale burada: https://www.mql5.com/en/articles/105

Creating an Expert Advisor, which Trades on a Number of Instruments
  • 2010.07.08
  • Nikolay Kositsin
  • www.mql5.com
The concept of diversification of assets on financial markets is quiet old, and has always attracted beginner traders. In this article, the author proposes a maximally simple approach to a construction of a multi-currency Expert Advisor, for an initial introduction to this direction of trading strategies.
 
Ali2e7a :

Merhaba, aynı sorunu yaşadım (farklı sonuçlar), ancak IsNewBar() ile çözdüm

baq'a katılıyorum, o halde ne yapmalıyız?

Sadece IsNewBar(bir sembol) o zaman falan filan

EA'm için farklı sembollere ek olarak aynı sonuçları aldım.

işlevi aldığım makale burada: https://www.mql5.com/en/articles/105

Ali, yukarıda bahsettiğim örnek bahsettiğiniz IsNewBar() fonksiyonunun kaynağı olan ve zaten onu kullanan EA'dır.

Bunu nasıl açıklarsın?

 

Ayrıca https://www.mql5.com/en/forum/1520 adresindeki Çoklu para birimi senkronizasyon konusuna bakın.

Multi-Currency synchronization
  • www.mql5.com
Here some tests results and below details:.