Kann mir bitte jemand sagen, wie ich das Folgende schreiben soll?
Ich habe einen Trainingsindikator erstellt, der iVolume für jeden Tick zählt: iVolume ist positiv für diejenigen, die sich nach oben bewegt haben, und iVolume ist negativ für diejenigen, die sich nach unten bewegt haben. Um eine Kurve zu erstellen, addiere ich das gesamte iVolumen (positiv und negativ) und erhöhe die Summe von Takt zu Takt. Man erhält eine Kurve. Allerdings bin ich auf zwei Probleme gestoßen:
1) die Linie wird sehr gebrochen;
2) Es ist nicht möglich, den Expert Advisor zu testen, da das erhaltene iVolume-Diagramm nur ein reales Leben hat.
Frage:
1) Wie lässt sich der Code beschreiben, der es ermöglicht, ein Diagramm auf der Grundlage gemittelter Daten zu erstellen, die ich in den Puffer schreibe?
2) Ist es möglich, die Daten dieses Indikators (die im realen Modus empfangen werden) in eine bestimmte Datei zu schreiben, so dass wir später unter Bezugnahme auf diese Datei den Indikator auf den historischen Daten aufbauen können, indem wir die bereits gesammelten Tick-Volumen auf sie anwenden? Wenn möglich, wie kann man es programmatisch beschreiben? Oder gibt es eine andere Lösung, bei der die aktuellen iVolume-Informationen nicht in eine Datei geschrieben werden müssen?
#property version"1.00"#property strict#property indicator_separate_window#property indicator_buffers2#property indicator_label1"Вверх"#property indicator_type1DRAW_LINE#property indicator_color1 Salmon
#property indicator_style1STYLE_SOLID#property indicator_width12#property indicator_label2"Вниз"#property indicator_type2DRAW_LINE#property indicator_color2clrDarkTurquoise#property indicator_style2STYLE_SOLID#property indicator_width22datetime Время=0; // Время прошлого бараdouble Bid1;
double Buf_1[];
long V1; // объем для текущего тика вверхlong V2; // накопленный объем для всех тиков вверх текущего бараlong V3; // объем текущего тика внизlong V4; // накопленный объем для всех тиков вниз для текущего бараlong V5; // отрицательные и положительные iVolume нарастающим итогомvoidOnInit()
{
IndicatorDigits(0);
SetIndexBuffer(0,Buf_1);
//SetIndexBuffer(1,Buf_2);
Bid1=Bid;
V5 = 0;
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
datetime Вр=Time[0]; // Время текущего бараif(Вр>Время) // Если новый бар
{
Время=Вр; // Запомнить// Buf_1[0]=0; // и обнулить последний элемент буфера
}
if(Bid >= Bid1)
{
if(Bid > Bid1)
{
V1 = iVolume(NULL, 0, 0); // если повышающий цену тик
V2 = V1 + V2;
}
else
{
V1 = 0; // если Bid1 = Bid2, т.е. изменение цены = 0, то iVolume этого тика присваиваем 0;
V2 = V1 + V2;
}
}
else
{
V3 = iVolume(NULL, 0, 0); // если понижающий цену тик
V4 = V3 + V4;
}
V5 = V2-V4;
Bid1=Bid;
Buf_1[0]= V5; // в буфер сгружаем return(rates_total);
}
YarTrade: Ist es möglich, die Daten dieses Indikators (die im realen Modus erhalten werden) in eine Datei zu schreiben, so dass es später möglich wäre, anhand dieser Datei einen Indikator auf historischen Daten zu erstellen, indem die bereits gesammelten Tick-Volumina darauf angewendet werden? Wenn möglich, wie kann man es programmatisch beschreiben? Oder gibt es eine andere Lösung, bei der die aktuellen iVolume-Informationen nicht in die Datei geschrieben werden müssen?
Indikator basierend auf Daten aus der Datei - diese Zeile in die Suche eingegeben und gefunden
Hallo zusammen. Leute, könntet ihr uns bitte ein wenig helfen? Könnte bitte jemand eine Zeile in den Indikator einfügen, in der man den Namen der Sounddatei angeben kann, so dass die Zeile in den Indikatoreinstellungen angezeigt wird.
Kann mir bitte jemand sagen, wie ich das Folgende schreiben soll?
Ich habe einen Trainingsindikator erstellt, der iVolume für jeden Tick zählt: iVolume ist positiv für diejenigen, die sich nach oben bewegt haben, und iVolume ist negativ für diejenigen, die sich nach unten bewegt haben. Um eine Kurve zu erstellen, addiere ich das gesamte iVolumen (positiv und negativ) und erhöhe die Summe von Takt zu Takt. Man erhält eine Kurve. Allerdings bin ich auf zwei Probleme gestoßen:
1) die Linie wird sehr gebrochen;
2) Es ist nicht möglich, den Expert Advisor zu testen, da das erhaltene iVolume-Diagramm nur ein reales Leben hat.
Frage:
1) Wie lässt sich der Code beschreiben, der es ermöglicht, ein Diagramm auf der Grundlage gemittelter Daten zu erstellen, die ich in den Puffer schreibe?
2) Ist es möglich, die Daten dieses Indikators (die im realen Modus empfangen werden) in eine bestimmte Datei zu schreiben, so dass wir später unter Bezugnahme auf diese Datei den Indikator auf den historischen Daten aufbauen können, indem wir die bereits gesammelten Tick-Volumen auf sie anwenden? Wenn möglich, wie kann man es programmatisch beschreiben? Oder gibt es eine andere Lösung, bei der die aktuellen iVolume-Informationen nicht in eine Datei geschrieben werden müssen?
Vielleicht am Ende des Codes hinzufügen:
double macurrent=iMAOnArray(Buf_1[0],0,5,0,MODE_LWMA,0);
Eh, nein! Der Compiler erzeugt den Fehler, dass es kein Array gibt.
Anyone....., können Sie helfen? Die Sackgasse, in der ich mich befinde, finden Sie hier:https://www.mql5.com/ru/forum/160683/page378#comment_6053255
Indikator basierend auf Daten aus der Datei - diese Zeile in die Suche eingegeben und gefunden
Eine Art Alptraum, ich verstehe nicht, warum er so ausgibt:
Code section :
line[0]=MathFloor(Low[1]*MathPow(10,D-1));
Print("Var ",DoubleToStr(line[0],D));
Print("Code ",DoubleToStr(MathFloor(Low[1]*MathPow(10,D-1)),D));
Output :
EURUSD,M15: Var 0.00000
EURUSD,M15: Code 11754.00000
Was geschieht mit dem Wert nach der Zuweisung?
line[0]=MathFloor(Low[1]*MathPow(10,D-1));
Print("Var ",DoubleToStr(line[0],D));
Print("Code ",DoubleToStr(MathFloor(Low[1]*MathPow(10,D-1)),D));
Print :
EURUSD,M15: Var 0.00000
EURUSD,M15: Code 11754.00000
Was geschieht mit dem Wert nach der Zuweisung?
Drucken Sie den Wert der Variablen nach der Zuweisung und den Wert der Variablen D. Benutzen Sie Ihren Taschenrechner zum Rechnen.
Hallo zusammen. Leute, könntet ihr uns bitte ein wenig helfen? Könnte bitte jemand eine Zeile in den Indikator einfügen, in der man den Namen der Sounddatei angeben kann, so dass die Zeile in den Indikatoreinstellungen angezeigt wird.
Drucken Sie die Werte der Variablen nach der Zuweisung und den Wert der Variablen D aus. Berechnen wir es mit einem Taschenrechner...
Ich gebe also den Wert der Variablen nach der Zuweisung aus. Der Code sieht also im Wesentlichen wie folgt aus:
a=b;
Drucken (a);
Drucken (b);
Aber a ist gleich Null und b wird richtig gedruckt
So gebe ich den zugewiesenen Wert aus. Der Code sieht also im Wesentlichen wie folgt aus:
a=b;
Drucken (a);
Drucken (b);
Aber a ist gleich Null, während b korrekt gedruckt wird
Ich sehe keine Null, Sie haben irgendwo einen Fehler gemacht