Discusión sobre el artículo "Una breve guía de inicio rápido para principiantes"

 

Artículo publicado Una breve guía de inicio rápido para principiantes:

¡Hola, apreciado lector! En este artículo intentaré explicarle y mostrarle cómo puede dominar, de forma fácil y rápida, los principios necesarios para crear Expert Advisors, trabajar con indicadores, etc. Está destinado a principiantes y no se utilizarán ejemplos difíciles o complejos.

Una breve guía de inicio rápido para principiantes

Autor: Dmitriy Parfenovich

Dmitriy Parfenovich
Dmitriy Parfenovich
  • www.mql5.com
SignalFinder One Timeframe is a multicurrency indicator similar to SignalFinder. On a single chart it displays trend direction on the currently select timeframe of several currency pairs. The trend direction is displayed on specified bars. Main Features...
 

¡Dimitri, dijiste que no eras escritor! ¡Pero lo eres! Enhorabuena por este agradable comienzo. Es agradable darse cuenta de que usted comenzó con un pequeño material, incluso si no es tan voluminoso, lo principal es empezar, y allí como va a ser más y más tiempo para ganar experiencia a través de sus artículos y / o de otros escritores.

Gracias por tu atención.

 
GKS:

¡Dimitri, dijiste que no eras escritor! ¡Pero lo eres! Enhorabuena por este agradable comienzo. Es agradable darse cuenta de que usted comenzó con un pequeño material, incluso si no es tan voluminoso, lo principal es empezar, y allí como va a ser más y más tiempo para ganar experiencia a través de sus artículos y / o de otros escritores.

Gracias por tu atención.

Gracias. No esperaba esto de mí mismo. Seguiré intentándolo.
 
me ha gustado la claridad de la presentación, me gustaría seguir con el mismo estilo, por ejemplo, sobre las bibliotecas....
 
iMA_handle=iMA("EURUSD",PERIOD_H1,40,0,MODE_SMA,PRICE_CLOSE);  //conectar el indicador y obtener su handle
.......
   ChartIndicatorAdd(ChartID(),0,iMA_handle);     // añadir el indicador al gráfico de precios
   
No funciona así. Pero si quitas el símbolo y la hora, todo va bien.
iMA_handle=iMA(NULL,0,40,0,MODE_SMA,PRICE_CLOSE);
 
mln141:

No funciona así. Pero si quitas el símbolo y la hora, todo va bien.

Si pruebas en EURUSD y timeframe de una hora, todo funcionará.

Por otro lado, has encontrado el problema y lo has resuelto tú mismo usando la ayuda (tal vez), ¿qué no es una ventaja?

Gracias, el artículo ha sido corregido.

 

algunas pequeñas preguntas:

1 ¿qué pasa o rehappen cuando el período de tiempo de gráfico cambiado durante la ejecución?

2 ima_handle definido en OnInit(), iMA_handle=iMA("EURUSD",PERIOD_H1,10,0,MODE_SMA,PRICE_CLOSE);

¿es posible cambiar los parámetros dinámicos de este mango por programself como cambiar PERIOD_H1,10 a PERIOD_M15, 39 durante la ejecución?

3 ¿qué es deal?

 

¡Enhorabuena!

Código extremadamente sencillo y bien escrito... Creo que haciendo referencia a la librería, hiciste en pocas líneas lo que yo hice en casi 100 (sólo para abrir posiciones largas y cerrar largas).

Me refiero especialmente a estas líneas:

if(m_Posicion.Select(mi_símbolo)) //si la posición para este símbolo ya existe
{
if(m_Position.PositionType()==POSITION_TYPE_SELL) m_Trade.PositionClose(my_symbol); //y se trata de una posición de Venta, entonces ciérrela
if(m_Position.PositionType()==POSITION_TYPE_BUY) return; /o de lo contrario, si se trata de una posición de compra, a continuación, salir
}
m_Trade.Buy(0.1,mi_símbolo); //si llegamos aquí, significa que no hay posición; entonces la abrimos
}
if(iMA_buf[1]<Close_buf[1] && iMA_buf[0]>Close_buf[0]) //si los valores del indicador eran menores que el precio de cierre y pasaron a ser mayores
{
if(m_Position.Select(mi_símbolo)) //si la posición para este símbolo ya existe
{
if(m_Position.PositionType()==POSITION_TYPE_BUY) m_Trade.PositionClose(my_symbol); //y se trata de una posición de Compra, entonces ciérrela
if(m_Position.PositionType()==POSITION_TYPE_SELL) return; /o bien, si se trata de una posición de venta, entonces salir
}
m_Trade.Sell(0.1,mi_símbolo); //si llegamos aquí, significa que no hay posición; entonces la abrimos
}

Lo único que me faltó puede ser un comando para operar sólo cuando aparece una nueva barra. Hubo una discusión en: www.mql5.com/en/forum/5762

Yo uso el siguiente código, publicado allí por mogplus8:

static int LastBarCount=0;

if(Bars(_Symbol,_Period)>LastBarCount)
LastBarCount=Bars(_Symbol,_Period);
else
return;

 
Algunas imágenes vuelan, por favor, arréglenlas.
 

Estoy algo desconcertado con su afirmación sobre los Oficios.

Los oficios presentados en el artículo son muy parecidos a los "sellos" en artiel http://mqlmagazine.com/leading-article/orders-positions-and-deals-part-i/. ¿Son lo mismo? ¿Cuáles son sus diferencias?

Por cierto, en la página enlazada, el autor afirma: Cada orden colocada en el mercado es una operación en sí misma, con su propio resultado, independiente de las demás.

Pego las palabras aquí sólo para aclarar los posibles malentendidos a los que prestaron atención a los comentarios.

Gracias.

Orders , positions and deals . Part I | MQLmagazine.com
  • mqlmagazine.com
This article is dedicated to working with orders, positions and deals. In this article we will discuss the general principles and passing to the new system. In a new article we will detail the MQL5 programming side on orders, positions and deals. MetaQuotes changed both the functions but also the principles in working with orders. A term...
 
No es un hombre, pero el oro, gran artículo. De una gran cantidad de materiales, yo, como un principiante de programación, sólo yours))))))). Gracias por un artículo de este tipo, un lenguaje muy sencillo que escribió todo simplemente impresionante, ahora por lo menos entiendo lo que hago).