NeuroTesting/Scripts/TestCorellation/price_corellation_delt.mq5

349 lines
32 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 16:12:38 +02:00
<EFBFBD><EFBFBD>//+------------------------------------------------------------------+
//| Create_Initial_Data.mq5 |
//| Copyright 2021, MetaQuotes Ltd. |
//| https://www.mql5.com/en/users/dng |
//+------------------------------------------------------------------+
//| Script creates training and testing datasets |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link "https://www.mql5.com/en/users/dng"
#property version "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//| External parameters for script operation |
//+------------------------------------------------------------------+
input datetime Start = D'2023.01.01 00:00:00'; // Start of the population period
input datetime End = D'2024.07.01 23:59:00'; // End of the population period
input ENUM_TIMEFRAMES TimeFrame = PERIOD_H1; // Timeframe for loading data
//input int BarsToLine = 10; // Number of historical bars in one pattern
input string StudyFileName = "pricecorr_delt.csv";// File name to write the training dataset
//input string TestFileName = "test_data.csv"; // File name to write the testing dataset
//input bool NormalizeData = true; // Data normalization flag
//+------------------------------------------------------------------+
//| Script program start |
//+------------------------------------------------------------------+
void OnStart(void)
{
double close[];
if(CopyClose(_Symbol, TimeFrame, Start, End,close) <= 0)
return;
double open[];
if(CopyOpen(_Symbol, TimeFrame, Start, End, open) <= 0)
return;
double high[];
if(CopyHigh(_Symbol, TimeFrame, Start, End, high) <= 0)
return;
double low[];
if(CopyLow(_Symbol, TimeFrame, Start, End, low) <= 0)
return;
//--- Open the training dataset file for writing
int Study = FileOpen(StudyFileName, FILE_WRITE | FILE_CSV | FILE_ANSI, ",", CP_UTF8);
if(Study == INVALID_HANDLE)
{
PrintFormat("Error opening file %s: %d", StudyFileName, GetLastError());
return;
}
int total = ArraySize(close);
string column;
column = "Close-Open,"+
"Close-Close1,"+
"Open-High1,"+
"Open-High2,"+
"Open-High3,"+
"Open-High4,"+
"Open-Close1,"+
"Open-Close2,"+
"Open-Close3,"+
"Open-Close4,"+
"Open-Open1,"+
"Open-Open2,"+
"Open-Open3,"+
"Open-Open4,"+
"Open-Low1,"+
"Open-Low2,"+
"Open-Low3,"+
"Open-Low4,"+
"High1-Open1,"+
"High1-Close1,"+
"High1-Low1,"+
"High1-High2,"+
"High1-High3,"+
"High1-High4,"+
"High1-Open2,"+
"High1-Open3,"+
"High1-Open4,"+
"High1-Close2,"+
"High1-Close3,"+
"High1-Close4,"+
"High1-Low2,"+
"High1-Low3,"+
"High1-Low4,"+
"Open1-Close1,"+
"Open1-Low1,"+
"Open1-High2,"+
"Open1-High3,"+
"Open1-High4,"+
"Open1-Open2,"+
"Open1-Open3,"+
"Open1-Open4,"+
"Open1-Close2,"+
"Open1-Close3,"+
"Open1-Close4,"+
"Open1-Low2,"+
"Open1-Low3,"+
"Open1-Low4,"+
"Close1-Low1,"+
"Close1-High2,"+
"Close1-High3,"+
"Close1-High4,"+
"Close1-Open2,"+
"Close1-Open3,"+
"Close1-Open4,"+
"Close1-Close2,"+
"Close1-Close3,"+
"Close1-Close4,"+
"Close1-Low2,"+
"Close1-Low3,"+
"Close1-Low4,"+
"Low1-High2,"+
"Low1-High3,"+
"Low1-High4,"+
"Low1-Open2,"+
"Low1-Open3,"+
"Low1-Open4,"+
"Low1-Close2,"+
"Low1-Close3,"+
"Low1-Close4,"+
"Low1-Low2,"+
"Low1-Low3,"+
"Low1-Low4,"+
"High2-Open2,"+
"High2-Close2,"+
"High2-Low2,"+
"High2-High3,"+
"High2-High4,"+
"High2-Open3,"+
"High2-Open4,"+
"High2-Close3,"+
"High2-Close4,"+
"High2-Low3,"+
"High2-Low4,"+
"Open2-Close2,"+
"Open2-Low2,"+
"Open2-High3,"+
"Open2-High4,"+
"Open2-Open3,"+
"Open2-Open4,"+
"Open2-Close3,"+
"Open2-Close4,"+
"Open2-Low3,"+
"Open2-Low4,"+
"Close2-Low2,"+
"Close2-High3,"+
"Close2-High4,"+
"Close2-Open3,"+
"Close2-Open4,"+
"Close2-Close3,"+
"Close2-Close4,"+
"Close2-Low3,"+
"Close2-Low4,"+
"Low2-High3,"+
"Low2-High4,"+
"Low2-Open3,"+
"Low2-Open4,"+
"Low2-Close3,"+
"Low2-Close4,"+
"Low2-Low3,"+
"Low2-Low4,"+
"High3-Open3,"+
"High3-Close3,"+
"High3-Low3,"+
"High3-High4,"+
"High3-Open4,"+
"High3-Close4,"+
"High3-Low4,"+
"Open3-Close3,"+
"Open3-Low3,"+
"Open3-High4,"+
"Open3-Open4,"+
"Open3-Close4,"+
"Open3-Low4,"+
"Close3-Low3,"+
"Close3-High4,"+
"Close3-Open4,"+
"Close3-Close4,"+
"Close3-Low4,"+
"Low3-High4,"+
"Low3-Open4,"+
"Low3-Close4,"+
"Low3-Low4,"+
"High4-Open4,"+
"High4-Close4,"+
"High4-Low4,"+
"Open4-Close4,"+
"Open4-Low4,"+
"Close4-Low4 ";
FileWrite(Study, column);
//--- Write datasets to files
string data;
for(int i = total-1; i >= 4; i--)
{
data = (string) (close[i]-open[i])+","+
(string) (close[i]-close[i-1])+","+
(string) (open[i]-high[i-1])+","+
(string) (open[i]-high[i-2])+","+
(string) (open[i]-high[i-3])+","+
(string) (open[i]-high[i-4])+","+
(string) (open[i]-close[i-1])+","+
(string) (open[i]-close[i-2])+","+
(string) (open[i]-close[i-3])+","+
(string) (open[i]-close[i-4])+","+
(string) (open[i]-open[i-1])+","+
(string) (open[i]-open[i-2])+","+
(string) (open[i]-open[i-3])+","+
(string) (open[i]-open[i-4])+","+
(string) (open[i]-low[i-1])+","+
(string) (open[i]-low[i-2])+","+
(string) (open[i]-low[i-3])+","+
(string) (open[i]-low[i-4])+","+
(string) (high[i-1]-open[i-1])+","+
(string) (high[i-1]-close[i-1])+","+
(string) (high[i-1]-low[i-1])+","+
(string) (high[i-1]-high[i-2])+","+
(string) (high[i-1]-high[i-3])+","+
(string) (high[i-1]-high[i-4])+","+
(string) (high[i-1]-open[i-2])+","+
(string) (high[i-1]-open[i-3])+","+
(string) (high[i-1]-open[i-4])+","+
(string) (high[i-1]-close[i-2])+","+
(string) (high[i-1]-close[i-3])+","+
(string) (high[i-1]-close[i-4])+","+
(string) (high[i-1]-low[i-2])+","+
(string) (high[i-1]-low[i-3])+","+
(string) (high[i-1]-low[i-4])+","+
(string) (open[i-1]-close[i-1])+","+
(string) (open[i-1]-low[i-1])+","+
(string) (open[i-1]-high[i-2])+","+
(string) (open[i-1]-high[i-3])+","+
(string) (open[i-1]-high[i-4])+","+
(string) (open[i-1]-open[i-2])+","+
(string) (open[i-1]-open[i-3])+","+
(string) (open[i-1]-open[i-4])+","+
(string) (open[i-1]-close[i-2])+","+
(string) (open[i-1]-close[i-3])+","+
(string) (open[i-1]-close[i-4])+","+
(string) (open[i-1]-low[i-2])+","+
(string) (open[i-1]-low[i-3])+","+
(string) (open[i-1]-low[i-4])+","+
(string) (close[i-1]-low[i-1])+","+
(string) (close[i-1]-high[i-2])+","+
(string) (close[i-1]-high[i-3])+","+
(string) (close[i-1]-high[i-4])+","+
(string) (close[i-1]-open[i-2])+","+
(string) (close[i-1]-open[i-3])+","+
(string) (close[i-1]-open[i-4])+","+
(string) (close[i-1]-close[i-2])+","+
(string) (close[i-1]-close[i-3])+","+
(string) (close[i-1]-close[i-4])+","+
(string) (close[i-1]-low[i-2])+","+
(string) (close[i-1]-low[i-3])+","+
(string) (close[i-1]-low[i-4])+","+
(string) (low[i-1]-high[i-2])+","+
(string) (low[i-1]-high[i-3])+","+
(string) (low[i-1]-high[i-4])+","+
(string) (low[i-1]-open[i-2])+","+
(string) (low[i-1]-open[i-3])+","+
(string) (low[i-1]-open[i-4])+","+
(string) (low[i-1]-close[i-2])+","+
(string) (low[i-1]-close[i-3])+","+
(string) (low[i-1]-close[i-4])+","+
(string) (low[i-1]-low[i-2])+","+
(string) (low[i-1]-low[i-3])+","+
(string) (low[i-1]-low[i-4])+","+
(string) (high[i-2]-open[i-2])+","+
(string) (high[i-2]-close[i-2])+","+
(string) (high[i-2]-low[i-2])+","+
(string) (high[i-2]-high[i-3])+","+
(string) (high[i-2]-high[i-4])+","+
(string) (high[i-2]-open[i-3])+","+
(string) (high[i-2]-open[i-4])+","+
(string) (high[i-2]-close[i-3])+","+
(string) (high[i-2]-close[i-4])+","+
(string) (high[i-2]-low[i-3])+","+
(string) (high[i-2]-low[i-4])+","+
(string) (open[i-2]-close[i-2])+","+
(string) (open[i-2]-low[i-2])+","+
(string) (open[i-2]-high[i-3])+","+
(string) (open[i-2]-high[i-4])+","+
(string) (open[i-2]-open[i-3])+","+
(string) (open[i-2]-open[i-4])+","+
(string) (open[i-2]-close[i-3])+","+
(string) (open[i-2]-close[i-4])+","+
(string) (open[i-2]-low[i-3])+","+
(string) (open[i-2]-low[i-4])+","+
(string) (close[i-2]-low[i-2])+","+
(string) (close[i-2]-high[i-3])+","+
(string) (close[i-2]-high[i-4])+","+
(string) (close[i-2]-open[i-3])+","+
(string) (close[i-2]-open[i-4])+","+
(string) (close[i-2]-close[i-3])+","+
(string) (close[i-2]-close[i-4])+","+
(string) (close[i-2]-low[i-3])+","+
(string) (close[i-2]-low[i-4])+","+
(string) (low[i-2]-high[i-3])+","+
(string) (low[i-2]-high[i-4])+","+
(string) (low[i-2]-open[i-3])+","+
(string) (low[i-2]-open[i-4])+","+
(string) (low[i-2]-close[i-3])+","+
(string) (low[i-2]-close[i-4])+","+
(string) (low[i-2]-low[i-3])+","+
(string) (low[i-2]-low[i-4])+","+
(string) (high[i-3]-open[i-3])+","+
(string) (high[i-3]-close[i-3])+","+
(string) (high[i-3]-low[i-3])+","+
(string) (high[i-3]-high[i-4])+","+
(string) (high[i-3]-open[i-4])+","+
(string) (high[i-3]-close[i-4])+","+
(string) (high[i-3]-low[i-4])+","+
(string) (open[i-3]-close[i-3])+","+
(string) (open[i-3]-low[i-3])+","+
(string) (open[i-3]-high[i-4])+","+
(string) (open[i-3]-open[i-4])+","+
(string) (open[i-3]-close[i-4])+","+
(string) (open[i-3]-low[i-4])+","+
(string) (close[i-3]-low[i-3])+","+
(string) (close[i-3]-high[i-4])+","+
(string) (close[i-3]-open[i-4])+","+
(string) (close[i-3]-close[i-4])+","+
(string) (close[i-3]-low[i-4])+","+
(string) (low[i-3]-high[i-4])+","+
(string) (low[i-3]-open[i-4])+","+
(string) (low[i-3]-close[i-4])+","+
(string) (low[i-3]-low[i-4])+","+
(string) (high[i-4]-open[i-4])+","+
(string) (high[i-4]-close[i-4])+","+
(string) (high[i-4]-low[i-4])+","+
(string) (open[i-4]-close[i-4])+","+
(string) (open[i-4]-low[i-4])+","+
(string) (close[i-4]-low[i-4]);
FileWrite(Study, data);
}
//--- Close files
Comment("");
FileFlush(Study);
FileClose(Study);
PrintFormat("Study data saved to file %s\\MQL5\\Files\\%s",
TerminalInfoString(TERMINAL_DATA_PATH), StudyFileName);
}