"Zaman Serilerinin Tahmini için MetaTrader 5 Göstergelerini ENCOG Makine Öğrenimi Çerçevesi ile Kullanma" makalesi için tartışma - sayfa 4

 

Bu Sinir ağı Uzman Danışmanını kullanarak para kazanan var mı?

 

Bunun Encog 3.1'e çevrildiğini görmek isterim; çünkü Norveç platformunda orijinal sürümle ilgili sorunlar yaşıyorum.

3.1'de zaman kutulamasının nasıl yapılacağından emin değilim ve bu adımı atladığımda, ağ son halini üretmiyor gibi görünüyor


// Adım 2: Normalleştir
Console.WriteLine("Adım 2: Gelecek Göstergeleri Oluşturun");

var analist = new EncogAnalyst();
var wizard = new AnalystWizard(analyst);
wizard.Wizard(new System.IO.FileInfo(STEP2_FILENAME), true, AnalystFileFormat.DecpntComma);
analyst.Script.Normalize.NormalizedFields[0].MakePassThrough(); //Bu gerekli mi?
analyst.Script.Normalize.NormalizedFields[1].MakePassThrough();
var norm = new AnalystNormalizeCSV();
norm.Analyze(new System.IO.FileInfo(STEP2_FILENAME), true, CSVFormat.English, analyst);
norm.ProduceOutputHeaders = true;

norm.Normalize(new System.IO.FileInfo(STEP4_FILENAME));

// 3.1'de kutuyu nasıl zamanlayacağımı bilmediğim için 3. ADIM atlandı. Orijinal örnekte Opsiyonel yazıyor.

Console.WriteLine("Adım 4: Tren");
Console.ReadKey();
INeuralDataSet training = (BasicNeuralDataSet)EncogUtility.LoadCSV2Memory(STEP4_FILENAME, 3 + externalIndicatorCount, // Giriş sayısı ve ideal sayının ne olması gerektiğini iyi belgelenmiş bulamıyorum. Aynı mı?
3 + externalIndicatorCount, true, CSVFormat.English, true);
BasicNetwork network = new BasicNetwork();
network.AddLayer(new BasicLayer(new ActivationTANH(), true, inputNeurons));
network.AddLayer(new BasicLayer(new ActivationTANH(), true, HIDDEN1_NEURONS));
network.AddLayer(new BasicLayer(new ActivationLinear(), true, outputNeurons));
network.Structure.FinalizeStructure();
network.Reset();
// sinir ağını eğitin
EncogUtility.TrainConsole(network, training, 3);
Console.WriteLine(@"Training complete, saving network."); // Buraya hiç gelmiyor, yani belli ki bir şeyler yanlış
EncogDirectoryPersistence.SaveObject(new System.IO.FileInfo(STEP5_FILENAME), network);

Mevcut haliyle (orijinal örnekte/versiyonda) ilk sorunumu ind.Process satırında yaşıyorum, burada üretilen dosyada yalnızca 3 sütun var. Analyze adımı dosyayı 6 sütunla doğru bir şekilde alıyor gibi görünüyor, ancak üretilen dosyanın 7 sütunu olmalıdır. Ülke ayarlarını ABD (İngilizce) olarak ayarladığımda üretilen dosya tamam, ancak bu benim normal yapılandırmam değil ve bana kaçınmak istediğim bazı başka sorunlar veriyor.


            ProcessIndicators ind = new ProcessIndicators();
            ind.Analyze(STEP1_FILENAME, true, CSVFormat.DECIMAL_POINT);
            int externalIndicatorCount = ind.Columns.Count - 3;
            ind.AddColumn(new BestReturn(RESULT_WINDOW,true)); 
            ind.Process(STEP2_FILENAME);    
 

Merhaba,

Sonunda dll'leri nereye koyacağımızı buldum, komut dosyasını ve göstergeyi çalıştırdım ama ea'yı değil.

Intel i7 çekirdekli 1. neslim, sahip olmadığım çok çekirdekli bilgi işlem için OpenCL'ye erişmek istiyor, bu nedenle ea bilmek istemiyor.

Tüm bunları Intel i7 çekirdekli 2. nesil dizüstü bilgisayarıma aktardım ve şimdi 64 bit sürümünde EncogNNTrainDLL.dll'imi istiyor!

Bunun için interneti taradım ama elime alabilecek gibi görünmüyorum - herhangi bir fikri olan var mı?

Bu arada harika bir makale, sinir ağları her zaman ilgimi çekmiştir - bilgisayar belleğinin kilobaytlarla ölçüldüğü günlerden beri.

Jeff Heaton'ın videolarını seviyorum - izlemeye değer.

Bunun için teşekkürler - Rewop

 

Merhaba Ivesteo,

Güzel makale, teşekkürler!

Ne tür bir eğitim kullandığınızı öğrenebilir miyim? SOM mu yoksa FeedForward Network mü kullanıyorsunuz? Kullandığınız İdeal verilerin ne olduğunu tam olarak anlayamadım.

Teşekkürler,

HyperPro.

 

RESULT_WINDOW nedir? Doğru mu anlıyorum, bunlar sadece ağ eğitimi sırasında sağlanan çubuklar mı? Sonuçta, çalışırken geleceğin çubuklarını alacak hiçbir yer yok

/// Kullanılan gelecek çubuklarının sayısı.
        /// </summary> 

public const int RESULT_WINDOW = 5;

// En iyi sonucu elde etmek için kullanılan ileri çubuk sayısı.

        /// </summary>
        public const int RESULT_WINDOW = 5;

 

Harika bir makale. Ben çok takdir eden bir C# geliştiricisiyim.

Yönetilmeyen DLL'nin .NET uygulamasıyla konuşmasını sağlamak için önceki makalenizi takip ettim. Daha sonra C# ile sarmalanmış kodumun WCF ile bir .NET web uygulamasıyla konuşmasına izin vermek için yönetilen borular kullandım.

Bunu raporlama ve EA'nın uzaktan sipariş yönetimi ile bir SQL Veritabanına yedeklemeyi planlıyorum. Bir sonraki adım, bazı Sinir Ağı kodlarını eklemek ve test etmeye başlamak.

Tekrar teşekkürler, bunlar son zamanlarda okuduğum en iyi makalelerden bazıları.

 

Bir şey tartışmayı aniden bitirdi...

Bu kütüphane ile çalışan var mı? İncelemeye değer mi?

Makaleyi gerçekten beğendim. Yazara saygılar!

 

Merhaba arkadaşlar,

Bu makaleyi encog v.3.2'ye taşımaya çalışıyorum ancak adım 3 zaman kutularıyla ilgili sorunum var. Birisi 3. adımı yapabilir mi?


 // Adım 1: Gelecek göstergeleri oluşturun
            Console.WriteLine("Step 1: Analyze MT5 Export & Create Future Indicators");
            ProcessIndicators ind = new ProcessIndicators();
            ind.Analyze(new FileInfo(STEP1_FILENAME), true, CSVFormat.DecimalPoint);
            int externalIndicatorCount = ind.Columns.Count - 3;
            ind.AddColumn(new BestReturn(RESULT_WINDOW, true));
            ind.Process(new FileInfo(STEP2_FILENAME));
            Console.WriteLine("External indicators found: " + externalIndicatorCount);

            // Adım 2: Normalleştir
            Console.WriteLine("Step 2: Create Future Indicators");
            var analyst = new EncogAnalyst();
            var wizard = new AnalystWizard(analyst);
            wizard.Goal = AnalystGoal.Classification;
            wizard.Wizard(new System.IO.FileInfo(STEP2_FILENAME), true, AnalystFileFormat.DecpntComma);
            analyst.Script.Normalize.NormalizedFields[0].MakePassThrough();      //Bu gerekli mi?
            analyst.Script.Normalize.NormalizedFields[1].MakePassThrough();

            var norm = new AnalystNormalizeCSV();
            norm.ExpectInputHeaders = true;
            norm.Format = CSVFormat.English;
            norm.Analyze(new FileInfo(STEP2_FILENAME), true, CSVFormat.English, analyst);
            norm.ProduceOutputHeaders = true;

            norm.Normalize(new FileInfo(STEP3_FILENAME));


            Console.WriteLine("Step 3: Time-boxses");
            // nöron sayıları
            int inputNeurons = INPUT_WINDOW * externalIndicatorCount;
            int outputNeurons = PREDICT_WINDOW;

            FileInfo rawFile = new FileInfo(STEP3_FILENAME);


               //Step 3 

                HOW???
            
            Console.WriteLine("Step 4: Train");
            IMLDataSet training = (IMLDataSet)EncogUtility.LoadCSV2Memory(STEP4_FILENAME, inputNeurons,
                                                                                     outputNeurons, true, CSVFormat.English,false);
            

            BasicNetwork network = new BasicNetwork();
            network.AddLayer(new BasicLayer(new ActivationTANH(), true, inputNeurons));
            network.AddLayer(new BasicLayer(new ActivationTANH(), true, HIDDEN1_NEURONS));
            network.AddLayer(new BasicLayer(new ActivationLinear(), true, outputNeurons));
            network.Structure.FinalizeStructure();
            network.Reset();

            //EncogUtility.TrainToError(network, training, TARGET_ERROR);
            EncogUtility.TrainConsole(network, training, 3);
            Console.WriteLine(@"Training complete, saving network.");  // Hiç gelmiyor, demek ki bir sorun var.
            EncogDirectoryPersistence.SaveObject(new System.IO.FileInfo(STEP5_FILENAME), network);
 

Merhaba,

Ayrıca tüm gerekli şeyleri 3.2 sürümüne taşımaya çalışıyorum. Başka bir yol göremiyorum çünkü 2.6 sürümü internette mevcut değil. Ama ormanda bir yolculuk gibi görünüyor. Henüz yaklaşık 4 haftadır çalışıyorum. Ama sonunu göremiyorum.

Taşımayı başaran var mı? Biri yardım edebilir mi?

Çok teşekkür ederim.

refltr

 
bu konuyu encog 3.3 ile taşımayı ve mt4 kullanmayı başardım. ancak henüz uzman danışmanla yapmadım. taşıma konusunda yardıma ihtiyacınız olursa bana pm atın