no un asesor no funciona en Metatrader 5 cualquier par de divisas - página 6

 
en dólares de demostración
 
Tratando de descargar robots aquí no 1 ha trabajado todavía
 

cambiaron a dólares, los EAs internos no funcionan, los míos sí

el tipo de ejecución de la orden debe ser ORDER_FILLING_RETURN

 
sandex:

cambiaron a dólares, los EA internos no funcionan, los míos sí

el tipo de ejecución de la orden debe ser ORDER_FILLING_RETURN

r donde introducir este tipo)
 
dogmaone:
r donde introducir este tipo)
Si tus robots funcionan, ¿puedes decirme dónde poner el valor correcto para que los robots estándar también funcionen?
 

Definitivamente la lógica de los Asesores Expertos es la culpable (el código no pasa todas las comprobaciones o no tiene en cuenta el modo de negociación).

Al menos este sencillo código en el servidor "BCS5-Real" funciona fácilmente:

//+------------------------------------------------------------------+
//|                                                    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:

La lógica de los Asesores Expertos es definitivamente la culpable (el código no pasa todas las comprobaciones o no tiene en cuenta el modo de comercio).

Al menos un código tan simple en el servidor "BCS5-Real" funciona fácilmente:

Por favor, aconsejar cuando quiero compilar su código: ir a crear (plantilla de EA) controlador de eventos adicionales qué elegir?
 
Sergey Ponomarev:
Por favor, aconséjeme cuando quiera compilar su código: quiero crear (plantilla EA) un manejador de eventos adicional ¿cuál elegir?
Esto es un guión. Este script es para comprobar que se pueden abrir posiciones en modo automático en este servidor de operaciones.
 
Karputov Vladimir:
Esto es un guión. Este script es para comprobar que todavía se pueden abrir posiciones en modo automático en este servidor de comercio.
Ya veo... ¿Así que el servidor de mi corredor necesita otra lógica?))
 
Karputov Vladimir:
Esto es un guión. Este script es para comprobar que todavía se pueden abrir posiciones en modo automático en este servidor de operaciones.
Gracias por sus esfuerzos :)
Razón de la queja: