Alguém pode me ajudar a fazer com que o indicador de cor ziguezague, que foi criado com o idioma MT5, funcione na plataforma MT4? Tentei usar o script acima, mas sem sucesso
O arquivo está anexado abaixo.
Aqui está meu e-mail mgbe_nsor@yahoo.com.
Agradeço antecipadamente sua gentil resposta
Gostei de um indicador MT5 e o converti em um arquivo de conjunto MT4 usando seu script. Mas não tenho certeza de como usar o arquivo de conjunto do MT4 sem o arquivo MQL4/ex4.
Como posso carregar o arquivo de conjunto MT4 convertido no gráfico MT4 sem os arquivos MT4/ex4?
É possível converter um arquivo MQL5 em um arquivo MQL4?
Achei que fosse daora, mas tentei e não consegui fazer a conversão. Alguém poderia converter o tabajara?
Achei que fosse daora, mas tentei e não consegui fazer a conversão. Alguém poderia converter o tabajara?
Este é um fórum em inglês.
Por favor, poste somente em inglês.
Use a ferramenta de tradução, se necessário.
Obrigado pelo script. Há um erro que causa um erro de matriz fora do intervalo na linha 94. O código corrigido é:
//+------------------------------------------------------------------+
//| 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++;
}
}
}
//+------------------------------------------------------------------+
Obrigado pelo script. Há um erro que causa um erro de matriz fora do intervalo na linha 94. O código corrigido é:
//+------------------------------------------------------------------+
//| 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++;
}
}
}
//+------------------------------------------------------------------+
Na versão em inglês, foi sugerido que a matriz está fora dos limites na linha 94 do código-fonte, e o script que foi alterado está em anexo.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
MT5 to MT4 Set File Converter:
Autor: Richard Gunning