pas un seul conseiller ne fonctionne avec Metatrader 5 pour n'importe quelle paire de devises - page 6

 
sur les dollars de démonstration
 
J'ai essayé de télécharger des robots ici, mais aucun n'a encore fonctionné.
 

passé en dollars, les EA internes ne fonctionnent pas, les miens oui.

le type d'exécution de l'ordre doit être ORDER_FILLING_RETURN

 
sandex:

passé en dollars, les EA internes ne fonctionnent pas, les miens oui.

le type d'exécution de l'ordre doit être ORDER_FILLING_RETURN

r où entrer ce type)
 
dogmaone:
r où entrer ce type)
si vos robots fonctionnent, pouvez-vous me dire où mettre la bonne valeur pour que les robots standards fonctionnent aussi ?
 

La logique des conseillers experts est certainement en cause (le code ne passe pas tous les contrôles ou ne tient pas compte du mode de négociation).

Au moins, un code aussi simple sur le serveur "BCS5-Real" fonctionne facilement :

//+------------------------------------------------------------------+
//|                                                    OrderSend.mq5 |
//|                              Copyright © 2015, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//+------------------------------------------------------------------+
//| https://www.mql5.com/ru/articles/481                             |
//+------------------------------------------------------------------+

#include<Trade\Trade.mqh>
//--- объект для проведения торговых операций
CTrade  trade;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- зададим MagicNumber для идентификации своих ордеров
   int MagicNumber=123456;
   trade.SetExpertMagicNumber(MagicNumber);
//--- установим допустимое проскальзывание в пунктах при совершении покупки/продажи
   int deviation=10;
   trade.SetDeviationInPoints(deviation);
//--- режим заполнения ордера, нужно использовать тот режим, который разрешается сервером
   trade.SetTypeFilling(ORDER_FILLING_RETURN);
//--- режим логирования: лучше не вызывать этот метод вообще, класс сам выставит оптимальный режим
   trade.LogLevel(1);
//--- какую функцию использовать для торговли: true - OrderSendAsync(), false - OrderSend()
   trade.SetAsyncMode(true);
//---
/*//--- 1. пример покупки по текущему символу
   if(!trade.Buy(0.1))
     {
      //--- сообщим о неудаче
      Print("Метод Buy() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
            ". Описание кода: ",trade.ResultRetcodeDescription());
     }
   else
     {
      Print("Метод Buy() выполнен успешно. Код возврата=",trade.ResultRetcode(),
            " (",trade.ResultRetcodeDescription(),")");
     }*/

/*//--- 2. пример покупки по указанному символу
   if(!trade.Buy(0.1,"GBPUSD"))
     {
      //--- сообщим о неудаче
      Print("Метод Buy() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
            ". Описание кода: ",trade.ResultRetcodeDescription());
     }
   else
     {
      Print("Метод Buy() выполнен успешно. Код возврата=",trade.ResultRetcode(),
            " (",trade.ResultRetcodeDescription(),")");
     }*/
     
//Можно указать все параметры ордера: уровни Stop Loss/Take Profit,цена открытия и комментарий.
//--- 3. пример покупки по указанному символу символу с заданными SL и TP
   double volume=0.1;         // укажем объем торговой операции
   string symbol="GBPUSD";    // укажем символ, на котором проводится операция
   int    digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS); // количество знаков после запятой
   double point=SymbolInfoDouble(symbol,SYMBOL_POINT);         // пункт
   double bid=SymbolInfoDouble(symbol,SYMBOL_BID);             // текущая цена для закрытия LONG
   double SL=bid-1000*point;                                   // ненормализованное значение SL
   SL=NormalizeDouble(SL,digits);                              // нормализуем Stop Loss
   double TP=bid+1000*point;                                   // ненормализованное значение TP
   TP=NormalizeDouble(TP,digits);                              // нормализуем Take Profit
//--- получим текущую цену открытия для LONG позиций
   double open_price=SymbolInfoDouble(symbol,SYMBOL_ASK);
   string comment=StringFormat("Buy %s %G lots at %s, SL=%s TP=%s",
                               symbol,volume,
                               DoubleToString(open_price,digits),
                               DoubleToString(SL,digits),
                               DoubleToString(TP,digits));
   if(!trade.Buy(volume,symbol,open_price,SL,TP,comment))
     {
      //--- сообщим о неудаче
      Print("Метод Buy() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
            ". Описание кода: ",trade.ResultRetcodeDescription());
     }
   else
     {
      Print("Метод Buy() выполнен успешно. Код возврата=",trade.ResultRetcode(),
            " (",trade.ResultRetcodeDescription(),")");
     }
  }
//+------------------------------------------------------------------+
 
Karputov Vladimir:

C'est certainement la logique des conseillers experts qui est en cause (le code ne passe pas tous les contrôles ou ne tient pas compte du mode de négociation).

Au moins, un code aussi simple sur le serveur "BCS5-Real" fonctionne facilement :

S'il vous plaît conseiller quand je veux compiler votre code : aller à créer (modèle EA) gestionnaire d'événement supplémentaire que choisir ?
 
Sergey Ponomarev:
Veuillez me conseiller lorsque je veux compiler votre code : je veux créer (modèle EA) un gestionnaire d'événement supplémentaire ; lequel choisir ?
C'est un script. Ce script est destiné à vérifier que les positions peuvent être ouvertes en mode automatique sur ce serveur de trading.
 
Karputov Vladimir:
C'est un script. Ce script a pour but de vérifier que les positions peuvent toujours être ouvertes en mode automatique sur ce serveur commercial.
Je vois... Le serveur de mon courtier a donc besoin d'une autre logique ?)))
 
Karputov Vladimir:
C'est un script. Ce script a pour but de vérifier que les positions peuvent toujours être ouvertes en mode automatique sur ce serveur de trading.
Merci pour vos efforts :)
Raison: