Discusión sobre el artículo "Introducción a MQL5: Cómo escribir un Expert Advisor y un Indicador Personalizado" - página 4

 

Este ExpertAdvisor no funciona en MT5 build 712, al menos no para mí.

Hay un mensaje de error "Cant't copy indicator buffer".

Además el indicador no compila sin advertencias,

"posible pérdida de datos debido a la conversión de tipo" en la línea 53,

"possible use on uninitialized varaiable 'day_n'" en la línea 54

"possible use on uninitialized varaiable 'h_day'" en la línea 62

"psosible use on uninitialized varaiable 'l_day'" en la línea 63


¿Puede corregir estos problemas, por favor?

Por lo demás, este es un buen ejemplo para nosotros que tenemos experiencia en otro software que no sea MT5.

 
Si quiero colocar 5 órdenes pendientes de stop de venta y 5 de stop de compra y separar entre ellas 10 pips. ¿Cómo lo hago?
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

Este es un excelente artículo, para los principiantes y las personas que viene de mql4, con en primer lugar un buen ejemplo de estrategia de negociación.

Hay algunas carencias menores en el código (comprobación de errores no siempre implementado), pero la EA funciona muy bien si se utiliza en el marco de tiempo minuto como recomienda el autor. Las advertencias al compilar el indicador son sólo advertencias, y no están bloqueando a utilizarlo y la EA.

Gracias.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Chart Constants / Chart Timeframes
  • www.mql5.com
Standard Constants, Enumerations and Structures / Chart Constants / Chart Timeframes - Documentation on MQL5
 

esta no es una manera facil de explicar mql5 a la gente. (Es como con los libros de programación, el 90% de la gente no tiene ni idea de cómo empezar. Abren este libro por ejemplo sobre programación en c y el primer "ejemplo fácil" es largo por 1 página entera escrita en fuentes minúsculas. En toda mi vida solo he leido un buen libro de programacion que podria enseñar a programar a cualquiera. La razón es que están escritos por programadores probablemente excelentes, pero desafortunadamente muy malos profesores. Programar puede ser realmente fácil y te lo demostraré haciendo un sencillo tutorial para el lenguaje de programación MQL4 cuando tenga un poco más de tiempo que ahora. Para todos - incluso principiantes totales. El mayor error es enseñar a la gente los detalles de la lengua la mayor parte de su trabajo debe ser ctrl + C y ctrl + v y el uso de Google para los comandos y lo más importante - mantener todo muy simple. Conozco más de 10 lenguajes de programación (programo desde los 7 años) y todavía estoy asustado por la forma en que se explica este "ejemplo fácil" en 11kb (!!!). Me gustaria saber si hay algun principiante en programacion que haya aprendido MQL5 con este ejemplo ;D. Lo dudo y si lo hay se puede contar con los dedos de una mano.

Fast Dive into MQL5
  • 2012.08.02
  • MetaQuotes Software Corp.
  • www.mql5.com
You have decided to study MQL5 trading strategies' programming language, but you know nothing about it? We have tried to examine MQL5 and MetaTrader 5 terminal from the newcomers' point of view and have written this short introductory article. In this article, you can find a brief idea of the possibilities of the language, as well as some tips on working with MetaEditor 5 and the terminal.
 
angreeee:

esta no es una forma facil de explicar mql5 a la gente. (Es como con los libros de programación, el 90% de la gente no tiene ni idea de cómo empezar. Abren este libro por ejemplo sobre programación en c y el primer "ejemplo fácil" es largo por 1 página entera escrita en fuentes minúsculas. En toda mi vida solo he leido un buen libro de programacion que podria enseñar a programar a cualquiera. La razón es que están escritos por programadores probablemente excelentes, pero desafortunadamente muy malos profesores. Programar puede ser realmente fácil y te lo demostraré haciendo un sencillo tutorial para el lenguaje de programación MQL4 cuando tenga un poco más de tiempo que ahora. Para todos - incluso principiantes totales. El mayor error es enseñar a la gente los detalles de la lengua la mayor parte de su trabajo debe ser ctrl + C y ctrl + v y el uso de Google para los comandos y lo más importante - mantener todo muy simple. Conozco más de 10 lenguajes de programación (programo desde los 7 años) y todavía estoy asustado por la forma en que se explica este "ejemplo fácil" en 11kb (!!!). Me gustaria saber si hay algun principiante en programacion que haya aprendido MQL5 con este ejemplo ;D. Lo dudo y si lo hay se puede contar con los dedos de una mano.

Tienes razón cuando dices que los programadores no son buenos profesores en general.

Pero no estoy de acuerdo cuando dices que MQL5 es tan dificil de aprender, principalmente para un programador que ha experimentado con mas de 10 lenguajes.

 
De hecho, este es un gran artículo para los principiantes de programación mql5, como yo. angevoyageur hablar bien al respecto.
 

En la práctica, que yo recuerde, es posible cambiar uno de los niveles (SL o TP) de una posición dejando inalterados los demás niveles, incluso en los casos en que el nivel cuyo valor permanece inalterado está más cerca del precio actual que el especificado en el parámetro SYMBOL_TRADE_STOPS_LEVEL. Al crear programas, no recomiendo cambiar los parámetros de posición (niveles) de tal forma que los nuevos parámetros de posición (niveles) no cumplan los requisitos para comprobar la corrección de los datos de la posición, ya que esta situación no está documentada y en el futuro podría obtenerse un resultado diferente.

[Eliminado]  
He copiado y pegado el Asesor Experto y trato de probarlo con Strategytester. Pero no hace ningún comercio. Soy nuevo en MQL5 y la programación por lo que tal vez sólo cometió un error estúpido. Se compila sin errores. ¡Realmente me gustaría que la estrategia! ¿Alguna idea de por qué no se ejecuta en strategytester..?
 

Hola a todos

Todo funciona bien para mí sólo cuando

request.type_filling=ORDEN_FILLING_IOC;

request.type_time = ORDER_TIME_DAY;

Situación similar con https://www.mql5.com/ru/forum/1156/page9#comment_2359257

¿Es una peculiaridad de mi broker FxPro?

Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих"
Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих"
  • www.mql5.com
Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих". - Страница 9 - Категория: статьи и техническая библиотека по автоматическому трейдингу
 

Soy nuevo en la programación mql5.


Estaba tratando de aprender a través de este ejemplo, pero estoy un poco perdido con el bucle al final de la construcción del indicador. ¿Dónde exactamente se asigna un valor a la variable day_n?


Porque el bucle comprobará si day_n<day_t. ¿Cómo puede el programa conocer el valor de day_n?


for(i=prev_calculated;i<rates_total;i++)
     {
      day_t=time[i]/PeriodSeconds(ATRtimeframe);
      if(day_n<day_t)
        {
         day_n=day_t;
         h_day=high[i];
         l_day=low[i];
        }
        else
        {
         if(high[i]>h_day) h_day=high[i];
         if(low[i]<l_day) l_day=low[i];
        }
      bu[i]=l_day+atr[1];
      bd[i]=h_day-atr[1];
     }


¿Y cómo se calcula en absoluto? Supongamos que rate_total = 10 y todavía no hay ninguna barra calculada. Entonces prev_calculated = 0


day_t=time[0] (HOY! ya que cuenta hacia atrás)/PeriodSeconds... ya que empieza a contar desde 1970, supongamos que empieza a contar desde hace 10 días. así que debería dar 10, ¿no?

Entonces day_t=10. Ahora comprueba si dayt > dayn. No sé dayn, pero sé dayt = 10. Voy a asumir dayn es cero, ya que no hay ningún valor.

Entonces dayn se convierte en 10 también. Ok.

Segunda tirada del bucle. prev_calculado + 1= 1.

DayT=time[1] (yesterday)/period... recuerda, empieza a contar desde hace 10 días... pero ahora sólo hasta ayer. debería dar un valor de 9, ¿no?

pero ahora díaN < díaT es falso. Entonces empieza a realizar las expresiones else. Ok. Entiendo.


Entonces calculará todos los bu[] y bd[]. Ok. El bucle terminará cuando prev < total rate sea falso.

Pero cuando llegue una nueva barra, y vuelva a ser verdadero, ¿volveré a empezar desde cero? ¿O empezará desde 10 y pasará directamente a la parte else?


¡¡¡¡Gracias!!!!