"Model aramada brute force yaklaşımı (Bölüm VI): Döngüsel optimizasyon" makalesi için tartışma

 

Yeni makaleye göz atın: Model aramada brute force yaklaşımı (Bölüm VI): Döngüsel optimizasyon.

Bu makalede, MetaTrader 4 ve 5’te alım-satım için tüm otomasyon zincirini tamamlamamı sağlayan ve aynı zamanda çok daha ilginç bir şey yapmamı sağlayan iyileştirmelerin ilk bölümünü göstereceğim. Şu andan itibaren, bu çözüm hem Uzman Danışman oluşturmayı hem de optimizasyonu tamamen otomatikleştirmeme ve etkili alım-satım konfigürasyonları bulmak için harcanan emeği en aza indirmeme olanak tanıyor.

Tüm fikirdeki en önemli unsur, terminal ile programım arasındaki etkileşim sistemidir. Aslında, gelişmiş optimizasyon kriterlerine sahip döngüsel bir optimizasyon aracıdır. Bunlardan en önemlileri bir önceki bölümde ele alındı. Tüm sistemin çalışması için öncelikle MetaTrader 5 terminallerinden biri olan bir fiyat kaynağına ihtiyacımız var. Önceki makalede gösterdiğim gibi, fiyatlar benim için uygun bir formatta bir dosyaya yazılır. Bu, ilk bakışta oldukça garip bir şekilde işleyen bir Uzman Danışman kullanılarak yapılır:

Uzman Danışman tarafından fiyatların yazılması konsepti

Uzman Danışmanın işleyişi için benzersiz şemamı kullanmayı oldukça ilginç ve faydalı bir deneyim olarak gördüm. Burada sadece çözmem gereken problemlerin bir gösterimi var, ancak tüm bunlar alım-satım Uzman Danışmanları için de kullanılabilir:

Fiyatları yazmak için Uzman Danışman kullanma örneği


Yazar: Evgeniy Ilin

 

формулы 2

doğrusallık faktörü

Bu formülün içinde ne olduğunu anlayalım:

  • N - tüm backtest veya işlem bölümü boyunca tamamen açılmış ve kapatılmış işlem pozisyonlarının sayısı.
  • B(i) - ilgili kapalı "i" pozisyonundan sonraki bakiye çizgisinin değeri.
  • L(i) - sıfırdan en son denge noktasına (nihai denge) çizilen çizgi.

Neredeyse Sharpe gibi görünüyor:

//--- özkaynak dizisindeki artışların logaritmalarını hesaplayın
   for(int i = 1; i < m_bars_counter; i++)
     {
      //--- sadece özkaynak değiştiyse ekleyin
      if(m_equities[i] != prev_equity)
        {
         log_return = MathLog(m_equities[i] / prev_equity); // artışın logaritması
         aver += log_return;            // artışların ortalama logaritması
         AddReturn(log_return);         // logaritma dizisini artışlardan doldurun
         counter++;                     // verim sayacı
        }
      prev_equity = m_equities[i];
     }
//--- Sharpe oranını hesaplamak için yeterli değer yoksa, 0 döndür
   if(counter <= 1)
      return(0);
//--- artışın logaritmasının ortalama değeri
   aver /= counter;
//--- standart sapmayı hesaplayın
   for(int i = 0; i < counter; i++)
      std += (m_returns[i] - aver) * (m_returns[i] - aver);
   std /= counter;
   std = MathSqrt(std);
//--- Geçerli zaman diliminde Sharpe Oranı
   double sharpe = aver / std;
Математика в трейдинге: Коэффициенты Шарпа и Сортино
Математика в трейдинге: Коэффициенты Шарпа и Сортино
  • www.mql5.com
Доходность является самым очевидным показателем, который используют инвесторы и начинающие трейдеры для анализа эффективности торговли. Профессиональные трейдеры пользуются более надежными инструментами для анализа стратегии, среди них — коэффициенты Шарпа и Сортино.
 
fxsaber #:

Bence bu neredeyse bir Sharpe:

Benzer bir şey var ama sadece ilk bakışta. Herkes bilanço büyüme modelini özlüyor. Bilanço büyümesinin eğimi sürekli düşüyorsa (bilanço eğrisinin ikinci türevi negatifse), o zaman böyle bir model tercih edilmez, çünkü yakında negatife geçebilir. Bütün mesele, grafiksel olarak en umut verici görünen eğrileri seçmektir.

 
Evgeniy Ilin #:

Benzerlikler var ama sadece ilk bakışta. Herkes denge büyümesi modelini özlüyor. Denge büyümesinin eğimi sürekli olarak düşüyorsa (denge eğrisinin ikinci türevi negatiftir), o zaman böyle bir model tercih edilmez, çünkü yakında negatif bölgeye girebilir. Bütün mesele, grafiksel olarak en umut verici görünen eğrileri seçmektir.

Azalan eğriler için Sharpe algoritması negatif bir değer verecektir. Size sadece benzetme için verdim, Sharpe'ı tartışmanın bir anlamı yok....


Deneyimlerimden örnekler.

  • "güzel eğri" kriteri - OOS'yi geçemez.
  • "çirkin eğri" kriteri - eğrinin kendisi güzel çıkarken OOS'u geçer.
  • Sıfır komisyon - OOS'u geçmez.
  • Komisyon belirlendi - OOS'u geçer.

Yani, optimizasyon güzellik için olduğunda, uydurma bileşeninin yüksek olduğu ortaya çıkıyor. Değerli bir şey bulunduğunda, güzel görünür.

Bu yüzden ben kendim güzellik aramıyorum. Daha çok anlaşma sayısına ve TS çekirdeğinin algoritmasına güveniyorum. Amaç, güzellik kriterleri olmadan güzellik elde etmektir. Kural olarak, bu varyant OOS'u geçer.


ZY Komisyonlu varyant daha ilginçtir (ancak kural olarak tam tersi: daha az komisyon - daha fazla model bulma olasılığı). Aslında işlem sayısını azaltır (istatistiksel anlamlılık), ancak başarılı bir arama olasılığını artırır.

 
fxsaber #:

Aşağı doğru eğriler için Sharpe algoritması negatif bir değer üretecektir. Bu sadece benzetme içindir, Sharpe'yi tartışmanın bir anlamı yok.....


Deneyimlerimden örnekler.

  • "Güzel eğri" kriteri - OOS'yi geçemez.
  • "çirkin eğri" kriteri - OOS'u geçer, ancak eğrinin kendisi güzeldir.
  • Sıfır komisyon - OOS'u geçmez.
  • Komisyon ayarlandı - OOS'u geçti.

Yani, optimizasyon güzellik için olduğunda, uyum bileşeninin yüksek olduğu ortaya çıkıyor. Değerli bir şey bulunduğunda, güzel görünür.

Bu yüzden ben kendim güzellik aramıyorum. Daha çok anlaşma sayısına ve TS çekirdeğinin algoritmasına güveniyorum. Amaç, güzellik kriterleri olmadan güzellik elde etmektir. Kural olarak, bu varyant OOS'yi geçer.


ZY Komisyonlu varyant daha ilginçtir (ancak, kural olarak, tam tersi: daha az komisyon - daha fazla desen bulma olasılığı). Aslında işlem sayısını azaltır (istatistiksel anlamlılık), ancak başarılı bir arama olasılığını artırır.

Orada hala sınırlamalar olduğu açık. Örneğin, ben böyle davranıyorum:

  • Gerekli minimum beklentiyi pip cinsinden belirledim (sadece spread'i hesaba katarak, yaklaşık olarak komisyon ve takası da ekliyorum).
  • Dikkate alınan bölümün uzunluğunu dikkate alarak ihtiyacım olan minimum gerekli işlem sayısını belirledim
  • Eğri eşleştirme faktörünü ayarlıyorum
Yayılmanın içinde bir şey aramanın bir anlamı yok). Çok az işlem olacak, bu bir gerçek, bununla hiçbir şey yapılamaz. Her yerde uydurma var, soru algoritmanın kendisine dikkat etmeden bunu nasıl en aza indireceğidir. Bunun yolları var. Sadece eğri tahmini olmadan, sadece algoritmanın başlangıçta graal olduğu gerçeğine güvenebiliriz, ki bence parmaklarla sayılabilir. Onsuz nasıl yapılacağına dair yöntemlerim var, ama burada böyle bir şey yazmaktan korkuyorum))).
 
Evgeniy Ilin #:

Hâlâ sınırlar olduğu açık. Ben böyle çalışırım:

  • Gerekli minimum mat beklentisini puan olarak belirledim (sadece spread'i hesaba katarak, yaklaşık olarak komisyon ve takası da ekliyorum).

Ben bunu yapmıyorum. Piyasa düzenleri komisyoncunun işlem koşullarına bağlı değildir. Ben buna eğilimliyim.

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

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

fxsaber, 2023.08.19 11:10 AM

En yüksek potansiyel kâra göre seçim yapmak için geçmiş veriler için komisyoncu. Örneğin, EURUSD_Broker1'in potansiyeli EURUSD_Broker2'ninkinden daha yüksektir. Ardından EURUSD_Broker1'i alın.

Hem ana dallar hem de çaprazlar ölçeklenebilir. Ama hepsi değil. Sadece her biri üzerinde çalışın ve sonuçları görün. Ben de kabaca böyle yapıyorum.

Yani, "kayadaki altın" yoğunluğunun daha yüksek olduğu yerlerde arama yapmak mantıklıdır.


  • Söz konusu alanın uzunluğu göz önüne alındığında ihtiyacım olan minimum işlem sayısını belirledim
Evet, bu genetiğin çıkmaz dallara gitmemesi için bir tür yardımdır.
  • Eğriye uyum faktörünü ayarlamak.
Bu tam olarak bilerek yapmadığım bir şey. Örneğin, TS'yi PF>2,5 üretecek şekilde eğitebilirsiniz. Uygun sayıda işlemle, neredeyse otomatik olarak güzel bir eğri üretecektir. Çok fazla pratik yapmaya başlamadım. Ancak araştırma için elbette görmek her zaman ilginçtir.
Yayılmanın içinde bir şey aramanın bir anlamı yok ). Çok az işlem olacak, bu bir gerçek, onunla hiçbir şey yapamazsınız. Her yerde uydurma var, soru algoritmanın kendisine dikkat etmeden bunu nasıl en aza indireceğinizdir. Bunun yolları var. Sadece eğri tahmini olmadan, algoritmanın başlangıçta graal olduğu gerçeğine güvenebiliriz, ki bence parmaklarla sayılabilir. Onsuz nasıl yapılacağına dair yöntemlerim var, ama burada böyle bir şey yazmaktan korkuyorum ))).

TS ile spread arasındaki bağlantıyı anlamıyorum.

 
@fxsaber

  • Например, можно обучить ТС, чтобы выдавал PF>2.5. При должном количестве сделок это почти автоматом выдаст красивую кривую
Güzel olabilir, ancak şekil farklıdır, olası ilerleme şekle bağlıdır. En azından çalışan bir kurulum bulma olasılığını artıracaktır. 2,5 kar faktörü çok şişman, 1,5 oldukça fazla diyebilirim )) uydururken böyle sayılar genellikle olur. Daha fazla ayarı atarak kalan ayarları (kriterlerimi) ağırlıklandırmanın bir yolu gibi. Genelde robotikte ilginç bir paradigmaya geldim, asıl işin algoritmalar üzerine eklentiler tarafından yapıldığı ve algoritmaya çok az bağlı olduğu. Burada, belirli bir ayarın önemini artıran herhangi bir kriter değerlidir. Sonuçta, toplamda her biri kendi seviyesinde çalışır.

Geri kalanına katılıyorum.

.
  • TS'nin yayılma ile bağlantısını anlamıyorum
Eğer scalping ise, evet, burada teklif ve hepsini kullanıyoruz, kural olarak spread'den yüzer. Ancak keneler birçok insan için farklıdır ve çok şey buna bağlıdır). Sadece mesele şu ki, spread, puan cinsinden bir ticaretin ortalama büyüklüğünden olabildiğince küçüktü, sanki komisyoncuyu değiştirirken sinyali etkilememesi için spread'i ihmal ediyormuşuz gibi, örneğin, bu benim hayallerim).
 
Evgeniy Ilin #:
Güzel olabilir, ancak şekli farklıdır ve olası ilerleme şekle bağlıdır.

MaxBalance kriteri ile bulunan bir eğri örneği (güzelliğe göre değil).

 
fxsaber #:

MaxBalance kriteri ile bulunan bir eğri örneği (güzelliğe göre değil).

Bu şekilde seçilen birçok eğri görmek ilginç olacaktır (MaxBalance kriteri "güzelliğe göre değil").

 
Anatoli Kazharski #:

Bu şekilde seçilen birçok eğri görmek ilginç olacaktır ("güzelliğe göre değil" MaxBalance kriteri).

Bu, ilgili opt dosyasındaki altıncı sonuçtu. İlk beşi daha kötü görünüyor.

Giriş parametre setlerinin birbirine yakın olmaması için az sayıda GA geçişi yapıyorum.

 

Bir TS inşa etmek için bazı yaklaşımlar olduğu izlenimine sahibim, MaxBalance kriteri aşağıdan işlem sayısında bir sınırla birlikte her zaman Örnek üzerinde güzel bir eğri verir. Bu durumda böyle bir TS, OOS'ta tam bir kayıp olsa bile rasyonel bir şey olarak kabul edilebilir. Ancak Sharpe, R^2 veya bu makaledeki kriterlere göre güzellik aramak şüpheli görünüyor. Belki de yanılıyorumdur.