Bu kaosun bir düzeni var mı? Hadi bulmaya çalışalım! Belirli bir örnek üzerinde makine öğrenimi. - sayfa 5

 
elibrarius #:
Hatalardan kaynaklanan doğru bir mali sonuca ihtiyacımız var. Bunlar olmadan denge çizgisi güvenilmezdir.
Fin. res. 0 seçersek (dahil edemezsiniz, her zaman 0 olacaktır), 1 ise, -1 ise. Her zaman, 0 sınıfı olarak işaretleseniz bile işlem yapmayın. Model yanlış olacaktır ve hatanın bedelini bilmek gerekir.

Giriş yönünü belirleyen model değildir, bu nedenle yön ile ilgili bir hata varsa, giriş olmayacak ve dolayısıyla kayıp olmayacaktır.

 
Aleksey Vyazmikin #:

Giriş yönünü belirleyen model değildir, bu nedenle yön ile ilgili bir hata varsa, giriş olmayacak ve dolayısıyla kayıp olmayacaktır.

Bazen 1 veya -1 olarak tahmin edilecek olan 0 sınıfı hakkında yazdım. Finansal sonucun bilinmediğini yazmışsınız.

 
Aleksey Vyazmikin #:

Girişin yönünü belirleyen model değildir

Eğer bunu belirleyen model değilse, o zaman bunu öğretmeye gerek yoktur.

 
elibrarius #:

Bazen 1 veya -1 olacağı tahmin edilen 0 sınıfı hakkında yazdım. Onun hakkında finansal sonucun bilinmediğini yazdınız.

Sadece yönden vazgeçmeyin.

Sınıf sıfır ve yön +1 ise ve 1 olarak sınıflandırılmışsa, bir kayıp olacaktır - finansal sonuç modulo ile herhangi bir sütunu alın.

Sınıf sıfır ve yön +1 ise, ancak -1 olarak sınıflandırılmışsa, giriş ve kayıp olmayacaktır.

Sınıf sıfır ve yön -1 ise ve -1 olarak sınıflandırılmışsa, bir kayıp olacaktır - finansal sonuç modülüne sahip herhangi bir sütunu alın.

Sınıf sıfır ve yön -1 ise ve 1 olarak sınıflandırılmışsa, giriş olmayacak, kayıp olmayacaktır.

elibrarius #:

Eğer bunu belirleyen model değilse, bunu öğretmek için bir neden de yoktur.

Buradaki mantık basittir - bir dizi öngörücü, hatta bunların değerleri, fiyat hareketinin belirli bir yönüne daha fazla yönelir. Her şeyi sınıf 1 ve 0 ile birlikte öğrettiğimizde, esasen herhangi bir yönde güçlü bir hareketi belirleyen tahmin edicileri seçiyoruz - ve genellikle çok fazla yok, ancak her yöne kendi sınıfını verirsek, bazı istatistiksel çelişkiler ortadan kalkacak ve model zaten değerinin farklı uçlarında bir tahmin edicinin göstergelerini içerebilir, örneğin RSI 70/30 kolayca ayrılabilir.

Teorik olarak, sıfır sınıfı düzdür, bu nedenle her yön için yeterince benzer olmalıdır. Yine, örneği bir kerede iki parçaya böldüm - giriş yönüne göre ve öğrenme sonuçlarını iyileştirdi - yani daha yüksek bir model yüzdesi kar eşiği kriterini karşıladı.

 
Aleksey Vyazmikin #:

Sınıf sıfır ve yön +1 ise ve -1 olarak sınıflandırılmışsa, giriş olmayacak, kayıp olmayacaktır.

Öğretmen girmeyebilir. Ama model hata yapacak ve piyasaya girecektir. Model öğretmenden 0 ve +1'i bilmiyor, -1 tahminini aldı ve işlem yapacak

 
elibrarius #:

Öğretmen girmeyebilir. Ancak model bir hata yapacak ve piyasaya girecektir. Yoksa modelin tahmin ettiği gibi işlem yapmasını yasaklayan koşullu bir operatörünüz mü var? Korkarım denge kurmak için böyle bir operatör koyacak yerim yok.

Şu anda operatör yok, ancak bunun için veriler var ve bunlar "Target_P" sütununa yazılıyor - bu yüzden her şey oldukça başarılı bir şekilde çalışabilir.

İşte dengeyi oluşturmak için taslağını çizdiğim kod mantığının bir örneği

int Prognoz=0;//Сюда запишем прогноз
int Target_100[];//Фактическая целевая
int Target_P[];//Тип сделки - покупка/продажа
double Target_100_Buy[];//Финансовый результат от покупки
double Target_100_Sell[];//Финансовый результат от продажи
double Fin_Rez[];//Финансовый результат
int Strok_Total=0;//Всего строк
int Index_Fin_Rez=1;//Считаем число классифицированных 1 и -1 - это размер массива баланса и индекс массива Fin_Rez
ArrayResize(Target_100,Strok_Total);
ArrayResize(Target_P,Strok_Total);
ArrayResize(Target_100_Buy,Strok_Total);
ArrayResize(Target_100_Sell,Strok_Total);
ArrayResize(Fin_Rez,Strok_Total);
ArrayInitialize(Fin_Rez,0);
/*
Прочли данные файла в массивы - не знаю как реализовано у Вас
*/
for(int i=0; i<Strok_Total; i++)
{
/*
Сделали прогноз
*/
   if(Prognoz==-1 && Target_P[i]==-1)
   {
      Fin_Rez[Index_Fin_Rez]=Fin_Rez[Index_Fin_Rez-1]+Target_100_Sell[i];
      Index_Fin_Rez++;
   }
   if(Prognoz==1 && Target_P[i]==1)
   {
      Fin_Rez[Index_Fin_Rez]=Fin_Rez[Index_Fin_Rez-1]+Target_100_Buy[i];
      Index_Fin_Rez++;
   }
}
ArrayResize(Fin_Rez,Index_Fin_Rez);
 
Aleksey Vyazmikin #:

Şu anda operatör yok, ancak bunun için veri var ve "Target_P" sütununa yazılıyor - bu yüzden her şey oldukça iyi çalışabilir.

İşte dengeyi oluşturmak için taslağını çizdiğim kod mantığının bir örneği

Model yalnızca tahmine göre işlem yapmalıdır. Sonucu öğretmeni kullanarak hesaplarsanız - bu geleceğe bakmaktır. Ticaret sadece tahminlere göre yapılmalıdır. Gerçek gelecekte Target_100_Sell'e sahip olmayacaksınız.

Model öğretmenden 0 ve +1'i bilmiyor, -1 tahminini aldı ve işlem yapacak. Yalnızca her tahmin varyantının finansal sonucunu bilmeniz gerekir.

 
elibrarius #:

Model sadece tahmine göre işlem yapmalıdır. Sonucu öğretmeni kullanarak hesaplarsanız, geleceğe göz atmış olursunuz. Ticaret sadece tahminlere göre yapılmalıdır.

Model öğretmenden 0 ve +1 hakkında bilgi sahibi değildir, -1 tahmini almıştır ve işlem yapacaktır. Yalnızca her tahmin varyantının finansal sonucunu bilmeniz gerekir.

Göz atmanın bununla ne ilgisi var? Öğrenmeyi iyileştirmek için hedefi değiştiriyoruz, EA'nın mantığını değiştirmek için değil. Mantık, model olmadan giriş yönünü bilmemiz ve modelin bize girip girmememiz gerektiğini söylemesi gerektiğidir.

 
Aleksey Vyazmikin #:

ve model size girip girmeyeceğinizi söylemelidir.

Bunu zaten kontrol ettik.

 
elibrarius #:

Bunu zaten kontrol ettik.

Bakın, giriş noktalarımız var - örnek çizgiler ve çıkış noktaları tarafından tanımlanan bir finansal sonucumuz var, yani bir stop loss veya başka bir sinyalin ayarlandığı yerler. Stratejinin aksine piyasaya girmek istiyorsunuz, yani model öyle diyorsa satmanız gereken yerden satın almak istiyorsunuz ve bunun için yeni çıkış noktaları tanımlamanız gerekiyor. Soru ortaya çıkıyor, eğer çıkış noktası henüz ortaya çıkmadıysa, ancak giriş noktası ortaya çıktıysa, o zaman ne yapmalısınız - kapatın ve modele giriş yönünü sorun, ya da ne?