기고글 토론 "시계열 예측을 위한 ENCOG 머신 러닝 프레임워크와 함께 MetaTrader 5 지표 사용" - 페이지 5 123456 새 코멘트 ryuga68 2015.11.17 05:29 #41 Valentin Petkov:안녕하세요,이 문서를 encog v.3.2로 포팅하려고 하는데 3단계 시간 상자에 문제가 있습니다. 누군가 3 단계를 수행 할 수있습니까 ?내 것을 사용하십시오 @Valentin petkov. 나는 encog 3.3을 사용하고 있습니다 ... 나는 당신을 도울 수 있기를 바랍니다 ...시스템 사용;사용 Encog.Util.CSV;Encog.App.Quant.Indicators 사용;사용 Encog.App.Quant.Indicators.Predictive;using Encog.Util.Simple;Encog.Neural.Networks 사용;사용 Encog.Neural.Networks.Layers;사용 Encog.Engine.Network.Activation;Encog.Persist;using Encog.App.Analyst;using System.IO;사용 Encog.App.Analyst.CSV.Normalize;Encog.App.Analyst.Wizard;사용 Encog.Util.Arrayutil;사용 Encog.Util.ArrayUtil;사용 Encog.ML.Data;네임스페이스 Encog{public class Program{/// <summary>/// 모든 파일이 저장될 디렉토리입니다./// </summary>public const String DIRECTORY = "당신의 디렉토리 파일";/// <summary>/// 전체 프로세스를 시작하는 입력 파일입니다. 이 파일은 EncogStreamWriter 객체를 사용하여 NinjaTrader에서 다운로드해야 합니다./// </summary>public const String STEP1_FILENAME = DIRECTORY + "mt4export.csv";/// <summary>/// 미래 예측 지표를 적용하고 추가 예측 필드가 추가된 두 번째 파일을 생성합니다./// </summary>public const String STEP2_FILENAME = DIRECTORY + "step2_future.csv";/// <summary>/// 다음으로 전체 파일을 정규화하여 이 파일에 저장합니다./// </summary>public const String STEP3_FILENAME = DIRECTORY + "step3_norm.csv";/// <summary>/// 이 파일은 학습 데이터를 생성하기 위해 타임박스로 묶여 있습니다./// </summary>public const String STEP4_FILENAME = DIRECTORY + "step4_train.csv";/// <summary>/// 마지막으로 훈련된 신경망이 이 파일에 기록됩니다./// </summary>public const String STEP5_FILENAME = DIRECTORY + "step5_network.eg";/// <summary>/// 입력 창의 크기. 다음 바를 예측하는 데 사용되는 바의 수입니다./// </summary>public const int INPUT_WINDOW = 6;/// <summary>/// 앞으로 예측하려는 바의 수. 보통 1바에 불과합니다. 1단계에서 사용된 미래 인디케이터는/// 더 앞을 내다볼 수 있습니다./// </summary>public const int PREDICT_WINDOW = 1;/// <summary>/// 최상의 결과를 찾기 위해 앞으로 나아갈 막대의 수입니다./// </summary>public const int RESULT_WINDOW = 5;/// <summary>/// 첫 번째 숨겨진 레이어에 있는 뉴런의 수입니다./// </summary>public const int HIDDEN1_NEURONS = 12;/// <summary>/// 훈련할 목표 오류입니다./// </summary>public const double TARGET_ERROR = 0.01;static void Main(string[] args){// 1단계: 향후 지표 생성Console.WriteLine("1단계: 닌자트레이더 내보내기 분석 및 향후 인디케이터 생성");프로세스지표 ind = 새로운 프로세스지표();ind.Analyze(new FileInfo(STEP1_FILENAME), true, CSVFormat.English); //.Analyze(STEP1_FILENAME, true, AnalystFileFormat.DecpntComma);int externalIndicatorCount = ind.Columns.Count - 3;ind.AddColumn(new BestReturn(RESULT_WINDOW, true)); // RESULT_WINDOW를 반환합니다.ind.Process(new FileInfo(STEP2_FILENAME));// Process(STEP2_FILENAME);Console.WriteLine("외부 표시기 발견: " + externalIndicatorCount);Console.ReadKey();// 2단계: 정규화Console.WriteLine("2단계: 향후 지표 생성");var analyst = 새로운 EncogAnalyst();var wizard = new AnalystWizard(analyst);wizard.Wizard(new FileInfo(STEP2_FILENAME), true, AnalystFileFormat.DecpntComma);analyst.Script.Normalize.NormalizedFields[0].Action=NormalizationAction.PassThrough;analyst.Script.Normalize.NormalizedFields[1].Action = NormalizationAction.PassThrough;analyst.Script.Normalize.NormalizedFields[2].Action = NormalizationAction.Normalize;analyst.Script.Normalize.NormalizedFields[3].Action = NormalizationAction.Normalize;analyst.Script.Normalize.NormalizedFields[4].Action = NormalizationAction.Normalize;analyst.Script.Normalize.NormalizedFields[5].Action = NormalizationAction.Normalize;analyst.Script.Normalize.NormalizedFields[6].Action = NormalizationAction.Normalize;var norm = new AnalystNormalizeCSV();norm.Analyze(new FileInfo(STEP2_FILENAME), true, CSVFormat.English, analyst);norm.ProduceOutputHeaders = true;norm.Normalize(new FileInfo(STEP3_FILENAME));// 뉴런 수int inputNeurons = INPUT_WINDOW * externalIndicatorCount;int outputNeurons = PREDICT_WINDOW;Console.WriteLine("inputneurons : {0}",inputNeurons);Console.WriteLine("outputNeurons : {0}",outputNeurons);Console.ReadKey();// 3단계: 타임박스(선택 사항)Console.WriteLine("3단계: 타임박스");var twcsv = new TemporalWindowCSV();twcsv.Analyze(new FileInfo(STEP3_FILENAME), true, CSVFormat.English);twcsv.InputWindow = INPUT_WINDOW;twcsv.PredictWindow = PREDICT_WINDOW;int index = 0;twcsv.Fields[index++].Action = TemporalType.Ignore;twcsv.Fields[index++].Action = TemporalType.Ignore;twcsv.Fields[index++].Action = TemporalType.Ignore;for (int i = 0; i < externalIndicatorCount; i++)twcsv.Fields[index++].Action = TemporalType.Input; // 외부 표시기twcsv.Fields[index++].Action = TemporalType.Predict; // PredictBestReturntwcsv.Process(STEP4_FILENAME);Console.ReadKey();// 4단계: 신경망 훈련Console.WriteLine("4단계: 훈련");Console.ReadKey();IMLDataSet training = EncogUtility.LoadCSV2Memory(STEP4_FILENAME, inputNeurons, outputNeurons, true, CSVFormat.English,false);BasicNetwork network = 새로운 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,1);Console.ReadKey();// 5단계: 신경망 및 통계 저장하기Console.WriteLine("5단계: 신경망 및 정규화된 필드 저장");Console.WriteLine("또는 여기 ?");EncogDirectoryPersistence.SaveObject(new FileInfo(STEP5_FILENAME), network);Console.WriteLine("오류 여기 ?");//EncogDirectoryPersistence.SaveObject(new FileInfo(STEP5_FILENAME), analyst);Console.ReadKey();}}} Discussion of article "Using 시계열 예측을 위한 ENCOG 신경망 tiagobr 2015.11.22 10:18 #42 Encog 3.3으로 포팅에 성공한 사람이 있나요? 인코그 3.3 이상 버전과 MQL이 호환되도록 하는 데는 관심이 없는 것 같습니다. 왜 MQL이 메타트레이더를 위한 자체 신경망을 만들지 않고, 컴맹을 위한 많은 작업을 피하는지 이해가 되지 않습니다. Stanislav Korotky 2015.11.22 21:07 #43 tiagobr: 왜 MQL이 메타트레이더를 위한 자체 신경망을 만들지 않고, 컴맹을 위한 많은 작업을 피하는지 이해할 수 없습니다. mql5.com에서 신경망을 검색하면 많은 기사와 코드를 찾을 수 있습니다. 모든 것이 "플러그 앤 플레이" 방식으로 제공됩니다. 여러분의 필요에 맞지 않나요? mgarciat 2016.04.16 14:48 #44 안녕하세요,프로그램 개발 방법을 아는 데 매우 도움이되는 기사 주셔서 감사합니다. 하지만 저는 초보자이고 모든 단계를 어떻게 실행할 수 있는지 알고 싶습니다. 스크립트를 사용하여 데이터를 다운로드 할 수 있지만 Metatrader에서 정규화 및 타임 박싱을 수행하는 방법을 모릅니다. 코드 실행에 대한 단계별 정보가 있습니까? 미리 감사드리며 너무 기본적인 질문이라 죄송합니다.안부 인사 Chee Chua 2016.07.14 03:12 #45 안녕하세요,나는 7. 신경망 훈련.Net Core, Mac용 Visual Basic Code, Encog 3.3을 다운로드했습니다.Encog로 다음에 무엇을 해야 하나요?미리 감사드립니다.문서에 끊어진 링크도 있습니다.업데이트가 있을까요?즉오류 계산 및 훈련 알고리즘 전체 ENCOG 문서는 온라인에서 확인할 수있습니다 . Aipe Li 2016.12.22 09:15 #46 안녕하세요 , 엔베스테오 MT5 로딩 뉴럴엔코더 표시 예외가 있는 샘플 코드를 다운로드했는데 도움을 요청합니다. Mateus Oliveira 2016.12.28 00:44 #47 안녕하세요,정말 훌륭한 기사이지만 동일한 결과를 재현하지 못했습니다.지표라고 할 때 기사의 예와 같이 1과 -1로 정규화되지 않고 직선으로 만 플롯됩니다.누군가이 문제를 해결하고 해결 했습니까? 파일: Captura_de_tela_2016-12-27_21.40.31.png 114 kb Mateus Oliveira 2016.12.29 00:12 #48 Automated-Trading:제어판->지역 및 언어->추가 설정...에서 소수점 기호를 "." 대신 "."로 변경해 보세요.이것이 제 문제였습니다. 이것을 변경하고 해결하십시오.고마워요!! Cagatay Tezsezen 2017.04.25 12:45 #49 표시기가 그림을 그리지 않습니다. dll 파일을 다른 위치에 복사했지만 여전히 결과가 없습니다. 어떤 방법이 있을까요? bmkinyua 2017.06.15 06:21 #50 MT4에서 작동하나요? 123456 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
안녕하세요,
이 문서를 encog v.3.2로 포팅하려고 하는데 3단계 시간 상자에 문제가 있습니다. 누군가 3 단계를 수행 할 수있습니까 ?
내 것을 사용하십시오 @Valentin petkov. 나는 encog 3.3을 사용하고 있습니다 ... 나는 당신을 도울 수 있기를 바랍니다 ...
시스템 사용;
사용 Encog.Util.CSV;
Encog.App.Quant.Indicators 사용;
사용 Encog.App.Quant.Indicators.Predictive;
using Encog.Util.Simple;
Encog.Neural.Networks 사용;
사용 Encog.Neural.Networks.Layers;
사용 Encog.Engine.Network.Activation;
Encog.Persist;
using Encog.App.Analyst;
using System.IO;
사용 Encog.App.Analyst.CSV.Normalize;
Encog.App.Analyst.Wizard;
사용 Encog.Util.Arrayutil;
사용 Encog.Util.ArrayUtil;
사용 Encog.ML.Data;
네임스페이스 Encog
{
public class Program
{
/// <summary>
/// 모든 파일이 저장될 디렉토리입니다.
/// </summary>
public const String DIRECTORY = "당신의 디렉토리 파일";
/// <summary>
/// 전체 프로세스를 시작하는 입력 파일입니다. 이 파일은 EncogStreamWriter 객체를 사용하여 NinjaTrader에서 다운로드해야 합니다.
/// </summary>
public const String STEP1_FILENAME = DIRECTORY + "mt4export.csv";
/// <summary>
/// 미래 예측 지표를 적용하고 추가 예측 필드가 추가된 두 번째 파일을 생성합니다.
/// </summary>
public const String STEP2_FILENAME = DIRECTORY + "step2_future.csv";
/// <summary>
/// 다음으로 전체 파일을 정규화하여 이 파일에 저장합니다.
/// </summary>
public const String STEP3_FILENAME = DIRECTORY + "step3_norm.csv";
/// <summary>
/// 이 파일은 학습 데이터를 생성하기 위해 타임박스로 묶여 있습니다.
/// </summary>
public const String STEP4_FILENAME = DIRECTORY + "step4_train.csv";
/// <summary>
/// 마지막으로 훈련된 신경망이 이 파일에 기록됩니다.
/// </summary>
public const String STEP5_FILENAME = DIRECTORY + "step5_network.eg";
/// <summary>
/// 입력 창의 크기. 다음 바를 예측하는 데 사용되는 바의 수입니다.
/// </summary>
public const int INPUT_WINDOW = 6;
/// <summary>
/// 앞으로 예측하려는 바의 수. 보통 1바에 불과합니다. 1단계에서 사용된 미래 인디케이터는
/// 더 앞을 내다볼 수 있습니다.
/// </summary>
public const int PREDICT_WINDOW = 1;
/// <summary>
/// 최상의 결과를 찾기 위해 앞으로 나아갈 막대의 수입니다.
/// </summary>
public const int RESULT_WINDOW = 5;
/// <summary>
/// 첫 번째 숨겨진 레이어에 있는 뉴런의 수입니다.
/// </summary>
public const int HIDDEN1_NEURONS = 12;
/// <summary>
/// 훈련할 목표 오류입니다.
/// </summary>
public const double TARGET_ERROR = 0.01;
static void Main(string[] args)
{
// 1단계: 향후 지표 생성
Console.WriteLine("1단계: 닌자트레이더 내보내기 분석 및 향후 인디케이터 생성");
프로세스지표 ind = 새로운 프로세스지표();
ind.Analyze(new FileInfo(STEP1_FILENAME), true, CSVFormat.English); //.Analyze(STEP1_FILENAME, true, AnalystFileFormat.DecpntComma);
int externalIndicatorCount = ind.Columns.Count - 3;
ind.AddColumn(new BestReturn(RESULT_WINDOW, true)); // RESULT_WINDOW를 반환합니다.
ind.Process(new FileInfo(STEP2_FILENAME));// Process(STEP2_FILENAME);
Console.WriteLine("외부 표시기 발견: " + externalIndicatorCount);
Console.ReadKey();
// 2단계: 정규화
Console.WriteLine("2단계: 향후 지표 생성");
var analyst = 새로운 EncogAnalyst();
var wizard = new AnalystWizard(analyst);
wizard.Wizard(new FileInfo(STEP2_FILENAME), true, AnalystFileFormat.DecpntComma);
analyst.Script.Normalize.NormalizedFields[0].Action=NormalizationAction.PassThrough;
analyst.Script.Normalize.NormalizedFields[1].Action = NormalizationAction.PassThrough;
analyst.Script.Normalize.NormalizedFields[2].Action = NormalizationAction.Normalize;
analyst.Script.Normalize.NormalizedFields[3].Action = NormalizationAction.Normalize;
analyst.Script.Normalize.NormalizedFields[4].Action = NormalizationAction.Normalize;
analyst.Script.Normalize.NormalizedFields[5].Action = NormalizationAction.Normalize;
analyst.Script.Normalize.NormalizedFields[6].Action = NormalizationAction.Normalize;
var norm = new AnalystNormalizeCSV();
norm.Analyze(new FileInfo(STEP2_FILENAME), true, CSVFormat.English, analyst);
norm.ProduceOutputHeaders = true;
norm.Normalize(new FileInfo(STEP3_FILENAME));
// 뉴런 수
int inputNeurons = INPUT_WINDOW * externalIndicatorCount;
int outputNeurons = PREDICT_WINDOW;
Console.WriteLine("inputneurons : {0}",inputNeurons);
Console.WriteLine("outputNeurons : {0}",outputNeurons);
Console.ReadKey();
// 3단계: 타임박스(선택 사항)
Console.WriteLine("3단계: 타임박스");
var twcsv = new TemporalWindowCSV();
twcsv.Analyze(new FileInfo(STEP3_FILENAME), true, CSVFormat.English);
twcsv.InputWindow = INPUT_WINDOW;
twcsv.PredictWindow = PREDICT_WINDOW;
int index = 0;
twcsv.Fields[index++].Action = TemporalType.Ignore;
twcsv.Fields[index++].Action = TemporalType.Ignore;
twcsv.Fields[index++].Action = TemporalType.Ignore;
for (int i = 0; i < externalIndicatorCount; i++)
twcsv.Fields[index++].Action = TemporalType.Input; // 외부 표시기
twcsv.Fields[index++].Action = TemporalType.Predict; // PredictBestReturn
twcsv.Process(STEP4_FILENAME);
Console.ReadKey();
// 4단계: 신경망 훈련
Console.WriteLine("4단계: 훈련");
Console.ReadKey();
IMLDataSet training = EncogUtility.LoadCSV2Memory(STEP4_FILENAME, inputNeurons, outputNeurons, true, CSVFormat.English,false);
BasicNetwork network = 새로운 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,1);
Console.ReadKey();
// 5단계: 신경망 및 통계 저장하기
Console.WriteLine("5단계: 신경망 및 정규화된 필드 저장");
Console.WriteLine("또는 여기 ?");
EncogDirectoryPersistence.SaveObject(new FileInfo(STEP5_FILENAME), network);
Console.WriteLine("오류 여기 ?");
//EncogDirectoryPersistence.SaveObject(new FileInfo(STEP5_FILENAME), analyst);
Console.ReadKey();
}
}
}
왜 MQL이 메타트레이더를 위한 자체 신경망을 만들지 않고, 컴맹을 위한 많은 작업을 피하는지 이해할 수 없습니다.
안녕하세요,
프로그램 개발 방법을 아는 데 매우 도움이되는 기사 주셔서 감사합니다. 하지만 저는 초보자이고 모든 단계를 어떻게 실행할 수 있는지 알고 싶습니다. 스크립트를 사용하여 데이터를 다운로드 할 수 있지만 Metatrader에서 정규화 및 타임 박싱을 수행하는 방법을 모릅니다. 코드 실행에 대한 단계별 정보가 있습니까? 미리 감사드리며 너무 기본적인 질문이라 죄송합니다.
안부 인사
안녕하세요,
나는
7. 신경망 훈련
.Net Core, Mac용 Visual Basic Code, Encog 3.3을 다운로드했습니다.
Encog로 다음에 무엇을 해야 하나요?
미리 감사드립니다.
문서에 끊어진 링크도 있습니다.
업데이트가 있을까요?
즉
오류 계산 및 훈련 알고리즘
전체 ENCOG 문서는 온라인에서 확인할 수있습니다 .
안녕하세요 , 엔베스테오
MT5 로딩 뉴럴엔코더 표시 예외가 있는 샘플 코드를 다운로드했는데 도움을 요청합니다.
안녕하세요,
정말 훌륭한 기사이지만 동일한 결과를 재현하지 못했습니다.
지표라고 할 때 기사의 예와 같이 1과 -1로 정규화되지 않고 직선으로 만 플롯됩니다.
누군가이 문제를 해결하고 해결 했습니까?
제어판->지역 및 언어->추가 설정...에서 소수점 기호를 "." 대신 "."로 변경해 보세요.
이것이 제 문제였습니다. 이것을 변경하고 해결하십시오.
고마워요!!