Erreurs, bugs, questions - page 3154

 
Wizard #:

Je souhaite créer une liste déroulante de paires de devises et d'instruments (paires propres) dans la fenêtre des paramètres d'entrée de l'EA. Comment cela peut-il être fait ?

//+------------------------------------------------------------------+
//|                                                    InputList.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

//------------------------------------
enum ENUM_SYMBOL 
{
   EURUSD, 
   GBPUSD, 
   JPYUSD
};

//------------------------------------
input ENUM_SYMBOL EnumSymbol = EURUSD;  //Выбери символ

//------------------------------------
void OpenChart(ENUM_SYMBOL symbol) 
{
   switch(symbol)
   {
      case EURUSD: ChartSetSymbolPeriod(0, "EURUSD", PERIOD_CURRENT); break;
      case GBPUSD: ChartSetSymbolPeriod(0, "GBPUSD", PERIOD_CURRENT); break;
      case JPYUSD: ChartSetSymbolPeriod(0, "JPYUSD", PERIOD_CURRENT); break;   
      default: return;
   }
}

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
   OpenChart(EnumSymbol);

   //ChartSetSymbolPeriod() выполняется асинхронно
   //Поэтому тут придумываем ожидание, на прогрузку истории
   //Sleep() тут просто для примера
   Sleep(5000);

   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{

}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{

}
N° de magicien :

Comment serait-il correct d'écrire...

double stop = NormalizeDouble(SymbolInfoDouble(_Symbol, SYMBOL_ASK) - 100*_Point, _Digits);
 
Vitaly Muzichenko #:

Ne l'utilisez que lorsque vous en avez besoin, pas à chaque fois que vous éternuez.

Eh bien, merci pour le conseil.

 
Roman #:

Merci du fond du cœur ! C'est utile de ne pas avoir à entrer le nom de l'instrument à chaque fois). Donc, enum, switch et case devraient tous être là, tous ensemble.

 

Camarades modérateurs, veuillez déplacer ces messages dans la section "Questions de débutants".

C'est la section consacrée aux bugs, aux anomalies et à leurs solutions.

 
Bonjour, j'ai des problèmes de connexion, après avoir démarré le terminal mt5 la connexion est déconnectée en une vingtaine d'essais. cela arrive après s'être reconnecté à internet, le broker dit que tout est ok.
 

Existe-t-il un moyen de savoir quelle est la dernière version de .NET prise en charge par MetaEditor (importation de DLL C#) ?

Quels sont les plans pour le mettre à jour ?

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Comment signaler une erreur dans MT5 ?

bot, 2022.02.09 12:54

J'aimerais connaître la procédure générale pour signaler une erreur dans MT5.


J'ai créé une DLL C# en dotnet6.0. MetaEditor peut trouver les fonctions DLL et le code se compile bien, mais MT5 ne trouve pas les fonctions nécessaires dans la DLL.

Notez que ce problème ne se produit pas avec une très ancienne version de la DLL C#.

Comment puis-je signaler ce problème au support MT5 ?

Merci


 

MetaQuotes.


 


Pouvez-vous me dire ce que Metatrader peut lire d'autre au lieu de csv ?

//+------------------------------------------------------------------+
//|                                                          WST.mq5 |
//|                           Copyright © 2009, WallStreetTrader Pro |
//|                                 https://wallstreettraderpro.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, WST"
#property link      "https://wallstreettraderpro.com/"
#include <stdlib.mqh>
#property indicator_separate_window
#property indicator_buffers 8
//---- input parameters
extern string    файл_данных1=".csv";
extern string    подпись1="";
extern color     цвет1=Red;
extern string    файл_данных2=".csv";
extern string    формат_даты="dd.mm.yyyy";
extern string    разделитель_записей=";";
extern string    разделитель_целой_и_дробной=",";

//---- buffers
double FA1[];
double FA2[];
double FA3[];
double FA4[];
double FA5[];
double FA6[];
double FA7[];
double FA8[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
string id;
int init()
  {
   MathSrand((int)TimeLocal());
   for(;;)
   {
      id=StringConcatenate("Fundamental data (id_",MathRand(),")");
      if(WindowFind(id)<0) break;
   }
   IndicatorShortName(id);
//---- indicators
   if(FileCanOpen(файл_данных1))
   {
      if(StringTrimLeft(StringTrimRight(подпись1))=="")
         подпись1=StringSubstr(файл_данных1,0,StringFind(файл_данных1,"."));
   }
   else подпись1="";      
   if(FileCanOpen(файл_данных2))
   {
   if(StringTrimLeft(StringTrimRight(подпись2))=="")
      подпись2=StringSubstr(файл_данных2,0,StringFind(файл_данных2,"."));
   }
   else подпись2="";      
   if(FileCanOpen(файл_данных3))
   {
   if(StringTrimLeft(StringTrimRight(подпись3))=="")
      подпись3=StringSubstr(файл_данных3,0,StringFind(файл_данных3,"."));
   }
   else подпись3="";      
   if(FileCanOpen(файл_данных4))
   {
   if(StringTrimLeft(StringTrimRight(подпись4))=="")
      подпись4=StringSubstr(файл_данных4,0,StringFind(файл_данных4,"."));
   }
   else подпись4="";      
   if(FileCanOpen(файл_данных5))
   {
   if(StringTrimLeft(StringTrimRight(подпись5))=="")
      подпись5=StringSubstr(файл_данных5,0,StringFind(файл_данных5,"."));
   }
   else подпись5="";      
   if(FileCanOpen(файл_данных6))
   {
   if(StringTrimLeft(StringTrimRight(подпись6))=="")
      подпись6=StringSubstr(файл_данных6,0,StringFind(файл_данных6,"."));
   }
   else подпись6="";      
   if(FileCanOpen(файл_данных6))
   {
   if(StringTrimLeft(StringTrimRight(подпись7))=="")
      подпись7=StringSubstr(файл_данных7,0,StringFind(файл_данных7,"."));
   }
   else подпись7="";      
   if(FileCanOpen(файл_данных8))
   {
   if(StringTrimLeft(StringTrimRight(подпись8))=="")
      подпись8=StringSubstr(файл_данных8,0,StringFind(файл_данных8,"."));
   }
   else подпись8="";      
      
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1,цвет1);
   SetIndexLabel(0,подпись1);
   SetIndexBuffer(0,FA1);
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1,цвет2);
   SetIndexLabel(1,подпись2);
   SetIndexBuffer(1,FA2);
   SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1,цвет3);
   SetIndexLabel(2,подпись3);
   SetIndexBuffer(2,FA3);
   SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,1,цвет4);
   SetIndexLabel(3,подпись4);
   SetIndexBuffer(3,FA4);
   SetIndexStyle(4,DRAW_LINE,STYLE_SOLID,1,цвет5);
   SetIndexLabel(4,подпись5);
   SetIndexBuffer(4,FA5);
   SetIndexStyle(5,DRAW_LINE,STYLE_SOLID,1,цвет6);
   SetIndexLabel(5,подпись6);
   SetIndexBuffer(5,FA6);
   SetIndexStyle(6,DRAW_LINE,STYLE_SOLID,1,цвет7);
   SetIndexLabel(6,подпись7);
   SetIndexBuffer(6,FA7);
   SetIndexStyle(7,DRAW_LINE,STYLE_SOLID,1,цвет8);
   SetIndexLabel(7,подпись8);
   SetIndexBuffer(7,FA8);
//----
   return(0);
 
murziks #:


Pouvez-vous me dire ce que Metatrader peut lire d'autre au lieu de csv ?

.txt

Mais je le préfère sans l'extension


 
murziks #:


Pouvez-vous me dire ce que Metatrader peut lire d'autre au lieu de csv ?

Les fichiers binaires peuvent lire et écrire. Variables, structures, tableaux. Tout ceci est écrit dans des fichiers et relu.

Raison: