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

 
elibrarius :

eksik)

Başka bir nokta, örneğin 0 değil, örneğin 0,5 alırsanız - yönteminizle bile örnekten örneğe "yüzer".

Her giriş için yalnızca sabit manuel aralık ayarı yardımcı olacaktır. Ama nasıl tanımlanacağı belli değil. Örneğin, verileri bir yıl boyunca çalıştırabilir ve emisyonların %1-5'ini atabilir. Ve yıl boyunca onlar üzerinde çalışın. Her ne kadar bir yıl içinde değişecekler.


evet, önce mevcut maksimum örneği almanız ve böleni bulmanız gerekir (nedense çarpan olarak adlandırdım :)

ve eğer yeni örnekte aniden daha büyük bir değer olacaksa .. peki, zaten ona bölünmesi gereken şey. Ancak bu, küçük bir gecikmeyle artışlar yaparsanız nadiren olur, örneğin close[0]/close[10].. ve close[0]/close[100] ile zaten daha sık olabilir .. ama bana öyle geliyor ki zaten bir istisna var, bu nedenle NN'yi periyodik olarak yeniden eğitirseniz daha fazlası

0,5'i düşünecek zamanım yok, ziyarete gidiyorum .. :)

 

Yalnızca hedef değişkenle İLİŞKİLİ olan tahmin edicileri kullanın. Bu durumda, "doğrusal" veya "doğrusal olmayan" önemli değil, çok kesin olarak formüle edilmiş "ilgili" ile ilgili değiller.

"İlgili"nin anlamını açıklığa kavuşturmak için bu başlıkta birkaç kez verdiğim örneği tekrarlayacağım.


Hedef: nüfus, iki sınıfa sahiptir: erkekler ve kadınlar

Bir öngörücü alıyoruz: giysiler. İki anlamı vardır: pantolon ve etek.

Bu tür sınıflar ve böyle bir tahmin edici ile, tahmin edicinin bir kısmı bir sınıfı, diğerini - "pantolon-erkek", "etek-kadın" ilkesine göre tahmin edecektir. İdeal olarak, hatasız bir sınıflandırma oluşturabilirsiniz.

Bu sistemi İskoçlara uygularsak, her iki cinsiyetin de giydiği "etekler" üzerinde bir kesişme olacaktır. Bu kesişim, üstesinden gelinemeyecek hataya bir üst sınır verecektir.


Bu durumda modeli iki farklı zaman dosyasında kontrol etmek zorunludur: 1 Ocak'tan önce ve 1 Ocak'tan sonra.

İlk dosyada: öğret, test et ve örneklem dışı. Üç hata değerinin tümü yaklaşık olarak eşitse, ikinci dosyada çalıştırırız - hata ilk üçten çok (% 10'dan fazla değil) farklı olmamalıdır.

BU MODEL YENİDEN EĞİTİLMEMİŞTİR.


not.

Hedefle, "kahve telvesi" ile ilgili olmayan tahmin ediciler eklerseniz, hata büyük ölçüde azaltılabilir. Örneğin hatanın %10'dan az olduğu modelleri dikkate almıyorum. Ama her zaman aynıdır: ikinci dosyadaki hata, ilk dosyadaki hataların katlarıdır. Model OVERTAINED, gürültüden bazı değerler aldı, sınıflandırma hatasını azaltmaya çalışıyor ve gelecekte büyük olasılıkla böyle değerler olmayacak veya olmayacak veya bir zamanda .... Bu model tahmin yeteneği yoktur .

 
San Sanych Fomenko :

İlk dosyada: öğret, test et ve örneklem dışı. Üç hata değerinin tümü yaklaşık olarak eşitse, ikinci dosyada çalıştırırız - hata ilk üçten çok (% 10'dan fazla değil) farklı olmamalıdır.

arasındaki fark nedir?

1) ilk dosyadan "örnek dışı" + başka bir dosya "örnek dışı" arsa

2) ve ikinci dosya da dahil olmak üzere bir "örnek dışı" ancak daha büyük alan?

Bence sonuç aynı olacak. İlk varyanta göre ikinci dosyada her şey kötüyse, ikinci varyantta aynı veriler her şeyi mahveder.

 

Eh, genel olarak, bir kural olarak, Millet Meclisini eğitirken üç bölüm vardır. Eğitim, Test ve Kontrol. Kontrol bölümündeki hata normal aralıkta ise modelin yeniden eğitilmediği kabul edilir. BENİM NACİZANE FİKRİME GÖRE.

 
Michael Marchukajtes :

Eh, genel olarak, bir kural olarak, Millet Meclisini eğitirken üç bölüm vardır. Eğitim, Test ve Kontrol. Kontrol bölümündeki hata normal aralıkta ise modelin yeniden eğitilmediği kabul edilir. BENİM NACİZANE FİKRİME GÖRE.

Katılıyorum, ancak SanSanych'in neden 4. bölgeyi (ikinci kontrol bölgesi) tanıttığı açık değil. Sonuçta, biri her ikisini de içerecek şekilde genişletilebilir.
 
elibrarius :

arasındaki fark nedir?

1) ilk dosyadan "örnek dışı" + başka bir dosya "örnek dışı" arsa

2) ve ikinci dosya da dahil olmak üzere bir "örnek dışı" ancak daha büyük alan?

Bence sonuç aynı olacak. İlk varyanta göre ikinci dosyada her şey kötüyse, ikinci varyantta aynı veriler her şeyi mahveder.


İlk dosya rastgele üç parçaya bölünür, yani. Tarihe göre eğitim, test ve kontrol örneklerinin parçaları serpiştirilmiştir. Gerçek ticarette bu olmaz.

Ama ikincisi ticaretin taklididir: Biz her zaman eğitim bölümünden SONRA ticaret yaparız. Sizin düşüncenizin aksine, çoğu zaman ikinci dosyadaki sonuçlar birinci dosyadaki sonuçlardan çok farklıdır - model yeniden eğitilmiştir ve kullanıma uygun değildir.

 
Grigory Chaunin :

https://github.com/RandomKori/Py36MT5 İşte MT5 için Python kitaplığı kaynakları. Sadece burada dizilerle ilgili sorun var. Bir diziyi geçirmek veya bir diziyi almak düzgün çalışmıyor. Visual Studio'da DLL kodunda hata ayıklandı. İçinde her şey çalışıyor. Soru, bunun bir terminal hatası olabileceğidir. Kütüphane ile nasıl çalışılacağını yazmadı. Amacı yok. Diziler olmadan kimsenin buna ihtiyacı yoktur. Her ne kadar pythom.mqh dosyasında karışmış olsa da, çözmeme yardım edin. Herkes faydalanacak.

İyi fikir ve kullanışlı MT5 kitaplığı, sadece python komut dosyası dosyasıyla senkronizasyon yapmak oldukça güç bir IMHO.

Yerel bir sözlük aracılığıyla MQL değişkenlerini python değişkenleriyle doğrudan senkronize etmenin ve Python kod parçalarını doğrudan EA kodundaki dize sabitlerinden yürütmenin daha iyi olduğunu düşünüyorum.

Burada bcc64'ü komut satırından derleyerek testi denedim - python 3.6'da iyi çalışıyor:

 #include <stdio.h>
#include "python.h"
#pragma link "python36.lib"

int main( int argc, char **argv)
{
  Py_Initialize();
  PyObject* main = PyImport_AddModule( "__main__" );
  PyObject* global = PyModule_GetDict(main);
  PyObject* local = PyDict_New();

   int a, b = 2 , c = 2 ; // synchronize python variables and calc a = b * c
  PyDict_SetItemString(local, "b" , PyLong_FromLong(b));
  PyDict_SetItemString(local, "c" , PyLong_FromLong(c));
  a = PyLong_AsLong(PyRun_String( "b * c" , Py_eval_input, global, local));
   printf ( "%d*%d=%d\n" ,b,c,a);

  PyRun_SimpleString( "import sys" ); // import python sys and read version
   printf (_PyUnicode_AsString(PyRun_String( "sys.version" , Py_eval_input, global, local)));

  Py_Finalize();
   return 0 ;
}

Kitaplığınıza böyle bir işlevsellik eklemek fena olmazdı, ben zaten kendiminkini yazacaktım ama şimdilik ne yazık ki python için P-no kitaplığı ile meşgulüm.

Bu arada, bu yeni sinir ağı hakkında burada iş parçacığında yazdım, Fisher's Irises ile örnekler üzerindeki ön test sonuçlarına göre, eşit test sonuçlarıyla TensorFlow'da DNN'den üç büyüklük mertebesi daha hızlı öğrenir.

 
San Sanych Fomenko :

İlk dosya rastgele üç parçaya bölünür, yani. Tarihe göre eğitim, test ve kontrol örneklerinin parçaları serpiştirilmiştir. Bu gerçek ticarette olmaz.

Ama ikincisi ticaretin taklididir: Biz her zaman eğitim bölümünden SONRA ticaret yaparız. Sizin düşüncenizin aksine, çoğu zaman ikinci dosyadaki sonuçlar birinci dosyadaki sonuçlardan çok farklıdır - model yeniden eğitilmiştir ve kullanıma uygun değildir.

Ben her zaman ilk 3 bölümü sırayla koyarım. Ve eğer 3. kötüyse, model yeniden eğitilir.
 

Herhangi bir veri rezervasyonunun, modelin savaşa girişinde gecikmeye yol açacağını unutmayın. Alınan sinyallerin kalitesini doğrudan etkileyen şey ....

Şahsen kendim için aşağıdaki yöntemi seçtim. Al sinyallerinde elde edilen modeli ters çevirip aynı pazar segmentinde test ediyorum, ancak Sat sinyalleri için. Böylece değerli zamanımı boşa harcamıyor ve modelin yeteneklerini yeterince değerlendiriyorum. Benim nacizane fikrime göre

 
San Sanych Fomenko :

İlk dosya rastgele üç parçaya bölünür, yani. Tarihe göre eğitim, test ve kontrol örneklerinin parçaları serpiştirilmiştir. Gerçek ticarette bu olmaz.

Ama ikincisi ticaretin taklididir: Biz her zaman eğitim bölümünden SONRA ticaret yaparız. Sizin düşüncenizin aksine, çoğu zaman ikinci dosyadaki sonuçlar birinci dosyadaki sonuçlardan çok farklıdır - model yeniden eğitilmiştir ve kullanıma uygun değildir.


Tahmin sistemleri için verilerin ulaşma sırası önemlidir. Sınıflandırma için - HAYIR.

Neden: