Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1387

 
Sono Atamurat Abdukayimov, l'anno scorso quando ho installato l'app Mt5 ho ricevuto una chiamata dal numero +998339667671 al mio vecchio numero +998975221951 che ora non è più attivo, posso comunicare con lei?
 

Pomeriggio.

Sto rifacendo un MACD standard:

//+------------------------------------------------------------------+
//|                                                         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);
  }
//+------------------------------------------------------------------+

Aggiungere una variabile simbolo:

Symbol1

Cambiare

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

A:

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

Il risultato è un errore nel log: Non tutti i dati di ExtFastMaHandle sono calcolati (20057 barre). Errore 4806

E non renderà l'indicatore. Ho provato a rimuovere il controllo e return(0) dal codice:

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

Entro nei miei registri:

Ottenere l'EMA veloce è fallito! Errore 4807

È a causa del diverso numero di barre sul grafico con l'indicatore allegato e il grafico da cui ima prende i dati?

Come cambiare il codice in modo ottimale, il MACD è calcolato per il simbolo selezionato, non per il simbolo a cui è collegato al grafico?

 
Sergey #:

Pomeriggio.

Sto rifacendo un MACD standard:

Aggiungere una variabile simbolo:

Cambiare

A:

Il risultato è un errore nel log: Non tutti i dati di ExtFastMaHandle sono calcolati (20057 barre). Errore 4806

E non renderà l'indicatore. Ho provato a rimuovere il controllo e return(0) dal codice:

и

Entro nei miei registri:

Ottenere l'EMA veloce è fallito! Errore 4807

È a causa del diverso numero di barre sul grafico con l'indicatore allegato e il grafico da cui ima prende i dati?

Come cambiare il codice del MACD per calcolare il MACD per il simbolo selezionato e non per il simbolo a cui è collegato al grafico?

Utilizzare l'esempio di aiuto: iMACD

 
Vladimir Karputov #:

Utilizzare l'esempio di riferimento: iMACD

Grazie!

 

Ciao a tutti!

Ho aperto un conto con FXCM, MT5 non ha simboli per le coppie di valute e nessun grafico, il link https://www.metatrader5.com/ru/news/1372 dice che MT5 è personalizzato con le quotazioni di FXCM

. Potete dirmi dove guardare o quale broker usa le quotazioni di FXCM?


Se voglio fare trading con FXCM dovrei scaricare la brochure e farla come qui.



Grazie in anticipo per la risposta...

 

Come ottenere il codice dalla funzione WinAPI 'GetLastError'? Voglio cancellare un file inesistente con la funzione WinAPI DeleteFileW.

Secondo l'aiuto diDeleteFileW, se

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

Descrizione del codice 'ERROR_FILE_NOT_FOUND

ERRORE_FILE_NON_TROVATO

2 (0x2)

Il sistema non riesce a trovare il file specificato.


Cioè, dovrei ottenere un '2' quando cerco di cancellare un file che non esiste - ma ottengo uno '0'.


Il mio codice di script:

//+------------------------------------------------------------------+
//|                                                   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);
  }
//+------------------------------------------------------------------+

Risultato dell'esecuzione:

DeleteFile failed (0)
File:
 
Buon pomeriggio consiglio è stato preso nei trucchi di truffatori passato la registrazione presso la loro direzione su MT5 su di me un conto è stato registrato a *** depositato i soldi, ha dato un po 'di guadagno ora non può ritirare, il sito del broker non ho passato la registrazione, ma ha scritto una lettera al supporto, cosa devo fare, come ritirare i loro soldi consigliare per favore
 
val511 #:
Salve, consigliatemi, sono caduto nei trucchi dei truffatori. mi sono registrato a MT5 come hanno detto, ma ho registrato il conto a ***, ho fatto dei soldi, e ora non posso ritirare i soldi. non mi sono registrato al sito del broker, ma ho mandato una mail al supporto, cosa devo fare, come ritirare i miei soldi per favore consigliatemi

MQL5.com non ha nulla a che fare con nessun broker. Il supporto di MQL5.com può rispondere solo se avete depositato denaro sul vostro conto MQL5(val511) qui sul sito.

 
Capisco, forse potete darmi qualche consiglio, lo apprezzerei molto.
 
val511 #:
Capisco, forse potete darmi qualche consiglio, lo apprezzerei molto.

Scrivere una dichiarazione alla polizia.

Motivazione: