Kann mir jemand helfen, den Zickzack-Farbindikator, der mit der MT5-Sprache erstellt wurde, in der MT4-Plattform zum Laufen zu bringen? Ich habe versucht, das obige Skript zu verwenden, aber ohne Erfolg
die Datei ist unten angehängt.
Hier ist meine E-Mail mgbe_nsor@yahoo.com.
Vielen Dank in Erwartung Ihrer freundlichen Antwort
Ich mochte einen MT5-Indikator und konvertierte ihn mit Ihrem Skript in eine MT4-Set-Datei. Aber nicht sicher, wie die MT4-Set-Datei ohne die MQL4/ex4-Datei zu verwenden.
Wie kann ich die konvertierte MT4-Set-Datei auf dem MT4-Chart ohne die MT4/ex4-Dateien laden?
Ist es möglich, eine MQL5-Datei in eine MQL4-Datei zu konvertieren?
Ich dachte, es sei daora, aber ich habe es versucht und konnte es nicht umrechnen. Könnte jemand die Tabajara konvertieren?
Ich dachte, es sei daora, aber ich habe es versucht und konnte es nicht umrechnen. Kann jemand die Tabajara umrechnen?
Dies ist ein englischsprachiges Forum.
Bitte schreiben Sie nur auf Englisch.
Benutzen Sie das Übersetzungsprogramm, wenn nötig.
Vielen Dank für das Skript. Es gibt einen Fehler, der einen Array Out of Range Error in Zeile 94 verursacht. Behobener Code ist:
//+------------------------------------------------------------------+
//| 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++;
}
}
}
//+------------------------------------------------------------------+
Vielen Dank für das Skript. Es gibt einen Fehler, der einen Array Out of Range Error in Zeile 94 verursacht. Behobener Code ist:
//+------------------------------------------------------------------+
//| 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++;
}
}
}
//+------------------------------------------------------------------+
In der englischen Version wurde vorgeschlagen, dass das Array in Zeile 94 des Quellcodes nicht mehr zulässig ist, und im Anhang finden Sie das geänderte Skript.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
MT5 zu MT4 Set-Datei-Konverter:
Autor: Richard Gunning