Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 3182

 
fxsaber #:

Teşekkürler, MathRand artışlarını deneyeceğim.

Aleksey Nikolayev #:

En evrensel olanı muhtemelen Monte Carlo'dur.

Görünüşe göre ilginç bir Rastgele üretimim var.

double GetAvgPrice( const MqlTick &Tick )
{
  return((Tick.bid + Tick.ask) / 2);
}

void SetAvgPrice( MqlTick &Tick, const double Price )
{
  const double Spread = (Tick.ask - Tick.bid) / 2;
  
  Tick.bid = NormalizeDouble(Price - Spread, 8);
  Tick.ask = NormalizeDouble(Price + Spread, 8);
  
  return;
}

// Случайный знак приращения средней цены.
bool RandomPrice( MqlTick &Ticks[] )
{  
  const int Size = ArraySize(Ticks) - 1;
  
  if (Size > 0)
  {
    Print("Random price...");
    
    MqlTick PrevTick = Ticks[Size];
    double PrevPrice = GetAvgPrice(PrevTick);
    
    MathSrand((int)TimeLocal());
    
    for (uint i = Size; (bool)i--;)
    {
      const double Diff = GetAvgPrice(PrevTick) - GetAvgPrice(Ticks[i]);
      
      PrevTick = Ticks[i];

      SetAvgPrice(Ticks[i], PrevPrice += !(MathRand() & 1) ? Diff : -Diff);
    }
  }
  
  return(Size >= 0);
}

Üstte gerçek bir sembol, altta rastgele.

RandomPrice iteratif olarak uygulanabilir. Spreadler ve zaman korunur.


Bunu logaritma ile yapmak doğru olurdu, ancak bununla uğraşmadım. Eğer bunu geliştirirsek, Monte Carlo'nun gerekli istatistiksel özelliklere sahip rastgele bir sembol üretmesi için en iyi seçenek olabilir.

 
fxsaber #:

Monte Carlo için muhtemelen istenen istatistiksel özelliklere sahip rastgele bir sembol üretmek için en iyi seçenektir.

Aynı set ile bit testi.

Üst - gerçek, alt - rastgele.

Başarısızlık.

 

Aradaki fark, optimizasyon sonuçlarında hiçbir şeyin aranmamasıdır. Yani, ilk beş optimizasyon sonucu daha önce OOS üzerinde hiç çalıştırılmamıştır.

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi üzerine forum

Ticarette makine öğrenimi: teori, modeller, uygulama ve algo-ticaret

Valeriy Yastremskiy, 2023.08.17 10:44 AM

Yanlış pozitif ve negatiflerin olasılığının azalması mantıklı görünüyor, ancak bana göre hatalara karşı her derde deva değil.

Sizce train_optim + test_forward modeline (train+test)_optim'den daha fazla güvenmeli misiniz?

 
Aleksey Vyazmikin #:

Hata yok. Hata yok. Hata yok.

Başka bir örnek aldım - birimlerin %47'si ve örnekler 5 kat daha az - birkaç geçişten sonra zaten birçok kuantum segmenti bulduğunu söyleyebilirim.

Dikkat ettiğim başka bir şey de ilk hedef ile oluşturulan hedefin benzerliği - %49 benzerler - belki de burada bir eşik belirlemek gerekir - %30'dan fazla benzerlik olmamalı? Herhangi bir düşünceniz var mı?

Bir grafik yaptım - eğer bir eşleşme varsa "-1", eşleşme yoksa "+1", böyle bir denge elde ettim.

Üzerinde çok fazla eğilim var, ne düşünüyorsunuz?

 
fxsaber #:

Üst kısım gerçek, alt kısım rastgele.

Gerçek ve oluşturulan sembol üzerinde aynı ayarlarla optimizasyon yaptım.


Gerçek.


Rastgele.


Rastgele üzerinde eğitilmemiştir.

 
fxsaber #:

Gerçek ve oluşturulan karakter üzerinde aynı ayarlarla bir optimizasyon yaptım.


Gerçek.


Rastgele.


Random konusunda eğitimli değil.

Rastgele sembol kaç kez üretildi?) Açıkçası, dizi ne kadar uzunsa, üzerinde çalışmak için de o kadar çok kez üretilmesi gerekir.
 
fxsaber #:

Aradaki fark, optimizasyon sonuçlarında hiçbir şeyin aranmamış olmasıdır. Yani ilk beş optimizasyon sonucu daha önce OOS üzerinde hiç çalıştırılmamış.

Bunu nasıl basitçe ifade edeceğimi bilmiyorum.

Test üzerinde optimizasyon yaptıktan sonra OOS üzerinde "elle" daha iyi varyantlar seçersiniz ve bu uygun DEĞİLDİR...

Ve eğer algoritma optimizasyondan sonra OOS üzerinde en iyi varyantları seçerse, zaten uygun olur... Neden?

Tüm seçenekler arasından en iyi seçenekleri/varyantları seçmek optimizasyondur.... Bunu elle veya algoritma ile yapmanız fark etmez.

Belki de sadece MT'de bir test uzmanı ile çalıştınız ve optimizasyonun kendisi ve uygulama yolları hakkında biraz kalıplaşmış düşünüyorsunuz, bu yüzden bazı yanlış anlamalarımız var


 
fxsaber #:

Gerçek ve oluşturulan karakter üzerinde aynı ayarlarla bir optimizasyon yaptım.


Gerçek.


Rastgele.


Rastgele üzerinde eğitilmemiş.

Rastgele fiyat özellikleriyle eşleşiyor mu? Ortalama, standart sapma, kovaryans?
 

Maxim Dmitrievsky #:
Сколько раз был сгенерирован рандом символ?)

Bir.

sekans ne kadar uzunsa, üzerinde çalışmak için o kadar çok kez üretilmesi gerektiği de açıktır.

Bu ifadeyi anlamıyorum. Aşağıdaki iki seçenekle ne kastediliyor?

  1. Çalışması için çok sayıda rastgeleleştirme yinelemesi yapmanız gerekir.
  2. Çok sayıda rastgele karakter oluşturursanız, aralarında çalışabilir bir tane olma olasılığı artar.

Görünüşte basit şeyler, çünkü farklı gerçek sembollerde bile aynı TC çalışmıyor.

Rastgeleleştirme algoritması aşağıdaki gibidir:

  1. Gerçek bir tik geçmişi alınır.
  2. Ortalama ((alış+satış)/2) fiyatın bir dizi artışı bundan yapılır.
  3. Bu dizide her terim rastgele +1 ya da -1 ile çarpılır.
  4. Elde edilen artışlar dizisinden, zaman ve yayılmanın 1. nokta ile çakıştığı yeni bir tik geçmişi toplanır.
  5. Yeni tik geçmişi özel bir sembolle yazılır.
Yani bazı gerçek semboller rastgele seçilir. Madde 3'ü istediğiniz sayıda uygulayabilirsiniz. Madde 5'ten sonra beş noktanın tümü tekrarlanırsa, bu madde 3'ü iki kez tekrarlamakla aynıdır.