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

 
Ich bin Atamurat Abdukayimov. Letztes Jahr, als ich die Mt5-App installiert habe, erhielt ich einen Anruf von der Nummer +998339667671 auf meine alte Nummer +998975221951, die jetzt nicht mehr vergeben ist.
 

Guten Tag.

Ich bin dabei, einen Standard-MACD neu zu erstellen:

//+------------------------------------------------------------------+
//|                                                         MACD.mq5 |
//|                   Copyright 2009-2020, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright   "2009-2020, MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
#property description "Moving Average Convergence/Divergence"
#include <MovingAverages.mqh>
//--- indicator settings
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots   2
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_type2   DRAW_LINE
#property indicator_color1  Silver
#property indicator_color2  Red
#property indicator_width1  2
#property indicator_width2  1
#property indicator_label1  "MACD"
#property indicator_label2  "Signal"
//--- input parameters
input int                InpFastEMA=12;               // Fast EMA period
input int                InpSlowEMA=26;               // Slow EMA period
input int                InpSignalSMA=9;              // Signal SMA period
input ENUM_APPLIED_PRICE InpAppliedPrice=PRICE_CLOSE; // Applied price
//--- indicator buffers
double ExtMacdBuffer[];
double ExtSignalBuffer[];
double ExtFastMaBuffer[];
double ExtSlowMaBuffer[];

int    ExtFastMaHandle;
int    ExtSlowMaHandle;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,ExtMacdBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtSignalBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,ExtFastMaBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(3,ExtSlowMaBuffer,INDICATOR_CALCULATIONS);
//--- sets first bar from what index will be drawn
   PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,InpSignalSMA-1);
//--- name for indicator subwindow label
   string short_name=StringFormat("MACD(%d,%d,%d)",InpFastEMA,InpSlowEMA,InpSignalSMA);
   IndicatorSetString(INDICATOR_SHORTNAME,short_name);
//--- get MA handles
   ExtFastMaHandle=iMA(NULL,0,InpFastEMA,0,MODE_EMA,InpAppliedPrice);
   ExtSlowMaHandle=iMA(NULL,0,InpSlowEMA,0,MODE_EMA,InpAppliedPrice);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
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<InpSignalSMA)
      return(0);
//--- not all data may be calculated
   int calculated=BarsCalculated(ExtFastMaHandle);
   if(calculated<rates_total)
     {
      Print("Not all data of ExtFastMaHandle is calculated (",calculated," bars). Error ",GetLastError());
      return(0);
     }
   calculated=BarsCalculated(ExtSlowMaHandle);
   if(calculated<rates_total)
     {
      Print("Not all data of ExtSlowMaHandle is calculated (",calculated," bars). Error ",GetLastError());
      return(0);
     }
//--- we can copy not all data
   int to_copy;
   if(prev_calculated>rates_total || prev_calculated<0)
      to_copy=rates_total;
   else
     {
      to_copy=rates_total-prev_calculated;
      if(prev_calculated>0)
         to_copy++;
     }
//--- get Fast EMA buffer
   if(IsStopped()) // checking for stop flag
      return(0);
   if(CopyBuffer(ExtFastMaHandle,0,0,to_copy,ExtFastMaBuffer)<=0)
     {
      Print("Getting fast EMA is failed! Error ",GetLastError());
      return(0);
     }
//--- get SlowSMA buffer
   if(IsStopped()) // checking for stop flag
      return(0);
   if(CopyBuffer(ExtSlowMaHandle,0,0,to_copy,ExtSlowMaBuffer)<=0)
     {
      Print("Getting slow SMA is failed! Error ",GetLastError());
      return(0);
     }
//---
   int start;
   if(prev_calculated==0)
      start=0;
   else
      start=prev_calculated-1;
//--- calculate MACD
   for(int i=start; i<rates_total && !IsStopped(); i++)
      ExtMacdBuffer[i]=ExtFastMaBuffer[i]-ExtSlowMaBuffer[i];
//--- calculate Signal
   SimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);
//--- OnCalculate done. Return new prev_calculated.
   return(rates_total);
  }
//+------------------------------------------------------------------+

Hinzufügen einer Symbolvariable:

Symbol1

Ändern von

   ExtFastMaHandle=iMA(NULL,0,InpFastEMA,0,MODE_EMA,InpAppliedPrice);
   ExtSlowMaHandle=iMA(NULL,0,InpSlowEMA,0,MODE_EMA,InpAppliedPrice);

An:

   ExtFastMaHandle=iMA(Symbol1,0,InpFastEMA,0,MODE_EMA,InpAppliedPrice);
   ExtSlowMaHandle=iMA(Symbol1,0,InpSlowEMA,0,MODE_EMA,InpAppliedPrice);

Das Ergebnis ist ein Fehler im Protokoll: Nicht alle Daten von ExtFastMaHandle werden berechnet (20057 Balken). Fehler 4806

Und es wird keinen Indikator darstellen. Ich habe versucht, check und return(0) aus dem Code zu entfernen:

   if(calculated<rates_total)
     {
      Print("Not all data of ExtFastMaHandle is calculated (",calculated," bars). Error ",GetLastError());
      return(0);
     }

и

   if(calculated<rates_total)
     {
      Print("Not all data of ExtSlowMaHandle is calculated (",calculated," bars). Error ",GetLastError());
      return(0);
     }

Ich komme in meine Protokolle:

Die schnelle EMA ist gescheitert! Fehler 4807

Liegt es an der unterschiedlichen Anzahl von Balken im Diagramm mit dem angehängten Indikator und dem Diagramm, aus dem ima die Daten bezieht?

Wie kann man den Code optimal ändern, damit der MACD für das ausgewählte Symbol berechnet wird und nicht für das Symbol, an das er im Chart angehängt ist?

 
Sergey #:

Nachmittags.

Ich bin dabei, einen Standard-MACD neu zu erstellen:

Hinzufügen einer Symbolvariable:

Ändern von

An:

Das Ergebnis ist ein Fehler im Protokoll: Nicht alle Daten von ExtFastMaHandle werden berechnet (20057 Balken). Fehler 4806

Und es wird keinen Indikator darstellen. Ich habe versucht, check und return(0) aus dem Code zu entfernen:

и

Ich komme in meine Protokolle:

Die schnelle EMA ist gescheitert! Fehler 4807

Liegt es an der unterschiedlichen Anzahl von Balken im Diagramm mit dem angehängten Indikator und dem Diagramm, aus dem ima die Daten bezieht?

Wie kann man den Code für den MACD so ändern, dass der MACD für das ausgewählte Symbol berechnet wird und nicht für das Symbol, an das er im Diagramm angehängt ist?

Hilfe verwenden Beispiel: iMACD

 
Vladimir Karputov #:

Verwenden Sie das Referenzbeispiel: iMACD

Ich danke Ihnen!

 

Hallo an alle!

Ich habe ein Konto bei FXCM eröffnet, MT5 hat keine Symbole für Währungspaare und keine Charts, der Link https://www.metatrader5.com/ru/news/1372 sagt, dass MT5 mit FXCM-Kursen angepasst ist

. Können Sie mir sagen, wo ich anfangen soll oder mir sagen, welcher Broker FXCM-Kurse verwendet?


Wenn ich mit FXCM handeln möchte, sollte ich die Broschüre herunterladen und sie wie hier machen.



Vielen Dank im Voraus für die Antwort...

 

Wie erhält man den Code der WinAPI-Funktion 'GetLastError'? Ich möchte eine nicht existierende Datei mit der WinAPI-Funktion DeleteFileW löschen.

Laut derDeleteFileW-Hilfe, wenn

... приложение пытается удалить несуществующий файл, функция DeleteFile завершается с ошибкой ERROR_FILE_NOT_FOUND. Если файл доступен только для чтения, функция завершается с ошибкой ERROR_ACCESS_DENIED

Codebeschreibung 'ERROR_FILE_NOT_FOUND

FEHLER_DATEI_NICHT_GEFUNDEN

2 (0x2)

Das System kann die angegebene Datei nicht finden.


Das heißt, ich sollte eine "2" erhalten, wenn ich versuche, eine Datei zu löschen, die nicht existiert - aber ich erhalte eine "0".


Mein Skript-Code:

//+------------------------------------------------------------------+
//|                                                   DeleteFile.mq5 |
//|                              Copyright © 2022, Vladimir Karputov |
//|                      https://www.mql5.com/en/users/barabashkakvn |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2022, Vladimir Karputov"
#property link      "https://www.mql5.com/en/users/barabashkakvn"
#property version   "1.00"
#property script_show_inputs
#include <WinAPI\errhandlingapi.mqh>
#include <WinAPI\fileapi.mqh>
//--- input parameters
input string   InpFileName="C:\\123.txt";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   ResetLastError();
   int result=DeleteFileW(InpFileName);
   uint res=GetLastError();
   if(result==0)
      PrintFormat("DeleteFile failed (%d)",res);
   else
      PrintFormat("DeleteFile OK (%d)",res);
  }
//+------------------------------------------------------------------+

Ergebnis der Ausführung:

DeleteFile failed (0)
Dateien:
 
Guten Tag beraten wurde in die Tricks von Betrügern gefangen übergeben Registrierung auf ihre Richtung auf MT5 auf mich ein Konto registriert war *** hinterlegt das Geld, gab ein wenig verdienen jetzt nicht zurückziehen können, die Website des Brokers habe ich nicht passieren Registrierung, sondern schrieb einen Brief an die Unterstützung, was kann ich tun, wie ihr Geld zurückziehen beraten bitte
 
val511 #:
Hallo, beraten Sie mich, ich habe für die Tricks der Betrüger gefallen. Ich habe bei MT5 registriert, wie sie angewiesen, aber ich habe das Konto bei *** registriert, ich habe etwas Geld gemacht, und jetzt kann ich nicht das Geld abheben. Ich habe nicht auf der Broker-Website registriert, aber ich habe eine E-Mail an den Support geschickt, was soll ich tun, wie ich mein Geld abheben bitte beraten Sie mich

MQL5.com hat nichts mit irgendwelchen Brokern zu tun. Der MQL5.com-Support kann nur antworten, wenn Sie Geld auf Ihr MQL5-Konto(val511) hier auf der Website eingezahlt haben.

 
Verstehe, vielleicht können Sie mir einen Rat geben, ich wäre Ihnen sehr dankbar.
 
val511 #:
Ich verstehe, wenn Sie mir einen Rat geben können, wäre ich Ihnen sehr dankbar.

Schreiben Sie eine Erklärung bei der Polizei.

Grund der Beschwerde: