Das MetaTrader 5-Fenster zeigt die Bid& Ask-Werte an, die (soweit ich weiß) den Gewinn/Verlust bestimmen.
Wenn ich jedoch versuche, Minutenkurse der Historie zu verwenden, um meine Strategie zu testen, enthalten diese Kurse nicht die Bid- undAsk-Werte, sondern geben die Werte " OPEN", "HIGH" "LOW", "CLOSE", "TICKVOL","VOL","SPREAD" an. Es ist nicht ganz klar, wie man aus diesen Werten Bid undAsk ableitet und wie man den Spread berechnet.
Alles ist absolut klar. Beschreiben Sie genauer, was genau mit "wenn ich versuche, Anführungszeichen für den Minutenverlauf zu verwenden" gemeint ist? Was genau tun Sie oder wollen Sie tun?
longSymbolInfoInteger(
string name, // символ ENUM_SYMBOL_INFO_INTEGER prop_id // идентификатор свойства
);
2. Gibt je nach Erfolg der Funktion true oder false zurück. Bei Erfolg wird der Wert der Eigenschaft in der Zielvariablen abgelegt, die durch den letzten Parameter als Referenz übergeben wird.
boolSymbolInfoInteger(
string name, // символ ENUM_SYMBOL_INFO_INTEGER prop_id, // идентификатор свойства long& long_var // сюда примем значение свойства
);
2. Gibt je nach Erfolg der Funktion true oder false zurück. Bei Erfolg wird der Wert der Eigenschaft in der Zielvariablen abgelegt, die durch den letzten Parameter als Referenz übergeben wird.
#property copyright"Copyright 2018, Sergey S Morozov"#property link"https://www.mql5.com"#property version"1.00"#property strict//#property indicator_separate_window // Индик. рисуется в новом окне#property indicator_chart_window// Индик. рисуется в основном окне#property indicator_buffers1// Количество буферов#property indicator_color1 Red // Цвет первой линииexternint History =50; // Колич.баров в расчётной историиexternint Aver_Bars=5; // Количество баров для расчётаdouble ArrayBuff[];
//----------------------------------------------------------------------------------------------------intOnInit()
{
SetIndexBuffer(0,ArrayBuff);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
return(INIT_SUCCEEDED);
}
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 i, // Индекс бара
n, // Формальный параметр
Counted_bars; // Количество просчитанных баров double
Sum_H, // Сумма значений High за переиод
Sum_L; // Сумма значений Low за переиод//--------------------------------------------------------------------
Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars-Counted_bars-1; // Индекс первого непосчитанногоif (i>History-1) // Если много баров то ..
i=History-1; // ..рассчитывать заданное колич.while(i>=0) // Цикл по непосчитанным барам
{
Sum_H=0; // Обнуление в начале цикла
Sum_L=0; // Обнуление в начале циклаfor(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений
{
Sum_H=Sum_H + High[n]; // Накопление суммы макс.значений
Sum_L=Sum_L + Low[n]; // Накопление суммы мин. значений
}
ArrayBuff[i]=(Sum_H-Sum_L)/Aver_Bars; // Знач. 0 буфера на i-ом баре
i--; // Расчёт индекса следующего бара
}
return(rates_total);
}
//+------------------------------------------------------------------+
Ich habe gerade erst angefangen, ich weiß noch nicht, wie man in dieser Sprache schreibt. Das Problem ist jedoch, dass die Grafik in einem neuen Fenster erscheint. Aber ich kann sie nicht in der aktuellen Version anzeigen... Was ist mein Fehler? Da ich selbst nicht in der Lage war, sie zu schreiben, und ich hier keine Beispiele finden kann. Und schon gar nicht durch eine Funktion wie SetChartData(point1,point2); es geschieht einfach von selbst...
Und die Variable scheint gesetzt zu sein(indicator_chart_window), aber trotzdem funktioniert es nicht....
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Как прописать расписание торговли робота? Здравствуйте...
Es ist absolut alles vorhanden. Beschreiben Sie genauer, was genau mit "wenn ich versuche, Anführungszeichen für den Minutenverlauf zu verwenden" gemeint ist? Was genau tun Sie oder wollen Sie tun?
Um die historischen Kurse herunterzuladen, laden Sie MetaTrader 5, klicken Sie auf das Symbol mit dem Dollar-Symbol: "Symbol List Display" (oder Sie können StrgU drücken). Das Fenster "Symbole" wird angezeigt. Auf der Registerkarte "SPEZIFIKATION" finden Sie das gewünschte Währungspaar, z.B. GBPCHF. In der Registerkarte "BARs" stellen Sie die Minutennotierungen (M1) und das Datum des Beginns und des Endes des gewünschten Zeitraums ein. Nach einem Klick auf die Schaltfläche "ANFORDERN" wird eine csv-Datei heruntergeladen, die Sie zum Testen von Strategien mit dem Metatrader oder mit Ihren eigenen Programmen verwenden können.
Mit EXCEL können Sie den Inhalt dieser Datei anzeigen, wobei die erste Zeile die Informationen in der Datei enthält, d. h. "Datum, Uhrzeit" und dann" OPEN", "HIGH" "LOW", "CLOSE", "TICKVOL", "VOL", "SPREAD".
Ich weiß genau, was diese Daten bedeuten, aber wie kann ich BIT und ASK aus diesen Daten machen, die MetaTrader 5 verwendet?
Bitte teilen Sie mir mit, wo in mt5 Sie Informationen über ein Symbol überprüfen können? Ich erinnere mich, dass man das in mt 4 im Strategietester überprüfen konnte, aber im mt5-Tester habe ich diese Funktion nicht gefunden.
Fügen Sie einfach ein weiteres CArrayObj-Array zum Array CArrayObj: Add() hinzu
Funktioniert so nicht. Parameterumwandlung nicht erlaubt
Übrigens, falls es wichtig ist. Mein Objekt, das dem Array hinzugefügt werden soll, ist eine von CArrayObj geerbte Klasse.
Nun, es flucht in der letzten Zeile - Parameterumwandlung nicht erlaubt.Liebe Forumsmitglieder, ich bitte um Hilfe!!!
Ich möchte einer Variablen einen Preisschritt zuweisen:
int V=SymbolInfoInteger(Symb,SYMBOL_POINT);
error: 'SymbolInfoInteger' - keine der Überladungen kann auf den Funktionsaufruf angewendet werden
Worin besteht mein Fehler noch einmal?
int V=(int)SymbolInfoInteger(Symb,SYMBOL_POINT);
Also versuchen Sie es.
Liebe Mitglieder des Forums!
Bitte um Rat!!!
Das MetaTrader 5-Fenster zeigt die Bid& Ask-Werte an, die (soweit ich weiß) den Gewinn/Verlust bestimmen.
Wenn ich jedoch versuche, Minutenkurse der Historie zu verwenden, um meine Strategie zu testen, enthalten diese Kurse nicht die Bid- und Ask-Werte, sondern geben die Werte " OPEN", "HIGH" "LOW", "CLOSE", "TICKVOL","VOL","SPREAD" an. Es ist nicht ganz klar, wie man aus diesen Werten Bid und Ask ableitet und wie man den Spread berechnet.
Alles ist absolut klar. Beschreiben Sie genauer, was genau mit "wenn ich versuche, Anführungszeichen für den Minutenverlauf zu verwenden" gemeint ist? Was genau tun Sie oder wollen Sie tun?
Liebe Forumsmitglieder, ich bitte um Hilfe!!!
Ich möchte einer Variablen einen Preisschritt zuweisen:
int V=SymbolInfoInteger(Symb,SYMBOL_POINT);
error: 'SymbolInfoInteger' - keine der Überladungen kann auf den Funktionsaufruf angewendet werden
Was ist noch mal mein Fehler?
SymbolInfoInteger Hilfe:
1. Gibt direkt den Wert der Eigenschaft zurück.
2. Gibt je nach Erfolg der Funktion true oder false zurück. Bei Erfolg wird der Wert der Eigenschaft in der Zielvariablen abgelegt, die durch den letzten Parameter als Referenz übergeben wird.
Das ist OR long OR bool.
Liebe Forumsmitglieder, ich bitte um Hilfe!!!
Ich möchte einer Variablen einen Preisschritt zuweisen:
int V=SymbolInfoInteger(Symb,SYMBOL_POINT);
error: 'SymbolInfoInteger' - keine der Überladungen kann auf den Funktionsaufruf angewendet werden
Was ist noch mal mein Fehler?
Punkt ist ein Wert vom Typ double. Wenn sie als int empfangen wird, hat sie den Wert Null.
SymbolInfoInteger Hilfe:
1. Gibt direkt den Wert der Eigenschaft zurück.
2. Gibt je nach Erfolg der Funktion true oder false zurück. Bei Erfolg wird der Wert der Eigenschaft in der Zielvariablen abgelegt, die durch den letzten Parameter als Referenz übergeben wird.
Das ist OR long OR bool.
Verstanden, danke)
Ich habe gerade erst angefangen, ich weiß noch nicht, wie man in dieser Sprache schreibt. Das Problem ist jedoch, dass die Grafik in einem neuen Fenster erscheint. Aber ich kann sie nicht in der aktuellen Version anzeigen... Was ist mein Fehler? Da ich selbst nicht in der Lage war, sie zu schreiben, und ich hier keine Beispiele finden kann. Und schon gar nicht durch eine Funktion wie SetChartData(point1,point2); es geschieht einfach von selbst...
Und die Variable scheint gesetzt zu sein(indicator_chart_window), aber trotzdem funktioniert es nicht....
Es ist absolut alles vorhanden. Beschreiben Sie genauer, was genau mit "wenn ich versuche, Anführungszeichen für den Minutenverlauf zu verwenden" gemeint ist? Was genau tun Sie oder wollen Sie tun?
Um die historischen Kurse herunterzuladen, laden Sie MetaTrader 5, klicken Sie auf das Symbol mit dem Dollar-Symbol: "Symbol List Display" (oder Sie können Strg U drücken). Das Fenster "Symbole" wird angezeigt. Auf der Registerkarte "SPEZIFIKATION" finden Sie das gewünschte Währungspaar, z.B. GBPCHF. In der Registerkarte "BARs" stellen Sie die Minutennotierungen (M1) und das Datum des Beginns und des Endes des gewünschten Zeitraums ein. Nach einem Klick auf die Schaltfläche "ANFORDERN" wird eine csv-Datei heruntergeladen, die Sie zum Testen von Strategien mit dem Metatrader oder mit Ihren eigenen Programmen verwenden können.
Mit EXCEL können Sie den Inhalt dieser Datei anzeigen, wobei die erste Zeile die Informationen in der Datei enthält, d. h. "Datum, Uhrzeit" und dann" OPEN", "HIGH" "LOW", "CLOSE", "TICKVOL", "VOL", "SPREAD".
Ich weiß genau, was diese Daten bedeuten, aber wie kann ich BIT und ASK aus diesen Daten machen, die MetaTrader 5 verwendet?