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

 

Teşekkürler, sütunlara baktım, prensipte zaten yaptım - deltas, min, max, time, vb.

Sadece Forex için bir ticaret modeli oluşturma yöntemi benim için daha karmaşık hale geliyor, basit yöntemler istikrarlı sonuçlar vermiyor. Şimdi bunu şöyle görüyorum:

1) MT5'ten veri yükleyin: ohlc, zaman, göstergeler. Bu aşamada delta eklemeyeceğim.

2) verileri R'ye yükleyin, orijinal sütunlardan ekleyerek, çıkararak, min, max, vb. ile ona çok sayıda yeni sütun ekleyin. R'de bunu yapmak mt5'ten daha kolaydır.

3) bir şekilde giriş verilerinin alt kümelerini seçin (sütunlara göre). Alexei örneğini GenSA kullanarak veya sadece GA paketi ile genetik optimizasyonu takip edebilirsiniz. Her giriş için (açık / kapalı) yalnızca bir ikili sonuca ihtiyacım olduğundan, bence GA, ikili bir çalışma moduna sahip olma avantajına sahiptir. Ancak her iki paketi de denemeniz ve karşılaştırmanız gerekir.

4) girdilerin alt kümelerinin analizi. Bu aynı zamanda Alexey'nin örneğinde de var. Ancak modeli hemen bir girdi alt örneği üzerinde eğitmeye ve sonuç olarak doğrulama verilerinin hatasını kullanmaya girişeceğim. Keşke modelin eğitim süresi birkaç saniyeden fazla olmasaydı.

5) 2. adıma dönün, yeni sayılan girdiler ekleyin, kalan adımları gerçekleştirin, sonucun iyileşmesi durana kadar bu tür döngülerden geçin.

Temel Bileşen Yöntemi hakkındaki makale üzerinde biraz daha deney yaptım. Makaledeki örnekte, sonucun girdi verilerinden doğru bir şekilde hesaplanabileceği bir nüans vardır. Benim durumumda, giriş verileri açıkça yeterli olmadığında, bu yöntem eğitim için gürültü kullanmaya başlar. Bu yöntem, sadece birkaç bileşenle 0.95'lik bir sonuç (r-kare) elde edebiliyorsa, modelde kullanılan tahmin edicilerin büyük olasılıkla doğru olduğu ortaya çıkıyor. Tüm bileşenler kullanılsa bile, r-kare hala 0,95'ten küçükse, model hesaplamalarına gürültüyü de dahil eder. Bununla birlikte, ek gürültü öngörücülerinin eklenmesiyle - r-squared'in yavaş yavaş düşmesi dikkat çekicidir. Bu şekilde tahmin edicilerin alt kümelerini birbirleriyle karşılaştırmak mümkün olur - r-kare daha büyükse, alt küme daha iyidir.

 
Dr.Tüccar :


Temel Bileşen Yöntemi hakkındaki makale üzerinde biraz daha deney yaptım. Makaledeki örnekte, sonucun girdi verilerinden doğru bir şekilde hesaplanabileceği bir nüans vardır. Benim durumumda, giriş verileri açıkça yeterli olmadığında, bu yöntem eğitim için gürültü kullanmaya başlar. Bu yöntem, sadece birkaç bileşenle 0.95'lik bir sonuç (r-kare) elde edebiliyorsa, modelde kullanılan tahmin edicilerin büyük olasılıkla doğru olduğu ortaya çıkıyor. Tüm bileşenler kullanılsa bile, r-kare hala 0,95'ten küçükse, model hesaplamalarına gürültüyü de dahil eder. Bununla birlikte, ek gürültü öngörücülerinin eklenmesiyle - r-squared'in yavaş yavaş düşmesi dikkat çekicidir. Bu şekilde tahmin edicilerin alt kümelerini birbirleriyle karşılaştırmak mümkün olur - r-kare daha büyükse, alt küme daha iyidir.

Şu anda, hedef değişkenle "ilişkili" olan tahmin edicilerin ön seçimi hakkında elimizde ne var gibi görünüyor: Alexey'nin bir takım hileleri var ve benim de var. Başka birine sahip olmaktan zarar gelmezdi. PCA çok çekici, çünkü yaygın olarak biliniyor, çok fazla literatür var .... Tahmin edicilerin "önemini" hesaplayan çok sayıda algoritma olduğuna dikkat edilmelidir, ancak bunları kullanmayı başaramadım. . Ancak benim algoritmalarımla birlikte, bu standart algoritmaların neredeyse tamamı iyi sonuçlar veriyor - hata %5-7 oranında azaltılıyor.

Ve ilk tahmin edicilerin sayısı, bence, birkaç binde gözlem sayısı ile birkaç onluk olarak alınmalıdır. İstatistikte, bir şey yeterli değilse, o zaman istatistik yoktur.

 
Dr.Tüccar :

Teşekkürler, sütunlara baktım, prensipte zaten yaptım - deltas, min, max, time, vb.



Rica ederim. Benim setimde de pratik yapabilirsiniz. Deneyin niteliksel bir tasarımı var. Veriler iyi. Ve doğrulamada olumlu bir sonuç almak kolay değil.

1) MT5'ten veri yükleyin: ohlc, zaman, göstergeler. Bu aşamada delta eklemeyeceğim.

2) verileri R'ye yükleyin, orijinal sütunlardan ekleyerek, çıkararak, min, max, vb. ile ona çok sayıda yeni sütun ekleyin. R'de bunu yapmak mt5'ten daha kolaydır.

3) bir şekilde giriş verilerinin alt kümelerini seçin (sütunlara göre). Alexei örneğini GenSA kullanarak veya sadece GA paketi ile genetik optimizasyonu takip edebilirsiniz. Her giriş için (açık / kapalı) yalnızca bir ikili sonuca ihtiyacım olduğundan, bence GA, ikili bir çalışma moduna sahip olma avantajına sahiptir. Ancak her iki paketi de denemeniz ve karşılaştırmanız gerekir.

Burada iki noktayı gözlemlemenizi tavsiye ederim: birincisi - girdiler, ortalamalarına göre tamamen durağan olmalıdır. İkincisi, sütun numaralandırma mekanizması ile ilgilidir; evet, GA'nın ikili modu vardır. GenSA yapmaz, ancak bir ikili seçimi simüle ettim.

4) girdilerin alt kümelerinin analizi. Bu aynı zamanda Alexey'nin örneğinde de var. Ancak modeli hemen bir girdi alt örneği üzerinde eğitmeye ve sonuç olarak doğrulama verilerinin hatasını kullanmaya girişeceğim. Keşke modelin eğitim süresi birkaç saniyeden fazla olmasaydı.

Fikir güzel! Ancak, genellikle binlerce yineleme gerektiğinden, tüm sürecin hala uzun sürebileceğini unutmayın. Bu uygunluk fonksiyonu, tüm model içinde hesaplandığı için en karmaşık olanıdır. Böyle bir öğrenme olmadığında, sözde filtreleme uygunluk fonksiyonunu kullanıyorum, ancak girdilerin çıktıyı daha geniş anlamda ne kadar etkilediğini belirleyen bir buluşsal yöntem var. Hesaplama iki saniyeden daha hızlı olabilir. Ama sırayla değil.

Sadece Forex için bir ticaret modeli oluşturma yöntemi benim için daha karmaşık hale geliyor, basit yöntemler istikrarlı sonuçlar vermiyor. Şimdi bunu şöyle görüyorum:

Şimdiye kadar, deneyin tasarımında yeni tahmin ediciler ve her türlü küçük iyileştirmeler ekleyerek puan kazandım.

Henüz hayata geçirmediğim bir fikrim var. Gerçek şu ki, biz, siz ve genel olarak herkes, bir işlemin kapatılması için belirli bir koşulu, örneğin 3 saat ilerisini veya fiyat al veya dur seviyesine ulaştığında tahmin ediyoruz.

Ve sonuçlar sahte. VEYA operatörü aracılığıyla işlenen bir anlaşmayı kapatmak için MT4'e birkaç eşzamanlı koşul girdiğimde, seçimin dışında bile pozitif bir OM alıyorum.

Bu nedenle, aynı anda birkaç koşula dayalı bir işlemin sonucunun tahminini R'de nasıl simüle edeceğimi düşündüm. Örneğin, fiyat 3 saat içinde TP'ye ulaştıysa kapatın. Ancak aynı zamanda, 3 saatlik parametre katı bir şekilde sabitlenmemelidir, çünkü aynı zamanda en uygun şekilde seçilmelidir. Ve öyle bir koşul eklersek ki, fiyat 3 saat içinde yükseldiyse ancak TP'ye ulaşmadıysa, o zaman başabaş için STOP'u çekmeniz gerekir.

Bu durumda pozisyona giriş de makine tarafından tahmin edilir.

İşte akılda kalan bir görev.

 
Alexey Burnakov :

Bu nedenle, aynı anda birkaç koşula dayalı bir işlemin sonucunun tahminini R'de nasıl simüle edeceğimi düşündüm. Örneğin, fiyat 3 saat içinde TP'ye ulaştıysa kapatın. Ancak aynı zamanda, 3 saatlik parametre katı bir şekilde sabitlenmemelidir, çünkü aynı zamanda en uygun şekilde seçilmesi gerekir. Ve öyle bir koşul eklersek ki, fiyat 3 saat içinde yükseldiyse ancak TP'ye ulaşmadıysa, o zaman başabaş için STOP'u çekmeniz gerekir.

Uzmanlarla ticaret deneyimimden TP ve SL'yi sevmiyorum. Ticaret sistemi doğru bir şekilde kurulursa, işlemlerden kendi çıkışları TP ve SL'deki çıkışlardan daha etkili olacaktır.

SL ve TP'nin optimal değerleri zamanla değişir, sabit bir sabit değer yoktur. Belirli bir alanda ticaret sisteminin verimliliğini artıracak bazı TP ve SL bulabilirsiniz, ancak bu durumda, bu alanın dışında stratejinin etkinliği düşecektir. SL'yi hareket ettirmemek, ancak "bir şeyler ters gitti" mesafesini korumak ve genellikle fiyat sl'ye ulaşırsa ticareti durdurmak, hataları analiz etmek ve ticaret stratejisini optimize etmek daha iyidir.

Ancak yine de TP kullanan, kendi kendini optimize eden bazı zorlu Uzman Danışmanlar var. Anladığım kadarıyla, eğitim örneğinin kendisine sabit bir TP koymanız gerekiyor. Örneğin, benim durumumda, modelin eğitiminin sonucu 0/1 - bir sonraki çubuk için fiyat düştü / yükseldi. Ancak, fiyat önce yükselir ve TP seviyesine ulaşırsa, çubuğun sonunda ilk fiyatın altına düşerse, eğitim örneğinde "0" yerine "1" sonucunu koymanız gerekir (çünkü anlaşma TP'de bir karla kapatın ve çubuğun sonuna kadar daha fazla ticaret olmayacak). TP genellikle küçüktür, 50 pip'ten azdır ( dört basamakta 5 pip). SL - sadece "her şey ters gitti" durumunda on kat daha fazla. Ön test veya ticaret için TP optimize edilemez, yalnızca eğitim örneğini oluştururken kullanılan kullanılabilir. Gerçekten çok başarılı stratejiler gördüm, bu yönde kazabilirsiniz diye düşünüyorum.

 
Dr.Tüccar :

Uzmanlarla ticaret deneyimimden TP ve SL'yi sevmiyorum. Ticaret sistemi doğru bir şekilde kurulursa, işlemlerden kendi çıkışları TP ve SL'deki çıkışlardan daha etkili olacaktır.


Ve kendi çıktıları nasıl formüle ediliyor? Sadece zamana göre mi?

Bir saat içinde kapat diyorsanız, ancak TP saat içinde bozulursa, bu sonuç 1 olacaktır, o zaman kapanış için karmaşık koşullar zaten kullanılıyor.

TP hakkında 5 puan ve SL on kat daha fazla - bir seçenek olarak, ancak böyle bir TP karları tüketecek.

 

Bu hafta sizlerleyim ve geçen hafta saat dilimlerine göre ayrıldığı için canlı diyalog yok. İş için California'da Sushu..

Genel olarak, ben (belki de siz) deneyi zaten iyi tasarlayabilir, sonuçları eğitebilir ve doğrulayabilirim. Ayrıca fazla tahmin edicileri de toplayabilirsiniz.

Bence yakalama, bir saat içinde kapanış gibi sabit bir hedefe dayalı bir ticareti tahmin etmenin en iyi seçenek olmaması ve sonuçların zayıf olmasıdır.

MT test cihazında, denge ve kurtarma faktörüne göre optimizasyon yapıyorum. R'de, yönleri tahmin etme veya fiyat farklılıklarını tahmin etme doğruluğunu optimize ediyorum. Kim ne derse desin bunlar farklı şeyler.

Örneğin, kârın maksimize edileceği öğrenme yöntemi için kendi kayıp fonksiyonunuzu R'ye yazmaya çalışın. Bu işlev, bazı öğretim yöntemleriyle ikame edilebilir.

 
Alexey Burnakov :

Bu hafta sizlerleyim ve geçen hafta saat dilimlerine göre ayrıldığı için canlı diyalog yok. Sushu California'da iş için..

Genel olarak, ben (belki de siz) deneyi zaten iyi tasarlayabilir, sonuçları eğitebilir ve doğrulayabilirim. Ayrıca fazla tahmin edicileri de toplayabilirsiniz.

Bence yakalama, bir saat içinde kapanış gibi sabit bir hedefe dayalı bir ticareti tahmin etmenin en iyi seçenek olmaması ve sonuçların zayıf olmasıdır.

MT test cihazında, denge ve kurtarma faktörüne göre optimizasyon yapıyorum. R'de, yönleri tahmin etme veya fiyat farklılıklarını tahmin etme doğruluğunu optimize ediyorum. Kim ne derse desin bunlar farklı şeyler.

Örneğin, kârın maksimize edileceği öğrenme yöntemi için kendi kayıp fonksiyonunuzu R'ye yazmaya çalışın. Bu işlev, bazı öğretim yöntemleriyle ikame edilebilir.

Son zamanlarda, aşağıdaki planı uyguluyorum.

Göstergeler konusunda eski trend danışmanımı aldım. Tam teşekküllü bir danışman, gerçek hayatta ticaret yapıyor.

Daha ileri.

İçinde kusurlar arıyorum ve bu kusurları R'nin yardımıyla azaltmaya çalışıyorum.

Örneğin.

Genel talimatı kıdemli bardan alıyorum. Ancak zamana daha yakından bakıldığında, özellikle alt çubuklar açısından korkunç bir gecikme var. Yani bu D1 ise ve M5 üzerinde işlem yapıyorsam, o zaman yön için dünün verilerinden neredeyse bir gün önce aldığım ortaya çıkıyor. D1 için %30 hata ile bir adım önde olan bir tahmin bile Expert Advisor'ın karlılığını kökten iyileştirdi ve en önemlisi başarısız olmayacağına olan güveni artırdı.

Belki de böyle bir yol, modernize etmek için hazır, kötü de olsa bir danışmanın bazı unsurlarının R'de bir tahminidir?

Bu fikri nasıl buldunuz?

 

Geçenlerde akıllı laboratuvar için bir makale yazdım. Zayıf topluluk, ancak yararlı bir şey var:

http://smart-lab.ru/search/topics/?q=%D0%B4%D0%BB%D1%8F+%D0%BB%D1%8E%D0%B1%D0%B8%D1%82% D0%B5%D0%BB%D0%B5%D0%B9+fx

 
San Sanych Fomenko :

Son zamanlarda, aşağıdaki planı uyguluyorum.

Göstergeler konusunda eski trend danışmanımı aldım. Tam teşekküllü bir danışman, gerçek hayatta ticaret yapıyor.

Daha ileri.

İçinde kusur ararım ve bu kusurları R'nin yardımıyla azaltmaya çalışırım.

Örneğin.

Genel talimatı kıdemli bardan alıyorum. Ancak zamana daha yakından bakıldığında, özellikle alt çubuklar açısından korkunç bir gecikme var. Yani bu D1 ise ve M5 üzerinde işlem yapıyorsam, o zaman yön için dünün verilerinden neredeyse bir gün önce aldığım ortaya çıkıyor. D1 için %30 hata ile bir adım ilerideki bir tahmin bile Expert Advisor'ın karlılığını kökten iyileştirdi ve en önemlisi başarısız olmayacağına olan güveni artırdı.

Belki de böyle bir yol, modernize etmek için hazır, kötü de olsa bir danışmanın bazı unsurlarının R'de bir tahminidir?

Bu fikri nasıl buldunuz?

Fikir ilginç. Ayrıca çalışan danışmanlarım var. Belki onları nasıl güncelleyeceğimi düşünürüm. Ama neyin iyileştirilmesi gerektiğini anlamıyorum. Makineye ne öğretilmeli?

EA'nın pozisyonları açmak ve kapatmak için katı bir mantığı vardır. Makine öğreniminde karar biraz farklı bir şekilde verilir.

Yani tam olarak ne yapacağınız tam olarak belli değil.

 
Alexey Burnakov :

Fikir ilginç. Ayrıca çalışan danışmanlarım var. Belki onları nasıl güncelleyeceğimi düşünürüm. Ama neyin iyileştirilmesi gerektiğini anlamıyorum. Makineye ne öğretilmeli?

EA'nın pozisyonları açmak ve kapatmak için katı bir mantığı vardır. Makine öğreniminde karar biraz farklı bir şekilde verilir.

Yani tam olarak ne yapacağınız tam olarak belli değil.

Ne yapılması gerektiği açık. Başka bir net değil - bunun için ne gerekli. İlk olarak, başka bir sistemin doğru çalışmasını analiz eden ve/veya parametreleri kontrol eden bir sistem varsa, o zaman kontrol edilen sistem gereksiz hale gelir, yeterince kontrol eder, çünkü bunları çiftler halinde kullanırsanız, o zaman her ikisi için de genel verim düşecektir. ve bunları ayrı ayrı kullanmaktan daha düşük olacaktır. Örneğin, %70 doğru karar veren bir sistem var ve bir veya daha fazla parametreyi %99 doğrulukla kontrol edebilen bir sistem var, o zaman nihai verim şuna eşit olacaktır:

0,7*0,99=0,693

ve bu, sistemlerin ayrı ayrı olduğundan daha düşüktür.

Amin. Orijinal sistemi "kontrolörler" olmadan geliştirmeye çalışmak daha iyidir.

Neden: