기고글 토론 "시계열 예측을 위한 ENCOG 머신 러닝 프레임워크와 함께 MetaTrader 5 지표 사용" - 페이지 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.1에서 타임박스를 설정하는 방법을 모르기 때문에 3단계는 생략했습니다. 원본 샘플에는 선택 사항이라고 나와 있습니다.

Console.WriteLine("4단계: 훈련");
Console.ReadKey();
INeuralDataSet training = (BasicNeuralDataSet)EncogUtility.LoadCSV2Memory(STEP4_FILENAME, 3 + externalIndicatorCount, // 입력 수와 이상적인 수가 무엇인지 잘 문서화 된 것을 찾을 수 없습니다. 동일한가요?
3 + externalIndicatorCount, true, CSVFormat.영어, 참);
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);

(원래 샘플/버전에서는) 생성된 파일에 열이 3개만 있는 ind.Process 줄에 첫 번째 문제가 있습니다. 분석 단계에서는 6개의 열이 모두 있는 파일을 올바르게 가져오는 것 같지만 생성된 파일에는 7개의 열이 있어야 합니다. 국가 설정을 미국(영어)으로 설정하면 생성된 파일은 괜찮지만 이는 일반적인 구성이 아니며 피하고 싶은 다른 문제가 발생합니다.


            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는 작동하지 않습니다.

내 인텔 i7 코어 1 세대는 멀티 코어 컴퓨팅을 위해 OpenCL에 액세스하기를 원하지만 ea는 내가 가지고 있지 않은 것 같아서 알고 싶지 않습니다.

이 모든 것을 인텔 i7 코어 2 세대 노트북으로 옮겼는데 이제 64 비트 버전의 EncogNNTrainDLL.dll을 원합니다!

나는 이것을 위해 인터넷을 샅샅이 뒤졌지만 내 손을 넣을 수없는 것 같습니다 - 누구든지 어떤 아이디어가 있습니까?

그건 그렇고, 저는 컴퓨터 메모리가 킬로바이트 단위로 측정되던 시절부터 항상 신경망에 관심이있었습니다.

제프 히튼의 동영상을 좋아합니다 - 볼만한 가치가 있습니다.

감사합니다 - Rewop

 

안녕하세요 이베스테오,

좋은 글 감사합니다!

어떤 유형의 트레이닝을 사용 중이신지 알고 싶습니다. SOM 또는 피드포워드 네트워크를 사용하고 계신가요? 사용 중인 이상적인 데이터가 무엇인지 잘 모르겠습니다.

감사합니다,

HyperPro.

 

결과창이란 무엇인가요? 네트워크 교육 중에 만 제공되는 막대라는 것을 올바르게 이해 했습니까? 결국, 일할 때 미래의 막대를 가져갈 곳이 없습니다.

/// 사용된 미래 막대 수입니다.
        /// </summary> 

public const int RESULT_WINDOW = 5;

// 최상의 결과를 얻는 데 사용되는 포워드 바의 수입니다.

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

 

훌륭한 기사입니다. 저는 매우 감사하는 C# 개발자입니다.

이전 글에서 관리되지 않는 DLL이 .NET 애플리케이션과 대화하도록 하는 방법에 대해 설명해 주셨어요. 그런 다음 관리되는 파이프를 사용하여 C# 래핑된 코드가 WCF를 사용하여 .NET 웹 애플리케이션과 통신할 수 있도록 했습니다.

이를 보고 및 EA의 원격 주문 관리 기능을 갖춘 SQL 데이터베이스에 백업할 계획입니다. 다음 단계는 일부 신경망 코드를 플러그인하고 테스트를 시작하는 것입니다.

최근에 읽은 글 중 최고의 글입니다.

 

갑자기 토론이 끝났어요...

이 라이브러리로 작업하는 사람이 있나요? 공부할 가치가 있나요?

기사가 정말 마음에 들었습니다. 저자에게 존경을 표합니다!

 

안녕하세요,

이 문서를 인코그 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(네트워크, 트레이닝, 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를 사용하여 성공했지만 아직 전문가 고문과 함께하지 않았습니다.