MetaTrader 5 en una cuenta real - página 2

 
IgorM:

Me refería al precio, no al SL o al TP? ¿Y a qué precio debería el servidor abrirme una orden de mercado, al precio que me dio o al que yo quería?

por qué no debo enviar al servidor el precio con un spread positivo)

WZZ: USDJPY : 82.49 ; 82.510000000001 ; 82.49 - tal vez 82.55 a la vez ?

aquí hay un ejemplo de envío de una solicitud con precios normalizados

//+------------------------------------------------------------------+
//| Функция открытия ордеров                                         |
//+------------------------------------------------------------------+
void OpenOpders(string sym,ENUM_ORDER_TYPE type)
  {
   int n=0;
   bool res=true;
   while(res)
     {
      n++;
      Alert(n," - Попытка открыть ордер: ",TypeToStr(type)," на  ",sym,", Лот - ",Lots);
      double Bid=SymbolInfoDouble(sym,SYMBOL_BID);
      double Ask=SymbolInfoDouble(sym,SYMBOL_ASK);
      int digit=(int)SymbolInfoInteger(sym,SYMBOL_DIGITS);
      double price=0.0;

      if(type==ORDER_TYPE_BUY)price=NormalizeDouble(Ask,digit);
      else if(type==ORDER_TYPE_SELL)price=NormalizeDouble(Bid,digit);

      request.action       = TRADE_ACTION_DEAL;
      request.symbol       = sym;
      request.volume       = Lots;
      request.price        = price;
      request.deviation    = Slip;
      request.type         = type;
      request.type_filling = ORDER_FILLING_AON;

      OrderSend(request,result);

      switch(Fun_Error(result.retcode))
        {
         case 0:res=false;break;
         case 1:res=true;break;
         case 2:res=false;break;
        }
     }
  }
//+------------------------------------------------------------------+
//| Функция обработки ошибок                                         |
//+------------------------------------------------------------------+
int Fun_Error(int Error)
  {
   switch(Error)
     {
      case 10004: Alert("Реквота");return(1);
      case 10006: Alert("Запрос отвергнут");Sleep(3000);return(1);
      case 10007: Alert("Запрос отменен трейдером");Work=false;return(0);
      case 10008: Alert("Ордер размещен");return(2);
      case 10009: Alert("Заявка выполнена");return(2);
      case 10010: Alert("Заявка выполнена частично");return(2);
      case 10011: Alert("Ошибка обработки запроса");return(1);
      case 10012: Alert("Запрос отменен по истечению времени");return(1);
      case 10013: Alert("Неправильный запрос");Work=false;return(0);
      case 10014: Alert("Неправильный объем в запросе");Work=false;return(0);
      case 10015: Alert("Неправильная цена в запросе");Work=false;return(0);
      case 10016: Alert("Неправильные стопы в запросе");Work=false;return(0);
      case 10017: Alert("Торговля запрещена");Work=false;return(0);
      case 10018: Alert("Рынок закрыт");Work=false;return(0);
      case 10019: Alert("Нет достаточных денежных средств для выполнения запроса");Work=false;return(0);
      case 10020: Alert("Цены изменились");return(1);
      case 10021: Alert("Отсутствуют котировки для обработки запроса");Sleep(3000);return(1);
      case 10022: Alert("Неверная дата истечения ордера в запросе");Work=false;return(0);
      case 10023: Alert("Состояние ордера изменилось");return(2);
      case 10024: Alert("Слишком частые запросы");Work=false;return(0);
      case 10025: Alert("В запросе нет изменений");Sleep(3000);return(1);
      case 10026: Alert("Автотрейдинг запрещен сервером");Work=false;return(0);
      case 10027: Alert("Автотрейдинг запрещен клиентским терминалом");Work=false;return(0);
      case 10028: Alert("Запрос заблокирован для обработки");return(2);
      case 10029: Alert("Ордер или позиция заморожены");return(2);
      case 10030: Alert("Указан неподдерживаемый тип исполнения ордера по остатку");Work=false;return(0);
      case 10031: Alert("Нет соединения с торговым сервером");Sleep(3000);return(1);
      case 10032: Alert("Операция разрешена только для реальных счетов");Work=false;return(0);
      case 10033: Alert("Достигнут лимит на количество отложенных ордеров");return(2);
      case 10034: Alert("Достигнут лимит на объем ордеров и позиций для данного символа");return(2);
      default:    Alert("Ошибка № - ",Error);Work=false;return(0);
     }
  }
//+------------------------------------------------------------------+
//| Функция преоброзования типа ордера в строку                      |
//+------------------------------------------------------------------+
string TypeToStr(ENUM_ORDER_TYPE type)
  {
   switch(type)
     {
      case  ORDER_TYPE_BUY:  return("BUY");
      case  ORDER_TYPE_SELL: return("SELL");
     }
   return("");
  }
 
Renat:
Es decir, la tesis de la "humedad de la plataforma" no se ha confirmado de ninguna manera.

Nunca he mencionado la humedad de la plataforma - volver a leer mis mensajes

He hecho mis comentarios al respecto, si crees que no tienen fundamento, déjalo, pero creo que tu empresa vende software para brokers en la plataforma MT5

sergey1294:

aquí hay un ejemplo de envío de una solicitud con precios normalizados

gracias pero tengo una idea un poco diferente de comercio y el precio al que quiero abrir una orden tratar de normalizar 82,47,82,459999999999,82,47

No estoy seguro de que el servidor "inventó" un precio 82,46 porque tal precio no se registró en sus registros y si no es el precio de mercado - no lo necesito - que se quede en el servidor y no ir a mis registros con errores

 
IgorM:

Nunca he mencionado la humedad de la plataforma - volver a leer mis mensajes

he hecho mis comentarios sobre el tema - si usted piensa que son infundados, que así sea, pero creo que su empresa vende software para corredores en la plataforma mt5

sps pero tengo una idea un poco diferente de comercio y el precio al que quiero abrir una orden, tratar de normalizar 82,47,82,459999999999,82,47

No estoy seguro de que el servidor "inventó" un precio 82,46 porque tal precio no estaba en sus registros y si el precio no es de mercado - no lo necesito - que permanezca en el servidor y no ir a mis registros con errores

Lamentablemente, no conoces la aritmética básica de los números reales y su representación en los ordenadores. Este es el origen de su malentendido sobre los precios "no normalizados".

82,45999999(9) es la representación doble de 82,46

 
IgorM:

Nunca he mencionado la humedad de la plataforma - volver a leer mis mensajes

he hecho mis comentarios sobre el tema - si usted piensa que son infundados, que así sea, pero creo que su empresa vende software para corredores en la plataforma mt5

sps pero tengo una idea un poco diferente de comercio y el precio al que quiero abrir una orden, tratar de normalizar 82,47,82,459999999999,82,47

No estoy seguro de que el servidor se "invente" un precio 82,46 ya que no hay tal precio en sus registros y si no es el precio de mercado no lo necesito - que se quede en el servidor y no vaya con errores en mis registros

No entiendes bien cuáles son tus ideas de precios, el precio aceptado tiene cinco o cuatro decimales, así que tienes que reducir el precio hasta ese decimal.
 
Renat:

Lamentablemente, no conoces la aritmética básica de los números reales y su representación en los ordenadores. Este es el origen de su malentendido sobre los precios "no normalizados".

82,45999999(9) es la representación doble de 82,46

Bien, encontraré tiempo para releer material probablemente ya olvidado, es decir, ¿tal precio (82,45999999(9)) será aceptado por el servidor de operaciones para abrir una orden de mercado?

sergey1294 Por favor, preste atención a lo que los desarrolladores le dieron como ejemplos y clases ya hechas, al menos la clase CTrade proporcionada por los desarrolladores no tiene funciones NormalizeDouble(), así como los ejemplos en el MQL5 Reference / Trading Functions / OrderSend

No voy a inventar y escribir inicialmente los programas equivocados si he leído los ejemplos en la fuente original, en la Referencia MT4 el ejemplo OrderSend() tampoco contiene normalización de precios

 
IgorM:

OK, voy a encontrar tiempo para releer probablemente ya olvidado por mí, es decir, tal precio (82,45999999(9)) será aceptado por el servidor de comercio para abrir una orden de mercado?

Sí, si es el precio correcto/existente en el flujo de ticks.


sergey1294 Por favor, preste atención a lo que los desarrolladores le dieron como ejemplos y clases ya hechas, al menos la clase CTrade proporcionada por los desarrolladores no tiene funciones NormalizeDouble(), así como los ejemplos en el MQL5 Reference / Trading Functions / OrderSend

No voy a inventar y escribir inicialmente los programas equivocados si he leído ejemplos concretos en la fuente

Si utiliza la oferta y la demanda habituales para realizar operaciones, siempre están normalizadas. Los precios calculados (por ejemplo, los stops) deben normalizarse antes de enviar una orden de negociación.

Los métodos estándar de CTrade no normalizan a la fuerza los precios de entrada de las órdenes, porque es categóricamente inaceptable - no se pueden sustituir los precios declarados anteriormente.

 
Renat:
Sí, siempre que sea el precio correcto/existente en el flujo de ticks.


Si utiliza la oferta y la demanda normales para las operaciones, siempre están normalizadas. Pero los precios calculados (por ejemplo, los stops) ya deben ser normalizados por usted mismo antes de enviar una orden de negociación.

Los métodos estándar de CTrade no normalizan los precios de entrada forzados, ya que esto es categóricamente inaceptable: no se pueden sustituir los precios indicados en un nivel superior.

cp! no me importa mencionarlo varias veces en el manual de MT5, para que no haya malentendidos y se pueda enviar inmediatamente a leer la ayuda :)

ZS: Sé lo de SL y TR, pero no lo recuerdo ni lo he leído en la ayuda ni lo he averiguado en el foro

 
IgorM:

cp! si fueras tan amable de mencionar esto varias veces en el manual de MT5 para que no haya malentendidos y te manden directamente a leer el manual :)

Sí, estamos actualizando constantemente la documentación y añadiendo aclaraciones.
 
IgorM:

leo este foro todo el tiempo y muy a menudo me sorprendo con sus mensajes profundos e informativos ;)

En cuanto al tema, dudo que las cotizaciones en las cuentas demo difieran de las de microreal, pero las cuentas demo muy a menudo tienen precios no normalizados, el fuerte movimiento - no se puede abrir o cerrar la orden por ellos, me gustaría ver algún orden, para que luego no culpar a MT5

En cuanto al gusto y el color, es una sabiduría popular - el precio no normalizado molesta a algunas personas, aunque yo personalmente no lo considero un gran problema (ya que hace tiempo que utilizo los pedidos pendientes, y esos precios no son un gran problema para mí). Pero el problema para mí son cosas como la falta de voluntad de OnTimer() para trabajar en el probador u otras cosas similares.

Pero incluso con estos datos, a la hora de elegir un terminal para operar en la cuenta cent (con un depósito de 200 dólares), personalmente haré mi elección a favor de MT5.

¡CON TODAS SUS DESVENTAJAS ACTUALES!

 
Interesting:

A algunas personas les molesta el "precio no normalizado", pero personalmente no creo que sea un gran problema (porque llevo mucho tiempo utilizando los retrasos, y esos precios no son un gran problema para mí). Pero el problema para mí son cosas como la falta de voluntad de OnTimer() para trabajar en el probador u otras cosas similares.

Este error es consecuencia de una optimización fallida y ha sido corregido en la nueva build 358.