Por favor, ¿puede alguien ayudar a hacer el indicador de color zigzag que se hizo con el lenguaje MT5 trabajo en la plataforma MT4. He intentado usar el script de arriba pero sin éxito
el archivo se adjunta a continuación.
Aquí está mi correo electrónico mgbe_nsor@yahoo.com.
Gracias en espera de su amable respuesta
Me gustó un indicador MT5 y lo convertí en archivo de conjunto MT4 utilizando su script. Pero no estoy seguro de cómo utilizar el archivo de conjunto MT4 sin el archivo MQL4/ex4.
¿Cómo puedo cargar el archivo de conjunto MT4 convertido en el gráfico MT4 sin los archivos MT4/ex4?
¿Es posible convertir un archivo MQL5 en un archivo MQL4?.
Pensé que era daora, pero lo intenté y no pude hacer una conversión. ¿Alguien podría convertir la tabajara?
Pensé que era daora, pero lo intenté y no pude hacer una conversión. ¿Alguien podría convertir el tabajara?
Este es un foro en inglés.
Por favor, escribe sólo en inglés.
Utiliza la herramienta de traducción si es necesario.
Gracias por el script. Hay un error que causa un Array Out of Range Error en la línea 94. El código corregido es:
//+------------------------------------------------------------------+
//| SetFileConverter.mq5 |
//| Richard Gunning |
//| https://rjgunning.com |
//+------------------------------------------------------------------+
#property copyright "Richard Gunning"
#property link "https://rjgunning.com"
#property version "1.00"
#property description "Script for converting set files from MT5 format to MT4 format."
#property description "Set files must be in Files Folder or a SubDirectory."
#property script_show_inputs
#property strict
#include <Files/FileTxt.mqh>
//--- input parameters
input string File=""; // SetFile Name to Convert (Leave blank to convert all)
input string SubDirectory=""; // SubDirectory of Files Folder in which to search
input string Directory="MT4-Output-Setfiles"; //Output Directory Name (Not Blank)
//--- Create Global Variables
CFileTxt *output=new CFileTxt;
CFileTxt *file=new CFileTxt;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
long m_handle;
bool m_file_found=true;
string searchString="*.set";
string thisDirectory=Directory;
string src_path;
string dst_path;
//--- Create Output Directory
if(thisDirectory==""){thisDirectory="MT4-Output-Setfiles";}
if(!output.FolderCreate(thisDirectory))
{
Print("Error Creating Destination Folder");
delete output;
delete file;
return;
}
//--- Set Search String and Find First Matching file in Directory
if(File!=""){searchString=File;}
if(SubDirectory=="")
{
m_handle=file.FileFindFirst(searchString,src_path);
}
else
{
m_handle=file.FileFindFirst(SubDirectory+"//"+searchString,src_path);
}
//--- Loop through matching files and run conversion
while(m_handle!=INVALID_HANDLE && m_file_found)
{
StringConcatenate(dst_path,thisDirectory,"//",src_path);
StringReplace(dst_path,".set","-MT4.set");
if(output.Open(dst_path,FILE_WRITE|FILE_REWRITE)!=INVALID_HANDLE &&
file.Open(src_path,FILE_READ)!=INVALID_HANDLE)
{
Convert();
}
//--- Close SetFiles
output.Close();
file.Close();
//--- Get Next SetFile
m_file_found=file.FileFindNext(m_handle,src_path);
}
//--- Delete Global objects
delete output;
delete file;
}
//+------------------------------------------------------------------+
//| Parse MT5 Set File Line By Line and Write Output Set File |
//+------------------------------------------------------------------+
void Convert()
{
string line,str;
string values[2];
string split[];
int opt;
while(!file.IsEnding())
{
line=file.ReadString();
StringSplit(line,'=',values);
StringSplit(values[1],'|',split);
if(ArraySize(split)==0){ArrayResize(split,1);}
for(int i=0,count=0;i<ArraySize(split);i++)
{
if(split[i]==""){continue;}
if(count==0)
{
str=StringFormat("%s=%s",values[0],split[i]);
}
else if(count<4)
{
str=StringFormat("%s,%d=%s",values[0],count,split[i]);
}
else
{
opt=(split[i]=="Y")?1:0;
str=StringFormat("%s,F=%d",values[0],opt);
}
output.WriteString(str+"\r\n");
count++;
}
}
}
//+------------------------------------------------------------------+
Gracias por el script. Hay un error que causa un Array Out of Range Error en la línea 94. El código corregido es:
//+------------------------------------------------------------------+
//| SetFileConverter.mq5 |
//| Richard Gunning |
//| https://rjgunning.com |
//+------------------------------------------------------------------+
#property copyright "Richard Gunning"
#property link "https://rjgunning.com"
#property version "1.00"
#property description "Script for converting set files from MT5 format to MT4 format."
#property description "Set files must be in Files Folder or a SubDirectory."
#property script_show_inputs
#property strict
#include <Files/FileTxt.mqh>
//--- input parameters
input string File=""; // SetFile Name to Convert (Leave blank to convert all)
input string SubDirectory=""; // SubDirectory of Files Folder in which to search
input string Directory="MT4-Output-Setfiles"; //Output Directory Name (Not Blank)
//--- Create Global Variables
CFileTxt *output=new CFileTxt;
CFileTxt *file=new CFileTxt;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
long m_handle;
bool m_file_found=true;
string searchString="*.set";
string thisDirectory=Directory;
string src_path;
string dst_path;
//--- Create Output Directory
if(thisDirectory==""){thisDirectory="MT4-Output-Setfiles";}
if(!output.FolderCreate(thisDirectory))
{
Print("Error Creating Destination Folder");
delete output;
delete file;
return;
}
//--- Set Search String and Find First Matching file in Directory
if(File!=""){searchString=File;}
if(SubDirectory=="")
{
m_handle=file.FileFindFirst(searchString,src_path);
}
else
{
m_handle=file.FileFindFirst(SubDirectory+"//"+searchString,src_path);
}
//--- Loop through matching files and run conversion
while(m_handle!=INVALID_HANDLE && m_file_found)
{
StringConcatenate(dst_path,thisDirectory,"//",src_path);
StringReplace(dst_path,".set","-MT4.set");
if(output.Open(dst_path,FILE_WRITE|FILE_REWRITE)!=INVALID_HANDLE &&
file.Open(src_path,FILE_READ)!=INVALID_HANDLE)
{
Convert();
}
//--- Close SetFiles
output.Close();
file.Close();
//--- Get Next SetFile
m_file_found=file.FileFindNext(m_handle,src_path);
}
//--- Delete Global objects
delete output;
delete file;
}
//+------------------------------------------------------------------+
//| Parse MT5 Set File Line By Line and Write Output Set File |
//+------------------------------------------------------------------+
void Convert()
{
string line,str;
string values[2];
string split[];
int opt;
while(!file.IsEnding())
{
line=file.ReadString();
StringSplit(line,'=',values);
StringSplit(values[1],'|',split);
if(ArraySize(split)==0){ArrayResize(split,1);}
for(int i=0,count=0;i<ArraySize(split);i++)
{
if(split[i]==""){continue;}
if(count==0)
{
str=StringFormat("%s=%s",values[0],split[i]);
}
else if(count<4)
{
str=StringFormat("%s,%d=%s",values[0],count,split[i]);
}
else
{
opt=(split[i]=="Y")?1:0;
str=StringFormat("%s,F=%d",values[0],opt);
}
output.WriteString(str+"\r\n");
count++;
}
}
}
//+------------------------------------------------------------------+
En la versión inglesa, se ha sugerido que el array está fuera de límites en la línea 94 del código fuente, y el adjunto es el script que se ha cambiado.
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
MT5 to MT4 Set File Converter:
Autor: Richard Gunning