Hilfe zum Upgrade auf MetaTrader 5 ohne Verlust - Seite 12

 
vdv2001:

Ein bisschen Farbe auf Murrays Ebenen

Ich habe diesen Indikator heruntergeladen. Beim Kompilieren ist in Zeile 228 ein Fehler aufgetreten, den ich nicht zeichnen konnte, also nehmen Sie mich bitte beim Wort. Ich möchte den Indikator verwenden, den ich auf MT5 verwende, deshalb bin ich hier, ich konnte es nicht selbst tun. Vielleicht können Sie es für mich umschreiben. Ich kann es nicht selbst schreiben. Danke.
Dateien:
 

Guten Tag. Kluge Köpfe müssen wirklich den Korrelationsindikator in MT5 übersetzen

Dateien:
iCorel_v3.mq4  11 kb
 
Es ist auch eine gute und nützliche Sache. Das ist gut für alle.
Dateien:
 
Warum sind die Grenzen nicht gezogen?


#property indicator_chart_window
#Eigenschaft indicator_buffers 2
#property indicator_plots 2
#property indicator_color1 clrDeepSkyBlue
#property indicator_color2 clrDeepSkyBlue
#property indicator_chart_window
double UpBuffer[];
double DnBuffer[];
int OnInit()
{
SetIndexPuffer(0,UpPuffer);
SetIndexPuffer(1,DnPuffer);
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE); PlotIndexSetInteger(0,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3); PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE); PlotIndexSetInteger(1,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3);PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE);
zurück(0);
}
//+------------------------------------------------------------------+
//| Benutzerdefinierte Indikator-Iterationsfunktion |
//+------------------------------------------------------------------+
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[])
{ int i;
for(i=1000;i>0;i--)
{ UpBuffer[i]=1,428; DnBuffer[i]=1,41;
}
zurück(0);
}
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
fellow:
Warum sind die Grenzen nicht gezogen?



Es sollte in etwa so aussehen, und ob Sie es glauben oder nicht, es funktioniert.

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_color1 clrDeepSkyBlue
#property indicator_color2 clrDeepSkyBlue

double UpBuffer[];
double DnBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,UpBuffer);
   SetIndexBuffer(1,DnBuffer);

   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3);

   PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE);
   PlotIndexSetInteger(1,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3);

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   for(int i=rates_total-1000;i<rates_total;i++)
     {
      UpBuffer[i]=1.428;
      DnBuffer[i]=1.41;
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
voinG:
Ich habe diesen Indikator heruntergeladen. Beim Kompilieren gab es einen Fehler in Zeile 228, ich konnte kein Bild machen, also nehmen Sie mich bitte beim Wort. Ich möchte den Indikator verwenden, den ich auf MT5 verwende, deshalb bin ich hier, ich konnte es nicht selbst tun. Vielleicht können Sie es für mich umschreiben. Ich danke Ihnen.
Ist die Aktion "Alles speichern" abgeschlossen? Alles, was Sie mir sagen können.
 

Bitte um Hilfe.

Ich habe versucht, WATL neu zu schreiben, was mir fast gelungen wäre. Die Linien werden nicht korrekt gezeichnet, weil die LWMA-Berechnung nicht stimmt. Und das Wichtigste ist, dass die Grafik manchmal solche Überraschungen bereithält:

Überraschung

Eine Linie von Punkten ist manchmal identisch mit den Punkten, auf denen die WATL berechnet wird.

Oder ich drehe das Diagramm, und die Punkte überschneiden sich auf dem benachbarten Balken.

Vielen Dank im Voraus für jede Hilfe =)

Dateien:
WATL.mq5  41 kb
 

Vielleicht hat jemand diesen Indikator in MQL5-Transformationen gesehen? http://www.kimiv.ru/index.php?option=com_remository&amp;Itemid=13&func=fileinfo&id=67

Автоматизация торговли на финансовых рынках - Скачать i-Spread3.rar
  • www.kimiv.ru
Оглавление файлового архива  Разработки на MQL4 Индикаторы   Очень хорошую доработку индикатора i-Spread предложил пользователь pavik. Суть доработки в добавлении отображения минимальных значений спрэда за последние час, четыре часа и сутки. А также...
 
Hilfe bei der Konvertierung in mq5. Ohne sie ist es, als hätte man keine Hände!
 

Hallo,

Ich konnte nicht tun, was ich wollte.

Ich habe einen anderen Maulwurfspuffer im Kopf, ich habe ein anderes Paar, als das, das ich im Kopf hatte.

[code]
#property indicator_separate_window
#Eigenschaft indicator_buffers 6
#property indicator_plots 2
#property indicator_type1 DRAW_COLOR_LINE
#property indicator_type2 DRAW_COLOR_LINE
#Eigenschaft indicator_color1 clrBlue
#Eigenschaft indicator_color2 clrRed
#property indicator_style1 STYLE_SOLID
#property indicator_style2 STYLE_SOLID

Eingabe int Periode_1 = 20;
Eingabe int period_2 = 100;
input ENUM_MA_METHOD ma_method = MODE_SMA;
input ENUM_APPLIED_PRICE applied_price = PRICE_CLOSE;

double ExtMapBuffer1[];
double ExtMapBuffer2[];
int EMHandle1=0;
int EMHandle2=0;
int EMHandle11=0;
int EMHandle22=0;
MqlParam params[]; // Struktur zum Speichern von Indikatorparametern
double ma1[],ma2[],ma3[],ma4[];//zeitliche Puffer

int OnInit()
{
//--- Zuordnung von Indikatorpuffern
SetIndexPuffer(0, ExtMapPuffer1, INDICATOR_DATA);
SetIndexPuffer(1, ExtMapPuffer2, INDICATOR_DATA);
SetIndexBuffer(2, ma1, INDICATOR_DATA);
SetIndexBuffer(3, ma2, INDICATOR_DATA);
SetIndexBuffer(4, ma3, INDICATOR_DATA);
SetIndexBuffer(5, ma4, INDICATOR_DATA);

PlotIndexSetInteger(0, PLOT_SHIFT, 0);
PlotIndexSetInteger(1, PLOT_SHIFT, 0);

PlotIndexSetInteger(0,PLOT_LINE_STYLE,STYLE_SOLID);
PlotIndexSetInteger(1,PLOT_LINE_STYLE,STYLE_SOLID);
//---
PlotIndexSetInteger(0,PLOT_LINE_COLOR,clrBlue);
PlotIndexSetInteger(1,PLOT_LINE_COLOR,clrRed);

PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE);
IndicatorSetString(INDICATOR_SHORTNAME, "2_2_MA");
//--- Genauigkeit einstellen
IndicatorSetInteger(INDICATOR_DIGITS,4);
//---
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=period_1;
// Offset
params[1].type =TYPE_INT;
params[1].integer_value=0;
// Berechnungsmethode: einfache Mittelwertbildung
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
// Art der Preise für die Berechnung: Schlusskurse
params[3].type =TYPE_INT;
params[3].integer_value=PRICE_CLOSE;

EMHandle1 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params;)
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=period_2;
params[1].type =TYPE_INT;
params[1].integer_value=0;
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
params[3].type =TYPE_INT;
params[3].integer_value=PRICE_CLOSE;

EMHandle2 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params;)
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=period_1;
params[1].type =TYPE_INT;
params[1].integer_value=0;
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
params[3].type =TYPE_INT;
params[3].integer_value=PRICE_CLOSE;

EMHandle11 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params;)
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=period_2;
params[1].type =TYPE_INT;
params[1].integer_value=0;
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
params[3].type =TYPE_INT;
params[3].integer_value=PRICE_CLOSE;

EMHandle22 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params;)

zurück(0);
}
int OnCalculate (const int rates_total,// Größe des Arrays price[];
const int prev_calculated,// Anzahl der verfügbaren Balken ;beim vorherigen Aufruf;
const int begin,// mit welchem Index in der Preis[]-Anordnung die gültigen Daten beginnen sollen;
const double &price[]) // Array, auf dem der Indikator berechnet wird;
{
int i;
ArraySetAsSeries(ma1, true);
ArraySetAsSeries(ma2, true);
ArraySetAsSeries(ma3, true);
ArraySetAsSeries(ma4, true);

if(CopyBuffer(EMHandle1, 0, 0, 1, ma1) < 0){Print("CopyBuffer ma1 error =", GetLastError());}
if(CopyBuffer(EMHandle2, 0, 0, 1, ma2) < 0){Print("CopyBuffer ma2 error =", GetLastError());}
if(CopyBuffer(EMHandle11, 0, 0, 1, ma3) < 0){Print("CopyBuffer ma3 error =", GetLastError());}
if(CopyBuffer(EMHandle22, 0, 0, 0, 1, ma4) < 0){Print("CopyBuffer ma4 error =", GetLastError());}
int-Grenze;
//if(vorher_berechnet<1)
//limit=period_1;
limit=prev_calculated-1;
for( i=0; i<limit; i++)
ExtMapBuffer1[0]=Berechnet;
ExtMapBuffer2[0]=Berechnen;

Kommentar(
"\n=====================",
"\n ma1[0] : ",DoubleToString(ma1[0],5),
"\n ma2[0] : ",DoubleToString(ma2[0],5),
"\n ma3[0] : ",DoubleToString(ma3[0],5),
"\n ma4[0] : ",DoubleToString(ma4[0],5),
"\n ExtMapBuffer1[0] : ",DoubleToString(ExtMapBuffer1[0],4),
"\n ExtMapBuffer2[0] : ",DoubleToString(ExtMapBuffer2[0],4)
);
return(rates_total);
}
void OnDeinit(const int reason)
{
Kommentar(");
}
[/code]

Wenn 0 anstelle von i (für einen Balken) sehe ich das Ergebnis, wenn der Balken (Strom = i) zeigt, dass ich keine Daten für das zweite Paar finden kann.

Der Chart des Paares ist offen, im Marktfenster weiß ich nicht, wo ich etwas verwechsle.

Zwei verschiedene Paare in einem Indikator - wo liegt also mein Fehler?

Ich versuche, 0 einzugeben und sehe das Ergebnis als Kommentar, aber ich habe keine Zeile erhalten.

Zur Klarstellung: Ich habe ma1 und ma2 auf ein Paar und ma3 und ma4 auf das andere Paar gelegt.

Ich danke Ihnen.