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

 
СанСаныч Фоменко #:

Bana herhangi bir AO örneği verebilir misiniz? Öğretmen bulmanın parça başı bir iş olduğu ve otomasyona uygun olduğu izlenimine kapılmıştım.

Yapabilirsin--

Eğer ilgi varsa, bunu mümkün olduğunca basit ve tekrarlanabilir hale getirmelisiniz...

Biraz zaman alacaktır.

 
mytarmailS #:

Yapabilirsin.

Eğer ilgi varsa, örneği mümkün olduğunca basit ve tekrarlanabilir hale getirmeliyiz...

biraz zamana ihtiyacın var

Bu benim için çok ilginç. Öğretmen arayışım uzun ve sancılı bir süreç.

 
mytarmailS #:

Probleminiz, bilinmeyen parametreleri araştıran bir optimizasyon problemidir.

İşte çalışmanız gereken TEK makale https://www.mql5.com/ru/articles/2225


AMO'ya kârı en üst düzeye çıkarmayı ve düşüşü en aza indirmeyi öğretmek istiyorsanız:


ihtiyacın var

1) alım satım sinyallerinden elde edilen kar ve zararları sayacak bir işlev olan bir uygunluk işlevi oluşturun.

2) uygunluk fonksiyonu için ticaret için sinyaller üretecek herhangi bir MO algoritması (s.1)

3) AMO için hedef olarak sinyaller üretecek herhangi bir optimizasyon algoritması (genetik, parçacık sürüsü, çalkalama) (s.2).


bunun gibi algoritma

1) AO, AMO için bir hedef oluşturur

2) AMO bu hedef üzerinde eğitilir

3) AMO ticaret sinyalleri için bir tahmin oluşturur

4) ticaret sinyalleri FF tarafından değerlendirilir ve bir sonuç üretir

5) FF sonucu AO tarafından değerlendirilir ve kabul edilebilir bir sonuç elde edilene kadar bir daire içinde maksimize/minimize edilir.


==========

AO - optimizasyon algoritması

AMO - makine öğrenimi algoritması

FF - uygunluk fonksiyonu

=========


ps. eğer herhangi bir AMO ile değil de neuronka ile çalışmak istiyorsanız, hedeflemeyi öğrenmeden AO aracılığıyla ağırlıkları değiştirebilirsiniz.

Teşekkür ederim!

Cevabın bu şekilde formüle edilmesi, sinyallerin netliği ve somutluğunun, çeşitliliğinin ve aşırı esnekliğinin eksik olduğu manuel ticaretin somutlaştırılması sorusuna yol açtı. Yani, düşünmek için yiyecek var.

 
СанСаныч Фоменко #:

Bu benim için çok ilginç. Öğretmen arayışım uzun ve sancılı bir süreç.

İşte AO aracılığıyla rendom ormanını öğretmenin kodu,

uygunluk fonksiyonu (HEDEFİMİZ) güzel/istikrarlı bir kar büyümesi, yani bilanço dinamikleri ile düz büyüme çizgisi arasındaki maksimum korelasyonu bulmaktır

#  install.packages(c("randomForest","GA"))
library(randomForest)
library(GA)


#  создаю фейковые данные для простоты воспроизводимости
price <- cumsum(rnorm(100))
X <- embed(price,dimension = 10)[,10:1]
X <- t(apply(X,1,scale))
price <- tail(price,nrow(X))

#  настройка графики
par(mar=c(2,2,2,2))
layout(1:2)

#  запускаю генетический алгоритм
#  который "придумывает" такой таргет полсе обучения на котором
#  АМО даст самый красивый прирост капитала
best_res <- 0
GA <- ga(type = "real-valued",
         fitness = fitness, 
         lower = rep(-5,nrow(X)),
         upper = rep( 5,nrow(X)),
         popSize = 100,
         maxiter = 50,
         run = 20)


İşte kar ve FF'yi hesaplamak için fonksiyonların kodu.

#  простая функция которая считает прибыль ( возможно не верно :)  ) 
count_equity <- function(trade_signal, price)  cumsum(c(diff(price),0)*trade_signal)

#  ФФ которая берет выход из АО и обучает АМО
fitness <- function(ga_out){
  
  target <- ga_out
  set.seed(123)
  rf <- randomForest(target~., X, ntree=100)
  pr <- predict(rf,X)
  
  trade_signal <- sign(pr)
  balance <- count_equity(trade_signal = trade_signal,price = price)
  res <- cor(balance, 1:length(balance))
   
  #  просто графика, необезательный елемент
  if(res>best_res){
    best_res <<- res
    plot(price,t="l",main="price")
    color <- ifelse(trade_signal==1,3,2)
    points(price,col=color,lwd=5,pch=20)
    plot(balance,t="l",col=4,main="balance")
  }
  return(res)
}



İşte sonuç, AO AMO için öyle bir hedef buldu ki, sinyallerini takas edersek güzel bir kar artışı elde edeceğiz.


 
Elvin Nasirov #:

Teşekkür ederim!

Bu cevap hemen, sinyallerin netliği ve somutluğunun, çeşitliliğinin ve aşırı esnekliğinin eksik olduğu manuel ticaretin somutlaştırılması sorusuna yol açtı. Yani, düşünmek için yiyecek var.

Hala manuel ticaretimi somutlaştıramıyorum....

 
mytarmailS #:

İşte Rendom Forrest'ı AO araçlarıyla öğretmek için kod,

uygunluk fonksiyonu (HEDEFİMİZ) - güzel/istikrarlı bir kar büyümesi, yani bilanço dinamikleri ile düz bir yükselen çizgi arasındaki maksimum korelasyonu bulmak


İşte kar ve FF hesaplama fonksiyonlarının kodu



İşte sonuç, AO AMO için öyle bir hedef buldu ki, sinyallerini takas edersek güzel bir kar artışı elde edeceğiz


Yani? ) Yeni verilerde sonucu nasıl etkiler? Basit işaretleme ile ff olmadan yapılır.
 
Elvin Nasirov #:

Başka işaretlemeler yapmak için tembel olduğumu söyleyemem, farklı varyantlar deniyorum ve makine öğrenimi konusunda uzman olmadığım için, aklıma bir fikir geldiğinde, sonuca ulaşmak için en azından bazı örnek varyantları bulmaya çalışıyorum.

Kendi gösterge değerleriyle çözümün parametrik bir versiyonunu yapmaya çalıştığımda, ancak mevcut hesaplama gücü ile parametrelerin seçiminin neredeyse 10 yıl süreceği gösterge değerleri kümesinin çok fazla varyantı olduğu ortaya çıktı).

"Piyasadan karlı herhangi bir TS almak" ifadesini okuduğumda şaşırdım. Orada olmadıklarını düşündüğüm için bu seçeneği düşünmemiştim bile.

Bunların hepsi bir tür karmaşık algı. Verimsizliği bulmanız gerekiyor. Kendiniz bulamazsanız, başkalarında arayın. Piyasada geçmişi olan sinyaller var.
 
Maxim Dmitrievsky #:
Ne olmuş yani? ) FF olmadan basit bir biçimlendirme.

Eğer bu kadar basit olsaydı, AO ve FF olmazdı...


Tam olarak neye ihtiyacımız olduğunu bildiğimizde ve bunu nasıl algoritma haline getireceğimizi anladığımızda, bunu işaretleme ile yapabiliriz.

Ve sadece "Nasıl görünmesi gerektiğini bilmiyorum, ama iyi görünmesini sağla" demek istediğimiz durumlar da var.

Tanımlayabileceğimiz tek şey iyi/kötüdür, FF'ye konulan da budur.


İşte bir görev örneği:

Görev, öyle bir AMO eğitmektir ki, sınıflardan biriyle ilgili yeni veriler üzerindeki tahminlerinde hata yapmaz, sınıflardan birinin hata yapması yasaktır...

böyle bir işaretleme nasıl yapılır?


 
mytarmailS #:

Eğer bu kadar basit olsaydı, AO ve FF olmazdı.


Tam olarak neye ihtiyacınız olduğunu bildiğinizde ve bunu nasıl algoritmaya dönüştüreceğinizi anladığınızda, işaretlemeyi kullanabilirsiniz.

Ve sadece şunu söylemek istediğimiz durumlar da var - nasıl görünmesi gerektiğini bilmiyorum ama iyi görünmesini sağlayın.

Tanımlayabileceğimiz tek şey iyi/kötüdür ve FF'de yerleşik olan da budur.


İşte bir görev örneği:

Görev AMO'yu sınıflardan birine ilişkin yeni veriler üzerindeki tahminlerinde hata yapmayacak şekilde eğitmektir; sınıflardan birinin hata yapması tamamen yasaktır....

bunu işaretleme ile nasıl yapabilirim?


İşaretlemeden sonra, kaybeden işlemleri 3. sınıfa atarsınız ve aynı düz eğri elde edilir.
Peki optimizasyon kriterlerinin seçimi yeni veriler için nasıl bir şey yapabilir? Bu, hazır bir TS'yi geliştirmenin bir yoludur. Özel kayıpları aramak ve yeni verilerde ne olduğunu görmek mi? Bu da iyi bir fikir değil.
 
Maxim Dmitrievsky #:
İşaretledikten sonra, kaybeden işlemleri 3. sınıfa atarsınız ve aynı yumuşak eğri elde edilir.

Bu sınıflarla ne kadar çok kod yazmanız, onları dışarı atmanız, yeniden eğitmeniz gerekiyor ...

FF'de sadece 2 satır yazıyorum, bir sınıf hatası için ceza veriyorum ve doğru bir cevap için ödüllendiriyorum ve hepsi bu, ve sonra bunu kendi başına nasıl yapacağını hayal ediyor ve bir kod dağına ihtiyaç duymuyor....


Tamam, bu kolaydı, başka bir görev örneği

AMO girdisi eurodollar ve çıktının şu şekilde bir seri olmasını istiyorum

1) pound ile eşbütünleşik

2) arbitraj AMO satır / pound ticareti yaparsak, böylece bir kar olur.

bu işaretleme yoluyla nasıl yapılabilir?

Maxim Dmitrievsky #:
optimizasyon yeni veriler için bir şeyler yapabilir mi?

Normal MO'da olduğu gibi, bir gözümüz pistte, diğer gözümüz testte olacak şekilde antrenman yapar ve bakarız.