Errores, fallos, preguntas - página 872

 
¡Hola!
Al instalar Meta Trader 5, ¿qué servidor Proxy debo instalar?
 
Vladon:

en mt5 funciona.

Sí funciona-calcular errores-01.10.20112 a 06.10.2012 en euro/$
Archivos adjuntos:
20121111.log  60 kb
 
mario065:
Sí funciona-calcular errores-01.10.20112 a 06.10.2012 en Euro/$

¿Qué quiere decir?

falló la modificación de la compra de 0.10 EURUSD sl: 1.29120, tp: 1.29370 -> sl: 1.29120, tp: 1.29370 [paradas inválidas].

JF 0 Core 1 19:48:37 2012.10.03 16:20:27 Modificar error =4756

El Stop Loss y el Take Profit no pueden ser modificados en sí mismos, por eso dice stop error, por qué es sorprendente.

 
Vladon:

¿Qué quiere decir?

falló la modificación de la compra de 0.10 EURUSD sl: 1.29120, tp: 1.29370 -> sl: 1.29120, tp: 1.29370 [paradas inválidas].

JF 0 Core 1 19:48:37 2012.10.03 16:20:27 Modificar error =4756

Yo diría que el stoploss y el takeprofit no se pueden modificar en sí mismos, por eso dice stop error, por qué es sorprendente.

Sí, y lo que está escrito en el código:
  if(PositionSelect(Symbol())){
    if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
      {
      if(MStop > 0)
       {
        if(NormalizeDouble(Bid - MStop,4) >= Open)
          if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL) 
           {
            ModifyPosition(Symbol(),NormalizeDouble(Bid - MStop,4),TP);
           }
        }
      }
    if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
      {
      if(MStop > 0)
       { 
        if(NormalizeDouble(Ask + MStop,4) <= Open)
          if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
           {
            ModifyPosition(Symbol(),NormalizeDouble(Ask + MStop,4),TP);
           }
        }
      }
     } 
  }

¿cambiar el stop después de 10 pips o no?

¿Cómo calculo 10 pips como caros si especifico cuándo cambiar el stop?

if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)

si hay una posición de compra

if(MStop > 0)

Si MStop es superior a cero

if(NormalizeDouble(Bid - MStop,4) >= Open)

Si el precio de oferta menos el precio MStop es mayor que el precio de apertura double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4)

que se especifica con 4 dígitos.

if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

Si el Stoploop = 0 o el precio de compra menos puntos es superior o igual al nivel del Stoploop.

¿Qué no está claro?

Funciona bien en MT4.

Lo uso en MT5, es un fallo.

En MT5 puse más por StopLevel(SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)). sigue siendo un fallo.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
 
pero los comentarios. mira por ti mismo.
 
mario065:
Sí, y lo que está escrito en el código:

¿Hay que cambiar el stop después de 10 pips?

Entonces, ¿cómo puedo calcular 10 pips como caro si he especificado cuándo cambiar el stop?

if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)

si hay una posición de compra

if(MStop > 0)

Si MStop es superior a cero

if(NormalizeDouble(Bid - MStop,4) >= Open)

Si el precio de oferta menos el precio MStop es mayor que el precio de apertura double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4)

que se especifica con 4 dígitos.

if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

Si el Stoploop = 0 o el precio de compra menos puntos es superior o igual al nivel del Stoploop.

¿Qué no está claro?

Funciona bien en MT4.

Lo uso en MT5, es un fallo.

Hago mis cálculos y funciona bien en MT4, puse más nivel de parada en MT5 (SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)). todavía un fallo.


if(NormalizeDouble(Bid - MStop,4) >= Open)
                                  ^^^^^^
                                Что за хрень?

if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
  ^^^^^^^^                 ^^^^^^^^^^^^^^
Почему не нормализовано? Нахрена это нормализовать?

 

Es simple, es el nivel equivocado de paradas, es decir, una parada menos que el mínimo.

¿Qué es lo que no hay que entender?

 
Vladon:

Es simple, es el nivel de paradas equivocado, es decir, una parada menos que el mínimo.

¿Qué es lo que no hay que entender?

Ahí se equivoca, ya que hay más juntas de las necesarias.
 
Reshetov:

Hola Reshetov,

Para ti es "¿Qué demonios?", para mí es la condición cuando tengo que hacer una llamada a la función de modificación.

Si miraras el código, no lo habrías escrito.

if(NormalizeDouble(Bid - MStop,4) >= Open)
                                  ^^^^^^
                                Что за хрень?

if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
  ^^^^^^^^                 ^^^^^^^^^^^^^^
Почему не нормализовано? Нахрена это нормализовать?

El código lo hace:

  double Bid  = NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_BID),4);
  double Ask  = NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_ASK),4);
  double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4);
  double SL   = NormalizeDouble(PositionGetDouble(POSITION_SL),4);
  double TP   = NormalizeDouble(PositionGetDouble(POSITION_TP),4);

Condición de traducción:

input double MStop  = 0.001;
double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4);
if(NormalizeDouble(Bid - MStop,4) >= Open)

Si el precio en el Bid-MStop es mayor o igual al nivel de apertura de la posición, entonces es posible hacer la llamada de la función de modificación - no antes.

Además, esta no es la forma correcta de hacerlo: está en el código y debe hacerse correctamente:

if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

La segunda normalización es por si acaso, creo que no está mal.

La condición en sí misma (que tomaste de la condición para una Venta Positiva):

Si el stop loss es cero o Bid menos 10 pips más o igual al nivel de stop loss - entonces podemos llamar a la función modificar.

Si el precio es más alto y el stop loss cambia, la siguiente llamada se hará después de 10 pips, por lo que no ocurre en cada tick.

Eso es lo que escribí - creo que es correcto.

Esperaba que me dijeras si está bien o mal, si es un error mío o un fallo.

 
mario065:

Hola Reshetov,

Para ti es "¿Qué carajo?", para mí es la condición cuando tengo que hacer una llamada a la función de modificación.

...
Creo que lo que Reshetov quería decir es que no es necesario normalizar la variable para si. Debemos normalizar el valor del precio cuando el pedido se envía al servidor. En lugar de NormalizeDouble(Bid - MStop,4) haga NormalizeDouble( (Bid- MStop),4).