Discussion de l'article "Utilisation des Indicateurs MetaTrader 5 avec le Cadre d'Apprentissage Automatique ENCOG pour la Prédiction de Séries Chronologiques" - page 4

 

Quelqu'un a-t-il gagné de l'argent en utilisant cet Expert Advisor Neural net ?

 

J'aimerais que ce logiciel soit traduit dans Encog 3.1, car j'ai des problèmes avec la version originale sur la plateforme norvégienne.

Sur 3.1, je ne suis pas sûr de savoir comment faire le time boxing, et lorsque je saute cette étape, le réseau ne semble pas produire le résultat final.


// Étape 2 : Normalisation
Console.WriteLine("Étape 2 : Créer des indicateurs futurs") ;

var analyst = new EncogAnalyst() ;
var wizard = new AnalystWizard(analyst) ;
wizard.Wizard(new System.IO.FileInfo(STEP2_FILENAME), true, AnalystFileFormat.DecpntComma) ;
analyst.Script.Normalize.NormalizedFields[0].MakePassThrough() ; //Est-ce nécessaire ?
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)) ;

// L'étape 3 a été omise car je ne sais pas comment chronométrer la boîte en 3.1. Il est indiqué Optional dans l'exemple original.

Console.WriteLine("Step 4 : Train") ;
Console.ReadKey() ;
INeuralDataSet training = (BasicNeuralDataSet)EncogUtility.LoadCSV2Memory(STEP4_FILENAME, 3 + externalIndicatorCount, // Je ne parviens pas à trouver une documentation claire sur ce que doivent être le nombre d'entrées et le nombre idéal. Identiques ?
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() ;
// entraîne le réseau neuronal
EncogUtility.TrainConsole(network, training, 3) ;
Console.WriteLine(@"Formation terminée, enregistrement du réseau.") ; // Il n'arrive jamais ici, donc il y a manifestement un problème
EncogDirectoryPersistence.SaveObject(new System.IO.FileInfo(STEP5_FILENAME), network) ;

Dans l'état actuel des choses (dans l'exemple/la version d'origine), j'ai mon premier problème dans la ligne ind.Process, où le fichier produit n'a que 3 colonnes. L'étape Analyze semble récupérer correctement le fichier avec les 6 colonnes, mais le fichier produit devrait avoir 7 colonnes. Lorsque les paramètres du pays sont réglés sur US (anglais), le fichier produit est correct, mais ce n'est pas ma configuration normale et cela me pose d'autres problèmes que j'aimerais éviter.


            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);    
 

Bonjour,

J'ai fini par trouver où mettre les dll, j'ai réussi à faire fonctionner le script et l'indicateur mais pas l'ea.

Je n'ai pas eu de problème avec le script et l'indicateur, mais pas avec l'ea. Mon Intel i7 core 1ère génération veut accéder à OpenCL pour le calcul multicore, ce que je ne semble pas avoir, donc l'ea ne veut pas le savoir.

J'ai transféré tout cela sur mon ordinateur portable Intel i7 core de 2ème génération et maintenant il veut mon EncogNNTrainDLL.dll dans la version 64 bit !

J'ai parcouru l'internet à la recherche de ce fichier mais je n'arrive pas à mettre la main dessus - quelqu'un a une idée ?

J'ai toujours été intéressé par les réseaux neuronaux, depuis l'époque où la mémoire des ordinateurs se mesurait en kilo-octets.

J'adore les vidéos de Jeff Heaton, qui valent la peine d'être regardées.

Merci pour cet article - Rewop

 

Bonjour Ivesteo,

Bon article, merci !

Puis-je savoir quel type de formation vous utilisez ? Utilisez-vous SOM ou FeedForward Network ? Je ne sais pas vraiment quelles sont les données Ideal que vous utilisez.

Merci,

HyperPro.

 

Qu'est-ce que RESULT_WINDOW . Ai-je bien compris qu'il s'agit de barres qui ne sont fournies que pendant l'entraînement au réseau ? Après tout, il n'y a nulle part où prendre les barres du futur quand on travaille.

/// Le nombre de barres futures utilisées.
        /// </summary> 

public const int RESULT_WINDOW = 5;

// Le nombre de barres de progression utilisées pour obtenir le meilleur résultat.

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

 

Je suis un développeur C# très reconnaissant.

J'ai suivi votre article précédent sur l'obtention d'une DLL non gérée pour communiquer avec une application .NET. J'ai ensuite utilisé des tuyaux gérés pour permettre à mon code C# de communiquer avec une application web .NET avec WCF.

Je prévois de l'adosser à une base de données SQL avec des rapports et une gestion des commandes à distance de l'EA. La prochaine étape consistera à ajouter du code de réseau neuronal et à commencer les tests.

Merci encore, ces articles sont parmi les meilleurs que j'ai lus récemment.

 

quelque chose a brusquement mis fin à la discussion...

Quelqu'un travaille-t-il avec cette bibliothèque ? Cela vaut-il la peine de l'étudier ?

J'ai beaucoup aimé l'article. Respect à l'auteur !

 

Bonjour à tous,

J'ai essayé de porter cet article sur encog v.3.2 mais j'ai un problème avec les time-boxes de l'étape 3. Est-ce que quelqu'un est capable de faire l' étape 3 ?


 // Étape 1 : Créer de futurs indicateurs
            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);

            // Étape 2 : Normalisation
            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();      //Est-ce nécessaire ?
            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");
            // nombre de neurones
            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.");  // Il n'arrive jamais, donc il y a manifestement un problème.
            EncogDirectoryPersistence.SaveObject(new System.IO.FileInfo(STEP5_FILENAME), network);
 

Bonjour, je suis également en train d'essayer de porter tous les éléments nécessaires à la version 3.2,

J'essaie également de porter tous les éléments nécessaires à la version 3.2. Je ne vois pas d'autre moyen car la version 2.6 n'est pas disponible sur le net. Mais il semble que ce soit une chevauchée dans la jungle. Je travaille depuis environ 4 semaines. Mais je ne vois pas la fin.

Est-ce que quelqu'un a réussi le portage ? Quelqu'un peut-il m'aider ?

Merci beaucoup pour votre aide.

refltr

 
J'ai réussi à porter ce fil avec encog 3.3 et en utilisant mt4. mais je n'ai pas encore fait avec expert advisor. envoyez-moi un message si vous avez besoin d'aide pour le portage.