Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1235

 
Pregunta, ¿hay alguna manera de determinar programáticamente que el probador se está ejecutando en MT5?
 
Maksim Mihajlov:
Pregunta, ¿hay alguna manera de determinar programáticamente que un probador se está ejecutando en MT5?
Información sobre un programa MQL5 en ejecución- propiedades de un programa mql5, que ayuda a controlar más su comportamiento;
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
  • www.mql5.com
Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Hola. No sé a quién preguntar, ni dónde escribir. ¿Es posible operar a través de MT5 con Interactive Brokers? Les hice una pregunta, pero me lanzaron un enlace en la respuesta para contactar con https://www.metaquotes.net/ru/company/contacts, así que es un formulario para una entidad legal. Parece que hay algún tipo de puente de software entre MT5 y TWS, ¿puede decirme algo al respecto? Si existe la posibilidad de comprar cotizaciones de las bolsas americanas con la emisión de MT5 para poder ver el gráfico de un determinado instrumento y utilizar los indicadores de MT5, pero realizar las transacciones a través de TWS. Si esta no es la pregunta correcta, por favor, dígame dónde escribir y preguntar.
Контакты представительств компании MetaQuotes
Контакты представительств компании MetaQuotes
  • www.metaquotes.net
По вопросам приобретения торговой платформы MetaTrader 5 вы можете обратиться к нашим представителям:
 
akarustam:

Cansado de entender la razón de la diferencia constante en la optimización de un buen EA en MT5... En el mismo par de divisas, con el mismo EA, con los mismos parámetros de optimización, hay una diferencia en los resultados de optimización... Es decir, siempre uso el mismo EA y esperaba los mismos resultados, pero en realidad son diferentes...

Ilumina pliz, ¿a quién le es familiar este tipo de confusión?

GRACIAS.

La mayoría de las variables forzadas no inicializadas o la referencia a las variables globales (las del terminal)

 

Ayuda, indicador de velas

#property tester_everytick_calculate
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots   1
//--- plot newCandles
#property indicator_label1  "newCandles"
#property indicator_type1   DRAW_CANDLES
#property indicator_color1  clrWhite
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- indicator buffers
double   newCandles_Open[];
double   newCandles_High[];
double   newCandles_Low[];
double   newCandles_Close[];
int      newCandles_index  = 0;
//--- цены формирующейся свечи
double   candle_Open    = -1.0;
double   candle_High    = -1.0;
double   candle_Low     = -1.0;
double   candle_Close   = -1.0;

int OnInit()
{
//--- indicator buffers mapping
   SetIndexBuffer(0, newCandles_Open,  INDICATOR_DATA);
   SetIndexBuffer(1, newCandles_High,  INDICATOR_DATA);
   SetIndexBuffer(2, newCandles_Low,   INDICATOR_DATA);
   SetIndexBuffer(3, newCandles_Close, INDICATOR_DATA);
//+---------------------
   PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, 0.0);
//+---------------------
   PlotIndexSetString(0,PLOT_LABEL,"newCandles("+IntegerToString(in_Candle_Size_Point)+", "+TimeToString(in_Start_Time,TIME_DATE)+")");
   IndicatorSetString(INDICATOR_SHORTNAME,"newCandles("+IntegerToString(in_Candle_Size_Point)+", "+TimeToString(in_Start_Time,TIME_DATE)+")");
//+---------------------
   ArrayInitialize(newCandles_Open,0.0);
   ArrayInitialize(newCandles_High,0.0);
   ArrayInitialize(newCandles_Low,0.0);
   ArrayInitialize(newCandles_Close,0.0);

//+---------------------
   return(INIT_SUCCEEDED);
}

OnCalculate realiza el cálculo y llena los buffers INDICATOR_DATA cuando se cumplen las condiciones

      newCandles_Open[newCandles_index]      = candle_Open;
      newCandles_High[newCandles_index]      = candle_High;
      newCandles_Low[newCandles_index]       = candle_Low;
      newCandles_Close[newCandles_index++]   = candle_Close;

Pensaba que cuando se llenan estos buffers se debería dibujar la vela. Pero no lo es. ¿Por qué?

 
Сергей Таболин:

Ayuda, indicador de velas

OnCalculate realiza el cálculo y llena los buffers INDICATOR_DATA cuando se cumplen las condiciones

Pensaba que cuando se llenan estos buffers se debería dibujar la vela. Pero no lo es. ¿Por qué?

¿Dónde está el código completo? No está claro lo que se hace exactamente en OnCalculate. Como ejemplo, utilice la ayudaDRAW_CANDLES.

¿Y qué es esta vela con precios negativos?
 
Vladimir Karputov:

¿Dónde está el código completo? No está claro qué está haciendo exactamente en OnCalculate. Como ejemplo, utilice la ayudaDRAW_CANDLES.

¿Y qué es esta vela con precios negativos?

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

MQ5::Pregunta sobre el indicador de velas.

Sergey Tabolin, 2020.08.05 18:17

Edgar, gracias, pero lo tengo claro. Lo que no está claro es por qué no hay garrapatas antes de 2019.


Ahora la pregunta principal es.

¿Por qué no se dibujan las velas en el indicador? ¿En qué me equivoco?

Fuente de dominio público ))))

Esto es sólo una inicialización para iniciar la cuenta atrás. Los precios se cuentan correctamente.
Archivos adjuntos:
newCandles.mq5  21 kb
 
Сергей Таболин:
Esto es sólo una inicialización para iniciar la cuenta atrás. Los precios se cuentan correctamente.

En la depuración, revise y compruebe en qué casos se cumplirá su condición.


 
Vladimir Karputov:

En la depuración, revisa y comprueba en qué casos se cumplirá tu condición.


Soy consciente de que esto puede no ser correcto. ¡Pero!

Funciona. La condición se cumple cuando el indicador se pone en marcha. Una vez. Los precios están impresos. A continuación, se calculan los ticks. También se imprimen.

2020.08.06 14:27:31.101 newCandles (USDJPY,H1)  2020.08.05 21:31:16 >>> Свеча 03623 >> open = 105.638 hihg = 105.675 low = 105.473 close = 105.473 > Сформирована за 07539 тиков.
2020.08.06 14:27:31.101 newCandles (USDJPY,H1)  2020.08.06 03:14:33 >>> Свеча 03624 >> open = 105.473 hihg = 105.635 low = 105.395 close = 105.635 > Сформирована за 19034 тика.
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  2020.08.06 10:54:42 >>> Свеча 03625 >> open = 105.635 hihg = 105.695 low = 105.471 close = 105.471 > Сформирована за 08861 тик.
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  ~~~~ Предварительный расчёт индикатора закончен.
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  Расчёт на тике 00872 Бар 03626
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  Расчёт на тике 00873 Бар 03626
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  Расчёт на тике 00874 Бар 03626

Pero quiero saber por qué no se imprimen los candelabros.

 
Сергей Таболин:

Me doy cuenta de que esto puede no ser lo correcto. ¡Pero!

Funciona. La condición se cumple cuando el indicador se pone en marcha. Una vez. Los precios están impresos. A continuación, se calculan los ticks. También se imprimen.

Pero quiero saber por qué no se dibuja ninguna vela.

Primero, aprenda a construir el indicador basado en DRAW_CANDLES. Al mismo tiempo hay que pensar qué es un candelero "0".

Eso es, hasta que te acercas a las garrapatas.


Para dibujar una vela, hay que llenar TODOS los cuatro buffers. No se hace eso - se omiten tanto newCandles_Close como ....

Razón de la queja: