Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 857

 

¡Hola! Hay una pregunta en el código. Este evento aparece en cada nueva barra de la TF de trabajo. TF: ¿debería ser así o hay un error en el código?

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   ResetLastError();   
   datetime Arr[];
   if(CopyTime(NULL,PERIOD_M5,10,1,Arr)<=0) 
   {
      int error=GetLastError();
      Print("Ошибка 4401 возникает на новом баре раб.ТФ, который должен быть ниже М5 в данном случае ",error);
      Print("Почему запрошенная история не найдена ведь я обращаюсь всего лишь к 10-му бару старшего ТФ М5");
      return(0);
      }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
novichok2018:

También existe la funciónbool ExistPositions() de Igor Kim, que devuelve la bandera de existencia de la posición, lo cual me resulta un poco complicado de adaptar a mis condiciones específicas. Pero tampoco creo que se pruebe en la historia.

Si nadie tiene un código, realmente probado en el mundo real, para mostrarme, lo probaré científicamente. Gracias.

¡De nuevo me faltan conocimientos! Una simple sustitución en iOpen(NULL,0,0) para EURUSD produce errores de identificador no declarado y conversión implícita de 'número' a 'cadena'. Lo mismo al cambiar Symbol() enOrderSend(Symbol(),OP_BUY,LOT,Ask,slippage,0,TP,"",magic,0,Blue); ¿Cómo lo arreglo?

 
novichok2018:

Una vez más, me faltan conocimientos. La simple sustitución de NULL en iOpen(NULL,0,0) por EURUSD da errores de identificador no declarado y de conversión implícita de 'número' a 'cadena'. Lo mismo al cambiar Symbol() en OrderSend(Symbol(),OP_BUY,LOT,Ask,slippage,0,TP,"",magic,0,Blue); ¿Cómo lo arreglo?

¿No te olvidaste de poner las comillas?

 
novichok2018:

Sí, así es como me lo imaginaba, pero no puedo comprobar si funciona en el historial, porque la apertura de una posición en el euro debería producirse por la condición para la libra y no se refleja en el código para el euro, mientras que el historial se muestra en el euro. De ahí la incertidumbre sobre la corrección de la decisión.

Entonces tendré que aprender MQL5 y probar la variante multidivisa.

 
Alexey Viktorov:

Entonces tendré que aprender MQL5 y probar la variante multidivisa.

¡Oh, no, gracias! No pretendo estudiar a fondo MKL4 o MKL5. Mi objetivo es escribir Asesores Expertos sencillos que sean rentables en el 95% de las posiciones abiertas, y evitar sacar todo el saldo antes de decidir cerrar una posición con pérdidas. Tengo varios Asesores Expertos de este tipo que funcionan en cuentas demo, pero cada vez aparecen nuevas ideas y quiero probarlas de inmediato. Me adhiero a la opinión de que cuanto más sencillo sea el código, mejor, no quiero profundizar en el lenguaje. Al menos, todavía no. El estudio a fondo de la lengua sólo se justifica con el propósito de ganar dinero escribiendo expertos por encargo, según mi opinión.

Gracias por las citas. Todavía no lo he probado, un poco más tarde.

 
novichok2018:

....... Mi objetivo es escribir Asesores Expertos sencillos para mí, que sean rentables en el 95% de las posiciones abiertas, y que un colgado menos no me vacíe todo el saldo hasta que decida cerrar una posición con pérdidas. .....

Has descrito el sueño del 95% de los comerciantes de todo el mundo. Pero ni siquiera quiere molestarse en la ortografía y la sintaxis del idioma. Una envidiable confianza en sí mismo, eso me gustaría. En mi opinión, por supuesto.

 
novichok2018:

¡Oh, no, gracias! No pretendo estudiar a fondo MKL4 o MKL5. Mi objetivo es escribir Asesores Expertos sencillos que sean rentables en el 95% de las posiciones abiertas, y evitar sacar todo el saldo antes de decidir cerrar una posición con pérdidas. Tengo varios Asesores Expertos de este tipo que funcionan en cuentas demo, pero cada vez aparecen nuevas ideas y quiero probarlas de inmediato. Me adhiero a la opinión de que cuanto más sencillo sea el código, mejor, no quiero profundizar en el lenguaje. Al menos, todavía no. El estudio a fondo de la lengua sólo se justifica con el propósito de ganar dinero escribiendo expertos por encargo, según mi opinión.

Gracias por las citas. Todavía no lo he probado, lo haré un poco más tarde.

MQL5 no es más complicado que MQL4. En algunos casos es incluso más sencillo y rápido. La OOP es sólo un malestar para los principiantes. Para escribir un simple Asesor Experto al que te refieres, no necesitas saber de OOP.

Dime cuánto más difícil es escribir

// MQL4

OrderSend(_Symbol, OP_BUY, lot, price, Slip, sl, tp, "", Magic);
// MQL5

#include <Trade\\Trade.mqh>
CTrade trade;

trade.Buy(lot);
 
Sergey Voytsekhovsky:

Has descrito el sueño del 95% de los comerciantes del mundo. Pero ni siquiera quiere molestarse en la ortografía y la sintaxis del idioma. Una envidiable confianza en sí mismo, eso me gustaría. En mi opinión, por supuesto.

No entiendo lo que quieres decir con "ortografía", pero no importa, porque mis robots sí funcionan, y exactamente de la manera que he descrito.

 
Alexey Viktorov:

MQL5 no es más complicado que MQL4. Y en algunos casos es incluso más sencillo y rápido. La OOP es una historia de terror para los principiantes. Para escribir un simple Asesor Experto de los que hablas, no necesitas saber de OOP.

Dime cuánto más difícil es escribir

¡OH, DIOS MÍO! Me has matado. No entiendo nada, aunque mecánicamente no es más difícil escribir la segunda versión )).

 

Hola, ¿cuánto tiempo durará MT4? ¿un año o dos?

Perdón por la pregunta, es un poco off-topic (pero muy importante para mí).