gisip: Bei MQL4 funktioniert alles auch ohne Timer.
Ihre Aussage ist nicht ganz akzeptabel, wir reden hier über das Testen mit mehreren Währungen. Es gibt keinen Timer in MT4, aber es gibt auch keinen Multicurrency-Tester. Wenn Sie mit MT4 arbeiten, hängt der Expert Advisor in jedem Fall von der Intensität des Kursflusses des Instruments ab, mit dem er arbeitet. Stellen Sie sich eine solche Situation vor: Nehmen wir an, Sie haben einen Multicurrency Expert Advisor auf EURUSD, und wenn es in einem bestimmten Zeitrahmen keine Ticks auf diesem Paar gibt, wie wollen Sie dann die Ankunft neuer Ticks auf anderen Instrumenten verfolgen?
Nun, es gibt sie nicht in MQL4, auch Strukturen und Klassen gibt es dort nicht, schlagen Sie vor, sie hier aufzugeben?
IMHO
Die Standardbibliothek zu verwenden oder nicht, ist Geschmackssache (im schlimmsten Fall kann man nur seinen eigenen Code verwenden), aber alle Vorteile aufzugeben, nur weil sie in MT4 nicht verfügbar sind, ist nicht sehr vernünftig.....
Darüber habe ich überhaupt nicht geschrieben.
Ich habe geschrieben, dass MQL5 fehlerhaft ist und bei bestimmten Kombinationen von Instrumenten fehlerhafte Daten erzeugt.
Ein Beispiel: Wenn EURJPY oder EURGBP auf dem EURUSD-Chart überlagert wird, ist alles in Ordnung.
Aber wenn Sie EURCAD überlagern, sind die Daten auf dem Diagramm fehlerhaft, während es in MQL4 keinen solchen Fehler gab.
Ich habe geschrieben, dass MQL5 bei bestimmten Kombinationen von Instrumenten Probleme macht und fehlerhafte Daten erzeugt.
Zum Beispiel: Wenn EURJPY oder EURGBP auf dem EURUSD-Chart überlagert wird, ist alles normal.
Aber wenn Sie EURCAD überlagern, die Daten auf dem Chart mit einem Fehler, während in MQL4 dies nicht der Fall war, gibt es keinen Fehler.
Ich verstand, dass, aber Kos ist richtig (besonders schön Post von 2010.07.02 14:57). Ich kann nicht verstehen, warum alle Entwickler (einschließlich MQ ) hartnäckig den Timer ignorieren. Wenn wir berücksichtigen, dass es keine offiziellen Beispiele für Multicurrency-Trader gibt, dann ist bei MQ in dieser Sache alles klar, aber warum andere beharrlich OnTimer() ignorieren, bleibt für mich persönlich ein GROSSES Rätsel....
Renat: Bitte geben Sie mir ein Beispiel mit einem Fehler.
Nun, ich werde hier nicht alles schreiben, es scheint klar genug zu sein. //--------- Option mit MQL4 --------- #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Aqua
while(i >= 0){//-- Bewegung von rechts nach links (d.h. vom höchsten zum 0-Bar, der noch gebildet wird) -- Buffer[i] = (iHigh(InstrumentName,0,i) + iClose(InstrumentName,0,i) + iLow(InstrumentName,0,i)) / 3; i--;//-- next Bar }///next (while)
//----------- Jetzt fast die gleiche Variante in MQL5 -------- #property indicator_separate_window // Indic. wird in einem eigenen Fenster gezeichnet #property indicator_buffers 1
#property indicator_plots 1 #property indicator_type1 DRAW_LINE #property indicator_color1 Aqua
input string InstrumentName = "EURCAD"; double Buffer[]; int handle1;
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
Rosh: Bitte fügen Sie den Code korrekt ein, das macht es einfacher zu verstehen.
//--------- Option mit MQL4 --------- #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Aqua
extern string InstrumentName = "EURCAD"; double Buffer[]; int init() { SetIndexBuffer(0,Buffer); // Array dem Puffer zuweisen SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Linienstil } int start() { while(i >= 0){ Puffer[i] = (iHigh(InstrumentName,0,i) + iClose(InstrumentName,0,i) + iLow(InstrumentName,0,i)) / 3; i--;//-- next Bar }//next (while) }
//----------- Nun fast die gleiche Variante in MQL5 -------- #property indicator_separate_window // Indikator. wird in einem eigenen Fenster gezeichnet #property indicator_buffers 1
#property indicator_plots 1 #property indicator_type1 DRAW_LINE #property indicator_color1 Aqua
Bitte machen Sie ein reproduzierbares Beispiel. Das heißt, Sie brauchen vorgefertigten Code, den Sie kompilieren, in ein Diagramm einfügen und Ergebnisse erhalten können.
Ohne dies werden nur wenige Menschen verstehen, wovon wir sprechen.
Ich werde denen helfen, die des Bewusstseins beraubt sind.
//----------- Jetzt fast die gleiche Variante in MQL5 --------#property indicator_separate_window // Der Indikator wird in einem separaten Fenster gezeichnet#property indicator_buffers 1#property indicator_plots 1#property indicator_type1 DRAW_LINE#property indicator_color1 Aquainputstring InstrumentName = "EURCAD";
double Buffer[];
intOnInit()
{
IndicatorSetString(INDICATOR_SHORTNAME,InstrumentName);
SetIndexBuffer(0,Buffer,INDICATOR_DATA);
return(0);
}
intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime& time[],
constdouble& open[],
constdouble& high[],
constdouble& low[],
constdouble& close[],
constlong& tick_volume[],
constlong& volume[],
constint& spread[])
{
int copied;
int CountBars=rates_total;
copied=CopyClose(InstrumentName,0,0,CountBars,Buffer);
return(copied);
}
//--Jetzt auf EURUSD werfen.//--Es spielt keine Rolle, auf welchem Instrument wir den Indikator platzieren, das Diagramm sollte sich nicht ändern.
Idealerweise sollte es nicht, aber ich habe es quietschen mit Algorithmen erschien es nur auf 1 TF auf die anderen kategorisch zeigte Leere .....
Bei MQL4 funktioniert alles auch ohne Timer.
Nun, es gibt sie nicht in MQL4, auch Strukturen und Klassen gibt es dort nicht, schlagen Sie vor, sie hier aufzugeben?
IMHO
Die Standardbibliothek zu verwenden oder nicht, ist Geschmackssache (im schlimmsten Fall kann man nur seinen eigenen Code verwenden), aber alle Vorteile aufzugeben, nur weil sie in MT4 nicht verfügbar sind, ist nicht sehr vernünftig.....
Darüber habe ich überhaupt nicht geschrieben.
Ich habe geschrieben, dass MQL5 fehlerhaft ist und bei bestimmten Kombinationen von Instrumenten fehlerhafte Daten erzeugt.
Ein Beispiel: Wenn EURJPY oder EURGBP auf dem EURUSD-Chart überlagert wird, ist alles in Ordnung.
Aber wenn Sie EURCAD überlagern, sind die Daten auf dem Diagramm fehlerhaft, während es in MQL4 keinen solchen Fehler gab.
Darüber habe ich überhaupt nicht geschrieben.
Ich habe geschrieben, dass MQL5 bei bestimmten Kombinationen von Instrumenten Probleme macht und fehlerhafte Daten erzeugt.
Zum Beispiel: Wenn EURJPY oder EURGBP auf dem EURUSD-Chart überlagert wird, ist alles normal.
Aber wenn Sie EURCAD überlagern, die Daten auf dem Chart mit einem Fehler, während in MQL4 dies nicht der Fall war, gibt es keinen Fehler.
Darüber habe ich überhaupt nicht geschrieben.
Ich habe geschrieben, dass MQL5 bei bestimmten Kombinationen von Instrumenten Probleme macht und fehlerhafte Daten erzeugt.
Zum Beispiel: Wenn EURJPY oder EURGBP auf dem EURUSD-Chart überlagert wird, ist alles normal.
Aber wenn Sie EURCAD überlagern, werden die Daten auf dem Chart mit einem Fehler, während in MQL4 dies nicht der Fall war, gibt es keinen Fehler.
Bitte geben Sie mir ein Beispiel mit einem Fehler.
//--------- Option mit MQL4 ---------
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Aqua
extern string InstrumentName = "EURCAD";
double Buffer[];
SetIndexBuffer(0,Buffer); // Array dem Puffer zuweisen
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Linienstil
while(i >= 0){//-- Bewegung von rechts nach links (d.h. vom höchsten zum 0-Bar, der noch gebildet wird) --
Buffer[i] = (iHigh(InstrumentName,0,i) + iClose(InstrumentName,0,i) + iLow(InstrumentName,0,i)) / 3;
i--;//-- next Bar
}///next (while)
//----------- Jetzt fast die gleiche Variante in MQL5 --------
#property indicator_separate_window // Indic. wird in einem eigenen Fenster gezeichnet
#property indicator_buffers 1
#property indicator_plots 1
#property indicator_type1 DRAW_LINE
#property indicator_color1 Aqua
input string InstrumentName = "EURCAD";
double Buffer[];
int handle1;
copied=CopyClose(InstrumentName,0,0,CountBars,Buffer);
//--Nun werfen wir auf EURUSD.
//--Es spielt keine Rolle, auf welchem Instrument wir den Indikator platzieren, der Chart sollte sich nicht verändern.
Bitte fügen Sie den Code korrekt ein, das macht es einfacher zu verstehen.
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Aqua
extern string InstrumentName = "EURCAD";
double Buffer[];
int init()
{
SetIndexBuffer(0,Buffer); // Array dem Puffer zuweisen
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Linienstil
}
int start()
{
while(i >= 0){
Puffer[i] = (iHigh(InstrumentName,0,i) + iClose(InstrumentName,0,i) + iLow(InstrumentName,0,i)) / 3;
i--;//-- next Bar
}//next (while)
}
//----------- Nun fast die gleiche Variante in MQL5 --------
#property indicator_separate_window // Indikator. wird in einem eigenen Fenster gezeichnet
#property indicator_buffers 1
#property indicator_plots 1
#property indicator_type1 DRAW_LINE
#property indicator_color1 Aqua
input string InstrumentName = "EURCAD";
double Puffer[];
int OnInit()
{
{ IndicatorSetString(INDICATOR_SHORTNAME,InstrumentName);
SetIndexPuffer(0,Puffer,INDICATOR_DATA);
}
int OnCalculate(....)
{
copied=CopyClose(InstrumentName,0,0,0,CountBars,Buffer);
}
//--Jetzt werfen wir ihn auf EURUSD.
//--Es spielt keine Rolle, auf welchem Instrument wir den Indikator platzieren, der Chart sollte sich nicht ändern.
Bitte machen Sie ein reproduzierbares Beispiel. Das heißt, Sie brauchen vorgefertigten Code, den Sie kompilieren, in ein Diagramm einfügen und Ergebnisse erhalten können.
Ohne dies werden nur wenige Menschen verstehen, wovon wir sprechen.Ich werde denen helfen, die des Bewusstseins beraubt sind.
Idealerweise sollte es nicht, aber ich habe es quietschen mit Algorithmen erschien es nur auf 1 TF auf die anderen kategorisch zeigte Leere .....
auch nach einer Stunde des Testens.....
und Versuchen, die Geschichte hochzuladen