Я надеялся, что кто-нибудь сможет взглянуть на мой код и сказать, почему он не открывает файл.Это в мета-редакторе, программном обеспечении для MQL4.Все остальное работает правильно.Также нет ошибок.Он просто не откроет файл.Значение Handle равно единице при открытии файла.Эта функция прекрасно работает на MQL5, а не на MQL4.Это проблема исключительно с MQL4 или что-то с моим кодом
//+------------------------------------------------------------------+
//| DailyReport.mq4 |
//| Copyright 2018, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
int OnStart()
{
int Handle;
Handle = FileOpen("Indicator Output", FILE_WRITE|FILE_TXT);
if(Handle == INVALID_HANDLE){
Alert("Error while opening file");
return(-1);
}
int count = 0;
int end_value = count + 100;
double open_value;
while (count < end_value){
string string1, string2, string3, string4, string5, final_string;
double values[5];
values[0] = iMomentum(0, 0, 14, 0, count); //calculated at closing
values[1] = iStochastic(0, 0, 5, 3, 3, 0, 0, 0, count);
values[2] = iMA(0,0, 14, 0, 0, 0, count); //this is calculating at close
values[3] = iMFI(0, 0, 14,count);
values[4] = iOpen(0, 0, count);
open_value = iOpen(0, 0, count + 1);
if (values[0] >= 100){
values[0] = 1;
}
else{
values[0] = 0;
}
if (values[1] >= 50){
values[1] = 1;
}
else{
values[1] = 0;
}
if (values[2] >= values[4]){
values[2] = 1;
}
else{
values[2] = 0;
}
if (values[3] >= 50){
values[3] = 1;
}
else{
values[3] = 0;
}
if (values[4] >= open_value){
values[4] = 1;
}
else{
values[4] = 0;
}
string1 = IntegerToString(values[0], 1, " ");
string2 = IntegerToString(values[1], 1, " ");
string3 = IntegerToString(values[2], 1, " ");
string4 = IntegerToString(values[3], 1, " ");
string5 = IntegerToString(values[4], 1, " ");
final_string = string1 + " " + string2 + " " + string3 + " " + string4 + " " + string5;
printf(final_string);
FileWrite(Handle, final_string);
count = count + 1;
}
FileClose(Handle);
return(1);
}