Tüccarın kendini aldatması: Forvetlere güvensizlik. - sayfa 2

 
Youri Tarshecki :

Herkes en basit deneyimi yapabilir - bir demo hesapta alım satım işleminin sonucunu alabilir ve aynı sistemi aynı süre boyunca test cihazında aynı ayarlarla çalıştırabilir. Onlar. gerçek ve sanal bir test edin ve karşılaştırın.

Doğru bir karşılaştırma değil. Strateji test cihazı yalnızca 4 çubuk tırnak kullanır - açma, kapama, maks ve min. Kural olarak, danışmanlar demo veya gerçek hesaplardaki tüm çubuk içi alıntılarla çalışır.

Youri Tarshecki :

Aslında, sistemin davranışını optimize edilmemiş bir geçmiş segmenti üzerinde çalıştırarak modellemek, bir tüccarın analiz etmesi için en etkili yoldur. Gerçeklik kontrolü elbette en güvenilir yoldur, ancak ne yazık ki gerçek hayatta tüm seçenekleri sıralamak için sonsuza kadar yaşamak zorundasınız. Onlar. İleriden geçmişe tip modelleme, araştırma yapmanın en verimli yoludur. Ama o zaman neden forvetler tartışmalarda tamamen yok? Belki de mesele, birçok testin sonuçlarını hem geriye hem de ileriye doğru işlemek ve analiz etmek için uygun bir yazılımın olmamasıdır?

Kabul ediyorum. Görünüşe göre bunu çok yapıyorsun. Lütfen böyle bir analiz için hangi finansal aracı tercih ettiğinizi bize bildirin. Sadece bar açılışında çalışan bir danışmanım var. Benzer bir simülasyonla test etmek istiyorum.

 

 Скажите пожалуйста какой финансовый инструмент Вы предпочитаете для подобного анализа. У меня есть советник который срабатывает только на открытие бара. Хочу проверить его подобным моделированием.

Ben sadece, enstrüman ne olursa olsun, test metodolojisinin ileriye dönük içermesi gerektiği gerçeğinden bahsediyorum. Ama insanlar onları büyük ölçüde görmezden geliyor. Bunları kullananlar kural olarak gözle değerlendirirler. Onlar. ileriye dönük değerlendirmeye nesnel standartlar getirecek hiçbir program yoktur.
 
Youri Tarshecki :
Ben sadece, enstrüman ne olursa olsun, test metodolojisinin ileriye dönük içermesi gerektiği gerçeğinden bahsediyorum. Ama insanlar onları büyük ölçüde görmezden geliyor. Bunları kullananlar kural olarak gözle değerlendirirler. Onlar. ileriye dönük değerlendirmeye nesnel standartlar getirecek hiçbir program yoktur.
Farklı enstrümanlar piyasada farklı davranış özelliklerine sahiptir. İleri testte "kârlılığın ataleti" dahil. Bu yüzden sormak istedim: deneylerinizde en iyi sonucu gösteren ceteris paribus olan bir alet (veya alet türü) fark etmediniz mi?
 
Youri Tarshecki :
Ben sadece, enstrüman ne olursa olsun, test metodolojisinin ileriye dönük içermesi gerektiği gerçeğinden bahsediyorum. Ama insanlar onları büyük ölçüde görmezden geliyor. Bunları kullananlar kural olarak gözle değerlendirirler. Onlar. ileriye dönük değerlendirmeye nesnel standartlar getirecek hiçbir program yoktur.

İleriye dönük testleri büyük ölçüde görmezden geliyorum. Nedeni basit - başarılı bir şekilde iletildi, yalnızca ileri bölümdeki pazarın optimizasyon bölümüne benzer olduğu anlamına gelir. Strateji test cihazı , mevcut piyasa dinamiklerine mükemmel bir şekilde uyum sağlar. Sonuç olarak, optimizasyon bölümünü 12 ileri parçaya bölerek, her biri 12 zaman bölümünden 11'inde birleşecek olan, birbiriyle bağlantılı olmayan 12 set parametre elde ederiz. Bunun yerine, bir parametre kümesinden diğerine acele etmektense, uzun bir geçmiş için ortalama olsa da bir parametre kümesi bulmak daha iyidir.

Piyasa değişmez, sadece her ticaret sisteminin yalnızca belirli bir piyasa durumuna ihtiyacı vardır ve piyasada bu durumların çoğu vardır.

 
Güvenmektense ileriye güvenmemek daha iyidir. Ve güveniyorsanız, yalnızca WFA kullanıyorsanız
 
Vasiliy Sokolov :

İleriye dönük testleri büyük ölçüde görmezden geliyorum. Nedeni basit - başarılı bir şekilde iletildi, yalnızca ileri bölümdeki pazarın optimizasyon bölümüne benzer olduğu anlamına gelir. Strateji test cihazı , mevcut piyasa dinamiklerine mükemmel bir şekilde uyum sağlar. Sonuç olarak, optimizasyon bölümünü 12 ileri parçaya bölerek, her biri 12 zaman bölümünden 11'inde birleşecek olan, birbiriyle bağlantılı olmayan 12 set parametre elde ederiz. Bunun yerine, bir parametre kümesinden diğerine acele etmektense, uzun bir geçmiş için ortalama olsa da bir parametre kümesi bulmak daha iyidir.

Piyasa değişmez, sadece her ticaret sisteminin yalnızca belirli bir piyasa durumuna ihtiyacı vardır ve piyasada bu durumların çoğu vardır.

"Optimize edilmiş bir yolu 12 ileri parçaya" bölemezsiniz çünkü bir ileri, tanım olarak optimize edilmemiş bir yoldur. Onlar. ileri kontrol yönteminin kendisine ve sadece ortalama alma kavramına karşı çıkıyorsunuz.

İleriye yönelik görev, danışmanın optimize edilmemiş bir gelecek durumunda nasıl davrandığını bulmaktır. Bahsettiğiniz şeyin, optimize edilecek en iyi geçmiş parçasını bulmakla daha çok ilgisi var. Onlar. Uzun bir hikayenin daha iyi çalıştığını düşünüyorsanız, sorun değil, test cihazını 2 yıl Geri-1 yıl İleri bir süre için ücretlendiriyoruz. Ve sonra 2 ay Geri -1 ay İleri 12 kez. İlk yaklaşımın ileri göstergeleri, ikinci yaklaşımın ileri göstergelerinin toplamından daha iyiyse, o zaman ilk seçenek daha iyidir ve bunun tersi de geçerlidir. Expert Advisor'ı hala optimize ediyor olmanız, piyasa eylemsizliğine inandığınızı, ancak bunun kendisini önemli ölçüde daha uzun bir süre boyunca gösterdiğini düşündüğünüzü söylüyor. Ancak, mevcut TÜM 30 yıllık geçmişi optimize etmiyorsunuz, bu da piyasanın oynaklığını da hesaba kattığınız anlamına geliyor. Bu, değişmezlik ve oynaklığın sonsuz bir çelişkisidir, ancak farklı test dönemlerinin ileri doğrularını karşılaştırarak, bu çelişkinin gerçekte nasıl çözüldüğünü daha doğru bir şekilde anlayabiliriz. Kontrol edene kadar - ifadeniz tamamen sezgisel veya sadece alışkanlıktır.

 
Youri Tarshecki :
Test ettiğim EA kodunun bir parçası olarak OnTesterPass kullandığımı varsayalım. Belirli bir çalıştırmanın bir ileri algılama olduğunu ve normal değişken optimizasyon çalıştırmaları olmadığını nereden biliyor? Ve bunu başarsa bile, bunlar farklı dosyalar olacak ve bir Expert Advisor'ın birçok forveti için bir tabloya ihtiyaç var. Ve sonra başka bir masa ve diğeri için bir tane, hepsi tek bir dosyada.

Hatırladığım kadarıyla bunu yaptım - ilk işlem sırasında çerçeveye kaydettim - bu "bakiye". Buna göre, tüm çalışmaların parametreleri ve göstergeleri tek bir dosyaya kaydedilirken, arka metni ileri metinden iki karakteristik tarihle ayırt etmek kolaydır. Tüm çalıştırmaları tam olarak tek bir dosyaya kaydettim (OnTesterInit'te açılır, OnTesterDeinit'te kapanır).

Ayrıntılar buradaydı:

test aracısında yapılması önemlidir.

Test/optimizasyon sürecinin başlatıldığı ve görevlerin aracılara dağıtıldığı terminalde OnTesterInit, OnTesterDeinit, OnTesterPass çağrılır. OnTesterPass içinde, FrameAdd kullanarak test aracılarına eklenen tüm çerçevelere erişebilirsiniz, buna benzer bir şey (eski bir EA'dan ısırılmış, derlenmeyebilir):

 void OnTesterPass ()
{
   string   name;
   ulong    pass;
   long     id;
   double   value, data[];
   string   params[];
   uint     par_count;
   string   output = "" ;
   ushort eq = StringGetCharacter ( "=" , 0 );

   while ( FrameNext (pass, name, id, value, data)) // data - массив положенный во фрейм с помощью FrameAdd
  {
    output = pass + ";" + (data[ 0 ]);
    
     for ( int i = 1 ; i < 10 ; i++) output += ";" + data[i];
    
     if ( FrameInputs (pass, params, par_count))
    {
       for ( uint i = 0 ; i < par_count; i++)
      {
         string pair[];
         int n = StringSplit (params[i], eq, pair);
         if (n == 2 )
        {
           long pvalue, pstart, pstep, pstop;
           bool enabled = false ;
           if ( ParameterGetRange (pair[ 0 ], enabled, pvalue, pstart, pstep, pstop))
          {
             if (enabled)
            {
              output += ";" + pair[ 1 ];
            }
          }
        }
      }
    }
    
    output += "\n" ;
     // TODO: FileWriteString(fhandle, output);
  }
}

ve burada:

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Çerçevelerle çalışma

Stanislav Korotky , 2014.11.07 20:15

Çalışma sırasında yukarıda yazdığım gibi çerçeve eklemelisiniz. Teoride, EA'nın parametreleri varsa, bunları kendi verilerinizle birlikte çerçevenin içine almalısınız, yani. paramlar boş bırakılmamalıdır. İşte aynı EA'dan biraz daha kod.

 int fhandle = - 1 ;

void OnTesterInit ()
{
   // готовим каким-то образом файл, как нам нужно
  fhandle = FileOpen ( "tester-" + _Symbol + GetTickCount () + ".csv" , FILE_WRITE | FILE_CSV | FILE_ANSI );
   FileWriteString (fhandle, "Pass;First;LR;Profit;Expected Payoff;Profit Factor;Recovery Factor;Sharpe Ratio;Custom;Equity DD %;Trades\n" );
}

void OnTesterDeinit ()
{
   FileClose (fhandle);
}

double OnTester ()
{
   // собираем данные по эквити
   double LR = CountChannels(Equity);
  
   // конструируем собственный критерий оптимизации
   double result = MathAbs (LR) * TesterStatistics ( STAT_PROFIT ) * TesterStatistics ( STAT_PROFIT_FACTOR ) * TesterStatistics ( STAT_TRADES ) * ( 100 - TesterStatistics ( STAT_EQUITY_DDREL_PERCENT ));

   // рассчитываем еще какие-то данные
   //...

   // складываем все в массив
   double data[ 10 ];
   // data[0] = first;
   // data[1] = LR;
   // data[2] = TesterStatistics(STAT_PROFIT);
   // ...
   // data[7] = result;
   // ...
   // data[9] = ...

   // отправляем данные в терминал
   if (! FrameAdd ( MQL5InfoString ( MQL5_PROGRAM_NAME ), 1 , LR, data))
     Print ( "Frame add error: " , GetLastError ());
   else
     Print ( "Frame added, Ok" );

   return (result);
}

 

Şahsen, son piyasa değişiklikleri en önemli olduğu için sonuçları gelecekte değil, geçmişte kontrol etmek bana daha mantıklı görünüyor.

15 dakika boyunca optimizasyon yaptım, gereksiz sonuçları filtreledim ve kalan 5-10 dakikayı bir sette biriktirdim ve optimizasyon anına kadar geçmişte çalıştırdım - ve programa göre en iyilerini seçtim.

Bu eylemleri otomatikleştirme sürecini de düşündüm ...

Basit bir çözüm, değiştirilebilen bir zaman aralığında EA'nın kendisine ticaret kısıtlamaları getirmek gibi görünüyor, sonuç olarak, Excel'de karşılaştırması kolay olan tek bir gerçek çalıştırmada geçmiş üzerinde iki sanal çalıştırma elde edeceğiz.

 
-Aleks- :

Şahsen, son piyasa değişiklikleri en önemli olduğu için sonuçları gelecekte değil, geçmişte kontrol etmek bana daha mantıklı görünüyor.

15 dakika boyunca optimizasyon yaptım, gereksiz sonuçları filtreledim ve kalan 5-10 dakikayı bir sette biriktirdim ve optimizasyon anına kadar geçmişte çalıştırdım - ve programa göre en iyilerini seçtim.

Bu eylemleri otomatikleştirme sürecini de düşündüm ...

Basit bir çözüm, değiştirilebilen bir zaman aralığında EA'nın kendisine ticaret kısıtlamaları getirmek gibi görünüyor, sonuç olarak, Excel'de karşılaştırması kolay olan tek bir gerçek çalıştırmada geçmiş üzerinde iki sanal çalıştırma elde edeceğiz.

SON değişikliklere odaklanmak, kendini aldatmanın bir başka türüdür. Doğal olarak, ticaret için yeni ayarlar kullanmanız gerekir. Ancak kendinizi son dönem için optimizasyonla sınırlayarak, Uzman Danışmanınızın gelecekteki değişikliklere ne kadar dirençli olduğunu asla anlayamayacaksınız. Gönderimin ikinci resmine bakın - açıkça görülüyor. İleri, geçmişin geçmişle bir karşılaştırmasıdır. Tekniğinizin ileri analizle hiçbir ilgisi yok. Hemen hemen her Uzman Danışman, güzel bir geriye dönük test için optimize edilebilir. Üstelik buradaki desen şudur - ne kadar çok ayar optimize edilirse, sırt o kadar güzel olur. Ve daha çirkin olduğu ortaya çıkıyor. İleri, tam olarak daha uzun vadeli kalıplar kullanan mantığı bulmaya yardımcı olur ve bu nedenle daha umut vericidir.
 
İleri, yararlı bir kontroldür, ancak her derde deva değildir. Optimizasyon sonuçlarında , iyi bir ilerleme sağlayan bir parametre değişkeni seçebilirsiniz, ancak bu, gerçek hayatta iyi sonuçları garanti etmez.
Neden: