Questions des débutants MQL5 MT5 MetaTrader 5 - page 1387

 
Je suis Atamurat Abdukayimov, l'année dernière lorsque j'ai installé l'application mt5 j'ai reçu un appel du numéro +998339667671 vers mon ancien numéro +998975221951 qui est maintenant supprimé, puis-je communiquer avec elle ?
 

Après-midi.

Je suis en train de refaire 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);
  }
//+------------------------------------------------------------------+

Ajout d'une variable symbole :

Symbol1

Changer

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

Le résultat est une erreur dans le journal : Toutes les données de ExtFastMaHandle ne sont pas calculées (20057 barres). Erreur 4806

Et ça ne rend pas l'indicateur. J'ai essayé de supprimer le check et le return(0) du code :

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

J'entre dans mes registres :

Obtenir une EMA rapide est un échec ! Erreur 4807

Est-ce à cause du nombre différent de barres sur le graphique avec l'indicateur joint et le graphique d'où l'ima obtient les données ?

Comment modifier le code de manière optimale, le MACD est calculé pour le symbole sélectionné, et non pour le symbole auquel il est attaché au graphique ?

 
Sergey #:

Après-midi.

Je suis en train de refaire un MACD standard :

Ajout d'une variable symbole :

Changer

A :

Le résultat est une erreur dans le journal : Toutes les données de ExtFastMaHandle ne sont pas calculées (20057 barres). Erreur 4806

Et ça ne rend pas l'indicateur. J'ai essayé de supprimer le check et le return(0) du code :

и

J'entre dans mes registres :

Obtenir une EMA rapide est un échec ! Erreur 4807

Est-ce à cause du nombre différent de barres sur le graphique avec l'indicateur joint et le graphique dont l'ima obtient les données ?

Comment modifier le code de la MACD pour qu'elle calcule la MACD pour le symbole sélectionné, et non pour le symbole auquel elle est attachée au graphique ?

Utiliser l'exemple d'aide : iMACD

 
Vladimir Karputov #:

Utilisez l'exemple de référence : iMACD

Merci !

 

Bonjour à tous !

J'ai ouvert un compte avec FXCM, MT5 n'a pas de symboles pour les paires de devises et pas de graphiques, le lien https://www.metatrader5.com/ru/news/1372 dit que MT5 est personnalisé avec les cotations de FXCM

. Pouvez-vous me dire où chercher ou quel courtier utilise les cotations de FXCM ?


Si je veux trader avec FXCM, je dois télécharger la brochure et la faire comme ici.



Merci d'avance pour la réponse...

 

Comment obtenir le code de la fonction WinAPI 'GetLastError' ? Je veux supprimer un fichier inexistant avec la fonction WinAPI DeleteFileW.

Selon l'aidede DeleteFileW, si

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

Description du code "ERROR_FILE_NOT_FOUND".

ERREUR_FICHIER_NON_TROUVÉ

2 (0x2)

Le système ne trouve pas le fichier spécifié.


En d'autres termes, je devrais obtenir un '2' lorsque j'essaie de supprimer un fichier qui n'existe pas, mais j'obtiens un '0'.


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

Résultat de l'exécution :

DeleteFile failed (0)
Dossiers :
 
Bonjour conseiller a été pris dans les astuces des fraudeurs passé l'enregistrement à leur direction sur MT5 sur moi un compte a été enregistré à *** déposé l'argent, a donné un peu de gains maintenant ne peut pas retirer, le site du courtier, je n'ai pas passé l'enregistrement, mais a écrit une lettre à l'appui, que dois-je faire, comment retirer leur argent s'il vous plaît conseiller.
 
val511 #:
Bonjour, conseillez-moi, je suis tombé dans le piège des escrocs. Je me suis inscrit à MT5 comme ils l'ont demandé, mais j'ai enregistré le compte à ***, j'ai gagné de l'argent, et maintenant je ne peux pas retirer l'argent. Je ne me suis pas inscrit sur le site du courtier, mais j'ai envoyé un e-mail au support, que dois-je faire, comment retirer mon argent s'il vous plaît conseillez-moi.

MQL5.com n'a rien à voir avec les courtiers. Le support de MQL5.com ne peut vous répondre que si vous avez déposé de l'argent sur votre compte MQL5(val511) ici sur le site.

 
Je vois, peut-être pouvez-vous me donner des conseils. J'apprécierais vraiment.
 
val511 #:
Je vois, si vous pouvez me donner des conseils pour moi, je vous en serais très reconnaissant.

Faites une déclaration à la police.