Обсуждение статьи "Прогнозирование временных рядов в MetaTrader 5 при помощи библиотеки машинного обучения ENCOG" - страница 4

 

Кто-нибудь зарабатывал деньги с помощью этого нейросетевого эксперта?

 

Хотелось бы увидеть этот перевод в Encog 3.1, поскольку у меня есть проблемы с оригинальной версией на норвежской платформе.

В версии 3.1 я не уверен, как делать тайм-бокс, и если пропустить этот шаг, сеть, похоже, не выдает окончательный результат


// Шаг 2: Нормализация
Console.WriteLine("Шаг 2: Создание индикаторов будущего");

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(); //Нужно ли это?
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 опущен, так как я не знаю, как сделать таймбокс в 3.1. В оригинальном примере написано Optional.

Console.WriteLine("Step 4: Train");
Console.ReadKey();
INeuralDataSet training = (BasicNeuralDataSet)EncogUtility.LoadCSV2Memory(STEP4_FILENAME, 3 + externalIndicatorCount, // Я не могу найти хорошо документированную информацию о том, какими должны быть входной и идеальный счетчики. Идентичными?
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();
// обучение нейронной сети
EncogUtility.TrainConsole(network, training, 3);
Console.WriteLine(@"Обучение завершено, сеть сохранена."); // Он так и не дошел до этого места, так что, очевидно, что-то не так
EncogDirectoryPersistence.SaveObject(new System.IO.FileInfo(STEP5_FILENAME), network);

В настоящее время (в оригинальном примере/версии) у меня первая проблема в строке ind.Process, где созданный файл имеет только 3 колонки. Шаг Analyze, похоже, правильно забирает файл со всеми 6 столбцами, но создаваемый файл должен иметь 7 столбцов. При установке параметров Country на US(English) создаваемый файл в порядке, но это не моя обычная конфигурация и дает мне некоторые другие проблемы, которых я хотел бы избежать.


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

Привет,

В конце концов я разобрался с тем, куда поместить dll-ки, заставил работать скрипт и индикатор, но не ea.

Мой Intel i7 core 1-го поколения хочет получить доступ к OpenCL для многоядерных вычислений, которого у меня, похоже, нет, поэтому ea не хочет знать.

Я перенес все это на свой ноутбук с ядром Intel i7 2-го поколения, и теперь ему нужна моя EncogNNTrainDLL.dll в 64-битной версии!

Я перерыл весь интернет в поисках этого файла, но, похоже, не могу найти его - у кого-нибудь есть идеи?

Кстати, блестящая статья, я всегда интересовался нейронными сетями - еще с тех времен, когда память компьютера измерялась в килобайтах.

Мне нравятся видео Джеффа Хитона - их стоит посмотреть.

Спасибо вам за это - Rewop

 

Здравствуйте, Ивестео,

Хорошая статья, спасибо!

Могу ли я узнать, какой тип обучения вы используете? Вы используете SOM или FeedForward Network. Я не совсем понимаю, какие идеальные данные вы используете.

Спасибо,

HyperPro.

 

Подскажите что такое RESULT_WINDOW . Правильно ли я понял, это бары которые подаются только при обучении сети ? Ведь при работе баров будущего взять негде 

/// Используемое количество баров будущего.
        /// </summary> 

        public const int RESULT_WINDOW = 5;

 

// Количество баров вперед, используемых для получения лучшего результата.

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

 

Отличная статья. Я очень благодарный разработчик C#.

Я следовал вашей предыдущей статье о получении неуправляемой DLL для общения с приложением .NET. Затем я использовал управляемые трубы, чтобы мой код, обернутый в C#, мог общаться с веб-приложением .NET с помощью WCF.

Я планирую использовать базу данных SQL для создания отчетов и удаленного управления ордерами советника. Следующий шаг - подключить код нейронной сети и начать тестирование.

Еще раз спасибо, это одни из лучших статей, которые я читал за последнее время.

 

что-то резко закончилось обсуждение...

Кто-нибудь работает с данной библиотекой? Стоит ли изучать её?

Статья очень понравилась. Респект автору!

 

Привет, ребята,

Я пытаюсь перенести эту статью на encog v.3.2, но у меня проблема с таймбоксами шага 3. Кто-нибудь может сделать шаг 3?


 // Шаг 1: Создание индикаторов будущего
            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);

            // Шаг 2: Нормализация
            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();      //Нужно ли это?
            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");
            // количество нейронов
            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.");  // Он никогда не приходит, так что, очевидно, что-то не так.
            EncogDirectoryPersistence.SaveObject(new System.IO.FileInfo(STEP5_FILENAME), network);
 

Привет,

Я тоже пытаюсь перенести все необходимое на версию 3.2. Я не вижу другого пути, потому что версия 2.6 недоступна в сети. Но это похоже на путешествие по джунглям. Я работаю уже около 4 недель. Но конца не видно.

Кто-нибудь преуспел в портировании? Может ли кто-нибудь помочь.

Большое спасибо.

refltr

 
Я успешно портировал этот поток с encog 3.3 и использованием mt4. но я еще не сделал с советником. просто напишите мне, если вам нужна помощь в портировании