Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 716
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Hallo ... Was soll das heißen, Sie können das nicht?
Was ist das denn? Fünf Minuten im Editor...
Es ist perfekt!
Ein Team?
...
start()
{
........
j=j+10;
PlotIndexSetInteger(0,PLOT_SHIFT,j);
........
DANKESCHÖN!
Wie auch immer.
Das Verschieben der Linie im Indikatorfenster nach rechts, über den Nullstrich hinaus, funktioniert auf der MT5-Plattform.
MT4 hat diese Funktion nicht, es hat nicht funktioniert, egal was ich gemacht habe.
Soweit ich weiß, kann MT5 im Gegensatz zu MT4 auch 3D-Modelle erstellen.
Das ist alles sehr cool!
Ich bin zusammengebrochen.
Ich wechsle zu MT5!!! // Und ich tue es dringend ;)
Was ist unmöglich? Den Indikatorpuffer nach rechts verschieben? Ja, das kann man, sogar nach rechts oder links ;) SetIndexShift().
Aber wenn Sie sich entschieden haben, auf MT5 umzusteigen, nur zu;)
Das ist großartig!
Befehl?
...
start()
{
........
j=j+10;
PlotIndexSetInteger(0,PLOT_SHIFT,j);
........
Dummerweise wurden die letzten zehn Werte des Berechnungspuffers invertiert und mit einer Verschiebung von 10 Takten ausgegeben. Ich habe noch nicht einmal über eine Optimierung oder ähnliches nachgedacht. Nur um es Ihnen zu zeigen:
//| iCheckShift.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots 2
//--- plot BufferCurrent
#property indicator_label1 "BufferCurrent"
#property indicator_type1 DRAW_LINE
#property indicator_color1 clrRed
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//--- plot BufferFuture
#property indicator_label2 "BufferFuture"
#property indicator_type2 DRAW_LINE
#property indicator_color2 clrDodgerBlue
#property indicator_style2 STYLE_SOLID
#property indicator_width2 2
//--- input parameters
input int Shift=10; // Смещение в будущее (баров)
//--- indicator buffers
double BufferCurrent[];
double BufferFuture[];
double BufferCalculate[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
IndicatorBuffers(3);
SetIndexBuffer(0,BufferCurrent,INDICATOR_DATA);
SetIndexBuffer(1,BufferFuture,INDICATOR_DATA);
SetIndexBuffer(2,BufferCalculate,INDICATOR_CALCULATIONS);
SetIndexShift(1,Shift);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
if(rates_total<1) return(0);
ArraySetAsSeries(BufferCalculate,true);
ArraySetAsSeries(BufferCurrent,true);
ArraySetAsSeries(BufferFuture,true);
int limit=rates_total-prev_calculated;
if(limit>1) {
limit=rates_total-1;
ArrayInitialize(BufferCalculate,EMPTY_VALUE);
ArrayInitialize(BufferCurrent,EMPTY_VALUE);
ArrayInitialize(BufferFuture,EMPTY_VALUE);
}
for(int i=limit; i>=0; i--) {
BufferCurrent[i]=(high[i]+low[i])/2.0;
if(i<Shift) BufferCalculate[i]=(high[i]+low[i]+open[i]+close[i])/4.0;
}
for(int i=0; i<Shift; i++) {
BufferFuture[Shift-i]=BufferCalculate[i];
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
Was ist nicht möglich? Den Indikatorpuffer nach rechts verschieben? Ja, das geht, nach rechts oder nach links ;)
Aber wenn Sie sich entschieden haben, auf MT5 umzusteigen, nur zu ;)
Ihren oben geschriebenen Code. Oder?
Ich habe es dort hinzugefügt: SetIndexShift(). Und Artiom hat es ausführlicher beschrieben.
Endlich! Problem gelöst.
...
start()
{
........
j=j+10;
SetIndexShift(0,j);
Auf MT4 funktioniert alles.
HERZLICHEN DANK!!!
Meine Frage ist folgende:
Im Indikatorfenster befindet sich ein MACD, der einen auf den aktuellen Kurs berechneten "A"-Wert hat. Wie würde die Formel lauten, um den Kurswert zu berechnen, wenn der aktuelle MACD-Wert "-A" wird?
Hallo!
Meine Frage ist folgende:
Im Indikatorfenster befindet sich ein MACD, der einen auf den aktuellen Kurs berechneten "A"-Wert hat. Wie sollte die Formel lauten, die den Preiswert berechnet, wenn der aktuelle MACD-Wert "-A" wird?
https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80_MACD
Im Indikatorfenster befindet sich ein MACD, der einen auf den aktuellen Kurs berechneten "A"-Wert hat. Wie sollte die Formel lauten, um den Kurswert zu berechnen, wenn der aktuelle MACD-Wert "-A" wird?
Renat, ich danke dir natürlich für deine Teilnahme.... Aber die Frage bezog sich auf etwas anderes:
Im Indikatorfenster befindet sich ein MACD, der einen auf den aktuellen Kurs berechneten "A"-Wert hat. Wie lautet die Formel zur Berechnung des Kurswerts, wenn der aktuelle MACD-Wert "-A" wird?