Autoaprendizaje del lenguaje MQL5 desde cero - página 74

 
VVT:

Espera, tienes un límite de tiempo para comerciar allí... ¿El tiempo de arrastre no entra en esas restricciones? aunque no, parada equivocada, extraña

Mi Asesor Experto está configurado para funcionar desde las 09:00:00 hasta las 09:01:00 hora de Moscú sólo para abrir una posición. No hay problemas con la apertura de la posición. El Asesor Experto se instaló en una cuenta de demostración en la plataforma de operaciones de PSB-Forex.

Decidí poner el Asesor Experto en mi cuenta de demostración en la terminal de operaciones MetaQuote MT5. Todo ha funcionado como debería, pero el código de retorno del servidor de comercio 10016 aún permanece. Muy interesante. Intentaré analizar el asunto.

Atentamente, Vladimir.

 
MrBrooklin:

Valery, ¿cuál es el nivel de congelación? ¿Tal vez haya que prescribirlo de alguna manera en el código?

Saludos, Vladimir.

Ladistancia de congelación, más correctamente, es la distancia de una orden/posición de mercado en la que no se permite la ejecución de órdenes. No se pueden colocar topes en esta zona. Utilice su tope estimado como parámetro y obtendrá el requerido en la salida. El código es para 4k. La lógica es la misma en el 5. El parámetro MarketInfo parece ser el mismo.

int New_Stop(int Parametr)                      // Проверка стоп-прик.
  {
   int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Миним. дистанция
   if (Parametr < Min_Dist)                     // Если меньше допуст.
     {
      Parametr=Min_Dist;                        // Установим допуст.
      Alert("Увеличена дистанция стоп-приказа.");
     }
   return(Parametr);                            // Возврат значения
  }
//-------------------------------------------------------------- 12 -- 

Para 5

SÍMBOLO_COMERCIO_NIVEL_DE_CONGELACIÓN

Distancia de congelación de las operaciones comerciales (en puntos)

int



Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как правило...
 
Valeriy Yastremskiy:

La distancia de congelación es correcta, la distancia de la orden/posición de mercado en la que no se permite la ejecución de órdenes. No se pueden colocar topes en esta zona. Utilice su tope estimado como parámetro y obtendrá el deseado en la salida. El código es para 4k. La lógica es la misma en el 5. Los parámetros de MarketInfo parecen ser los mismos.

¡Gracias, Valeriy! Seguiré mejorando el código del Asesor Experto.

Saludos Vladimir.

 
MrBrooklin:

¡Gracias, Valery! Seguiré comprendiendo y mejorando el código del Asesor Experto.

Sinceramente, Vladimir.

Por favor, envíenme la función de cálculo del stop y la modificación de la posición. El código es largo, no hay mucho tiempo)))))

 
Valeriy Yastremskiy:

Por favor, deje la función de cálculo de paradas y modificación de posiciones aquí. El código es largo, no hay mucho tiempo)))))

Valery, no hay ninguna función que calcule el tope porque se establece en los parámetros de entrada así:

input ushort SL=200; //Стоп-лосс

y en el código de la posición de compra se prescribe la siguiente línea:

request.sl=NormalizeDouble(price-SL*point,digits);

Gracias, Valery, pero quiero ocuparme yo mismo de la modificación del stop loss. Ya tengo suficiente información para mejorar el Asesor Experto yo mismo.

Saludos, Vladimir.

 
MrBrooklin:

Valery, no hay ninguna función que calcule el tope, porque se establece en los parámetros de entrada así:

y en el código de la posición Buy se prescribe la siguiente línea:

Gracias, Valery, pero quiero ocuparme yo mismo de la modificación del stop loss. Ya tengo suficiente información para mejorar el Asesor Experto yo mismo.

Sinceramente, Vladimir.

request.sl=NormalizeDouble(price-SL*point,digits);
Alert("request.sl= ",request.sl);

Y también el precio, el SL y el punto para estar seguros)

 
Valeriy Yastremskiy:

Y también por el precio seguro, SL y punto)

¡Gracias, Valery!

Sinceramente, Vladimir.

 
Valeriy Yastremskiy:

La distancia de congelación es correcta, la distancia de la orden/posición de mercado en la que no se permite la ejecución de órdenes. No se pueden colocar topes en esta zona. Utilice su tope estimado como parámetro y obtendrá el deseado en la salida. El código es para 4k. La lógica es la misma en el 5. El parámetro MarketInfo parece ser el mismo.

Para 5

SÍMBOLO_COMERCIO_NIVEL_DE_CONGELACIÓN

Distancia de congelación de las operaciones comerciales (en puntos)

int



Gracias, Valery, por la aclaración.

Saludos, Vladimir.

 

¡Buen día y buen humor a todos!

Sigo estudiando el lenguaje de programación MQL5. Hoy es el momento en que puedo poner el código del Asesor Experto con un trailing stop a la vista del público. Como el código del Asesor Experto es bastante engorroso, he tenido que recortar al máximo los comentarios y publicarlo como un archivo llamado Trailing_Stop (v.1).mq5. Más adelante publicaré la versión del Asesor Experto con comentarios detallados sobre cada línea de código, en una forma fácilmente comprensible para un estudiante de primer año de una escuela de programación.

Antes de publicar el código, comprobamos el Asesor Experto en el probador de estrategias. No se ha detectado ningún problema. En el Asesor Experto se utiliza el sistema de compensación de la contabilidad de posiciones. Este sistema de contabilidad significa que en un momento dado en la cuenta, sólo puede haber una posición abierta para el mismo símbolo (valor).

En este momento, el Asesor Experto ha implementado la capacidad de:

  1. Compruebe la cuenta comercial en la que piensa instalarlo. Si el Asesor Experto será instalado en una cuenta demo, entonces en el cuadro de mensajes aparecerá el permiso para seguir trabajando. Si se intenta instalar el Asesor Experto en unacuenta real, la ventana de mensajes mostrará una advertencia de que no puede seguir funcionando, y luego se eliminará automáticamente de la ventana de trabajo del terminal de operaciones .
  2. Una vez al día, a las 9 de la mañana, hora de Moscú, abra automáticamente una posición en la dirección a la que se dirige el primer tick. Por ejemplo, si el primer tick se dirige hacia arriba a las 9 de la mañana, hora de Moscú, se abrirá una posición de COMPRA; si el primer tick se dirige hacia abajo, se abrirá una posición de VENTA.
  3. Establece el tamaño del lote.
  4. Establezca el tamaño del stop loss.
  5. Especifique el nivel relativo al precio de apertura, en el que el Stop Loss se mueve al Breakeven.
  6. Establezca el paso de arrastre del stop loss.

Esta versión del Asesor Experto implementa parcialmente los consejos sugeridos anteriormente por Vassily Sokolov. Todas las adiciones y comentarios detallados se incluirán en la versión final de la EA.

¡¡¡ADVERTENCIA!!!

Este Asesor Experto se ha desarrollado según el plan de autoestudio para cuentas de demostración, y está destinado únicamente a la formación. No está pensado para operar en una cuenta real y obtener beneficios.

Saludos, Vladimir.

Archivos adjuntos:
 

¡Estimados participantes y lectores de este hilo!

Estuve toda la noche intentando averiguar por qué el archivo publicado anteriormente con el código del Asesor Experto, que tenía un defecto, no podía ser sustituido por la versión corregida. Por la mañana por fin me he dado cuenta.

Francamente, no pensé que si alguien de los participantes del foro ya había descargado el archivo Trailing_Stop.mq5 con el defecto, no sería posible simplemente tomarlo y reemplazar el archivo por uno corregido con el mismo nombre. Resulta que también hay que cambiar el nombre del EA para publicar la variante corregida.

Debido a este hecho, le pido disculpas y le propongo que descargue la versión corregida del Asesor Experto denominada Trailing_Stop (v.1).mq5 que se encuentra en el mensaje anterior.

Saludos, Vladimir.

Razón de la queja: