AutoGraf Serie 4 - Funciones MQL. - página 35

 

Не очень понятно что Вы называете "строка кода для учёта в приложении".

Fragmento de AG_Srtategy_Channal_Inside.mq4

//================================================================================== 6 ==
   if ( Channal == false)                           // Если объекта заданного типа нет
      {
      ObjectCreate ( My_Chan_Name, OBJ_STDDEVCHANNEL,0,0,0); // Создаём его.. 
      int Сoor_X2 = Time[0];                                // 1я точка СПРАВА, 2я СЛЕВА
      int Сoor_X1 = Сoor_X2 - With*60;                      // Канал длиной 3 часа
      ObjectSet( My_Chan_Name, OBJPROP_TIME1, Сoor_X1);      // Устанавливаем координаты
      ObjectSet( My_Chan_Name, OBJPROP_TIME2, Сoor_X2);      // Устанавливаем координаты 
      ObjectSet( My_Chan_Name, OBJPROP_COLOR, Orange);       // Устанавливаем координаты 
      AG_Message( Message, "АТ: Устанавливаем объект OBJ_STDDEVCHANNEL.");// Сообщение

      return(1);                 // Это необходимо, чтоб установл. канал был учтён AG 4    Имелась ввиду эта строка

      }
//---------------------------------------------------------------------------------- 7 --

Esta línea me confundió:

La primera es que la función AT puede negociar por sí misma: generar órdenes de negociación y enviarlas al servidor

Parece que la función AT puede ignorar la aplicación y enviarlos al servidor por sí mismo ......

Aparentemente este es mi problema debido a la falta de experiencia. Mi cerebro aún no está afinado para programar.

 
LeonidSB писал(а) >>

.. Tu cerebro aún no se ha agudizado para la programación.

Deberías escribir algunos programas sencillos por tu cuenta.

 

Tienes toda la razón. Me estoy esforzando por conseguirlo y espero hacerlo pronto, pero primero quiero entender qué, cómo y por qué está escrito por gente que ya tiene experiencia. A grandes rasgos, adquirir conocimientos para que se traduzcan en experiencia, a partir de la cual pueda escribir algo yo mismo.

En esencia, cualquier programa "complejo" es un conjunto interconectado de programas simples. Es como una casa y los ladrillos (soy un antiguo constructor de formación y profesión), es decir, la programación es como un juego de construcción para mí.

Por cierto, tómate el tiempo de mirar mi indicador en el trabajo. Dibuja y deja la línea de objetivos en el gráfico, la línea de operaciones rentables y deficitarias, usándolas puede analizar visualmente la implementación de la estrategia en el gráfico en el probador, y en la vida real. Además, al activar las opciones adecuadas, puede ver y aplicar para su posterior procesamiento los resultados de la sesión en su propio archivo de registro (no general).

extern bool   PrDeal=false;                                      // Выключатель. Печатать отчет по каждой сделке
extern bool   PrCol=false;                                       // Выключатель. Печатать отчет в колонку
extern bool   PrTab=true;                                        // Выключатель. Печатать отчет в таблицу

Hasta ahora, se crean tres tipos de informes simultáneamente en un solo archivo. Ya he mencionado que basé mi informe en el indicador desarrollado por Vladislav Goshkov. Eran 280 líneas. Lo he mejorado hasta 2300 líneas. Como dice el refrán, era algo sobre lo que construir. Obviamente, el código estaba escrito de tal manera que no podía describirse en pocas palabras. Pero estas son mis primeras líneas de código y funcionan, ¡que es lo más importante! Así que me estoy moviendo en la dirección correcta (aunque no de la manera correcta), y con tu ayuda para explicar los problemas que surgen, todo es cuestión de tiempo.

Muchas gracias por su participación.


Aprovechando la oportunidad, otra pregunta.

Está escrito en el tutorial:

Если в результате исполнения торгового приказа функция OrderClose() вернула значение false, то это значит, что ордер не закрыт. Чтобы выяснить причину неудачи выполняется анализ последней ошибки, возникшей при попытке осуществления торговой операции. Для этого вызывается функция Errors() (см. раздел Функция обработки ошибок). Если при исполнении этой функции обнаруживается, что ошибка является непреодолимой (например, торговля запрещена), то функция Close_All() заканчивает работу и возвращает управление в управляющую торговую функцию Trade(), что в конечном счёте приводит к завершению исполнения специальной функции start() эксперта. На следующем тике торговый терминал снова запустит на исполнение функцию start(), и если критерий закрытия на тот момент будет ещё актуален, то это снова приведёт к вызову на исполнение функции закрытия всех ордеров Close_All().

Pregunta:

Hay dos órdenes abiertas BUY-1 y BUY-2 con los lotes 3 y 5 respectivamente. Hay una orden de negociación utilizando la función Close_All(). Las órdenes se cierran en el siguiente orden: primero, COMPRA-2 (5 lotes), luego COMPRA-1 (3 lotes). Al mismo tiempo, la orden BUY-2 (5 lotes) no puede cerrarse - el error es irreversible - nos vamos - la orden BUY-1 (3 lotes) no se cierra - la pérdida es creciente - lo mismo ocurre en el siguiente tick (la pérdida es creciente), etc. Es decir, si no podemos cerrar la primera orden de la lista que no se puede cerrar por alguna razón de peso, todas las órdenes siguientes de la lista seguirán abiertas y permanecerán abiertas durante algún tiempo, no está claro. Esto no debería permitirse. Esto no debe ser permitido por el algoritmo del programa, pero hice lo posible por analizarlo y no logré entenderlo.

      //--------------------------------------------------------- 4 --
      if ( Ans==false)                     // Не получилось :( 
        {                                // Поинтересуемся ошибками:
         if( Errors(GetLastError())==false)// Если ошибка непреодолимая
            return;                       // .. то уходим.
        }
      //--------------------------------------------------------- 5 --
      Terminal();                         // Функция учёта ордеров 
      Events();                           // Отслеживание событий
     }
   return;                                // Выход из пользов. функции
  }
//--------------------------------------------------------------- 6 --

Por favor, explique con más detalle.

Gracias de antemano, con respeto y buenos deseos, Leonid.

 
LeonidSB писал(а) >>

Pregunta:

Hay dos órdenes abiertas BUY-1 y BUY-2 con los lotes 3 y 5 respectivamente. Hay una orden de negociación utilizando la función Close_All(). Orden de cierre: primero, COMPRA-2 (5 lotes), luego COMPRA-1 (3 lotes). Al mismo tiempo, la orden BUY-2 (5 lotes) no puede cerrarse - el error es irreversible - nos vamos - la orden BUY-1 (3 lotes) no se cierra - la pérdida es creciente - lo mismo ocurre en el siguiente tick (la pérdida es creciente), etc. Es decir, si no podemos cerrar la primera orden de la lista que no se puede cerrar por alguna razón de peso, todas las órdenes siguientes de la lista seguirán abiertas y permanecerán abiertas durante algún tiempo, no está claro. Esto no debería permitirse. Esto no debe estar permitido por el algoritmo del programa, pero he intentado analizarlo lo mejor posible y no he conseguido entenderlo.

Por favor, explique con más detalle.

Gracias de antemano y respetuosamente y con los mejores deseos, Leonid.

Un error insuperable es un error que no se puede superar. Por ejemplo, Mercado_cerrado.

Desde este punto de vista, no importa qué orden se cierre o se abra. El mercado está cerrado de todos modos:).

Pero si se trata de ejecutar una operación, debe ser la que tenga la mayor prioridad (desde el punto de vista de la estrategia).

 

Hola, señoras y señores.

Por favor, responda a mi pregunta.

¿Cuál de los indicadores muestra con mayor fiabilidad el cambio de tendencia - plano?

Quiero añadir este indicador a las estrategias AG_Srtategy_Channal_Inside y AG_Srtategy_Channal_Outside como cambio de una estrategia a otra.

 
SK. писал(а) >>

........La tarea consistía en permitir al usuario adjuntar a la aplicación AutoGraf 4 sus propios algoritmos de negociación escritos en MQL4 y ejecutados como archivos de estrategia .ex4. Para resolver este problema, el Asesor Experto AG_exp.ex4 incluye un código que importa en el Asesor Experto la función de trading automático AG_AT que está disponible tanto en archivos .ex4 como mq4. Además, el usuario puede decidir por sí mismo cómo organizar los códigos. Lo más conveniente es utilizar una de las dos variantes....

No se ha considerado esta variante: módulo principal con código abierto, el principal, que ahora es con código cerrado, se llama a través de la importación, estrategia de comercio a través del incluid (o a través del incluid primero, y la importación en el incluid)... La cuestión es ésta: un enlace intermedio en forma de inluder para hacer visibles las variables externas. Me parece que, si lo piensas bien, debería funcionar. No me digas de una vez que es imposible ;)

 
LeonidSB писал(а) >>

Hola, señoras y señores.

Por favor, responda a mi pregunta.

¿Cuál de los indicadores muestra con mayor fiabilidad el cambio de tendencia - plano?

Quiero añadir este indicador a las estrategias AG_Srtategy_Channal_Inside y AG_Srtategy_Channal_Outside como cambio de una estrategia a otra.

Y la elección no es grande: ETS, ATR, ADX. También reloj y calendario de comunicados de prensa.

 

Gracias.

Me pregunto si hay una opción para que cuando se añada un comentario a una página, se actualice automáticamente.

Tengo que ir periódicamente a la página y actualizarla manualmente.

 
Integer писал(а) >>

Esta opción no se ha considerado: módulo central de código abierto, el núcleo que ahora es código cerrado se llama a través de la importación, la estrategia de comercio a través de incluid (o primero a través de incluid y luego la importación en incluidnik) ... La cuestión es ésta: un enlace intermedio en forma de inluder para hacer visibles las variables externas. Me parece que, si lo piensas bien, debería funcionar. No digas de inmediato que es imposible;)

No hay ninguna dificultad para hacerlo. Pero enviar un producto comercial de código abierto... ya sabes, no es la solución.

La solución real se espera en MT 5. Cualquier programa de aplicación debe ser llamado desde el programa principal. Lo que se necesita es la capacidad de gestionar las EA completadas. En este caso, una estrategia personalizada podría consistir en una unidad de análisis y una unidad de llamada a la "subrutina". Usted quiere - llamar a la secuencia de comandos y se dibujará un fiba, usted quiere - llamar al indicador, usted quiere - cerrar todo y pipsqueak en la noche después del trabajo:).

Y API. Entonces podrá hacer una herramienta verdaderamente moderna.

Al usuario no le importan nuestras florituras (todo tipo de scripts, Asesores Expertos, indistinguibles de los expertos:). Necesita un servicio cómodo, de alta calidad y multifuncional. En MT4 sólo se podía hacer lo que se ha hecho: una cara similar a la de DOS y posibilidades limitadas.

Toda la esperanza para MT5.

 

Se ha lanzado una nueva versión de la serie AG 4 - AutoGraf 4.90714.

Cambios realizados:
1. se ha optimizado el algoritmo de análisis de control de herramientas 14 Close_All.
2. Se introduce una nueva regla de gestión de herramientas 14 Close_All: Se permite la configuración del software de la herramienta en el momento actual. Para ello, introduzca un valor de 1 para el parámetro de tiempo de ejecución de la herramienta (Instrumento [0][2][32][1] = 1).

Descargue el software aquí: http://autograf.dp.ua/Pages/4/421.htm