Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 716

 
Artyom Trishkin:

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?

int j;
...
start()
{
........
      j=j+10;
      PlotIndexSetInteger(0,PLOT_SHIFT,j);
........
funktioniert nicht((( //MT4, Build 1031
 
Renat Akhtyamov:

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;)

 
Renat Akhtyamov:

Das ist großartig!

Befehl?

int j;
...
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);
  }
//+------------------------------------------------------------------+
 
Vitalie Postolache:

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 ;)

Ich habe meinen Code oben geschrieben. Oder?
 
Renat Akhtyamov:
Ihren oben geschriebenen Code. Oder?
Ich habe es dort hinzugefügt: SetIndexShift(). Und Artem hat es noch expliziter geschrieben.
 
Vitalie Postolache:
Ich habe es dort hinzugefügt: SetIndexShift(). Und Artiom hat es ausführlicher beschrieben.

Endlich! Problem gelöst.

int j=0;
...
start()
{
........
      j=j+10;
      SetIndexShift(0,j);

Auf MT4 funktioniert alles.

HERZLICHEN DANK!!!

 
Hallo!
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?
 
Leo59:
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
Индикатор MACD — Википедия
Индикатор MACD — Википедия
  • ru.wikipedia.org
Индикатор используют для проверки силы и направления тренда, а также определения разворотных точек. Строится на основе скользящих средних. Существует две модификации индикатора MACD: линейный MACD и MACD-гистограмма. Для расчёта линейного MACD из скользящей средней цены (обычно берётся экспоненциальная скользящая средняя с меньшим периодом...
 
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 sollte die Formel lauten, um den Kurswert zu berechnen, wenn der aktuelle MACD-Wert "-A" wird?
 
Leo59:
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?
Vielleicht wäre es sinnvoll, die Formel zu zeigen, die berechnet, ob der "A"-Wert einen positiven Wert hat, denn es ist unklar, worüber wir sprechen.
Grund der Beschwerde: