Errores, fallos, preguntas - página 621

 
sergey1294:
En primer lugar se dividen los enteros para obtener un entero, lea sobre la conversión de tipos https://www.mql5.com/ru/docs/basis/types/casting
Sí, pero antes no era así. Ni siquiera me molesté.
 
ivandurak:
Sí, pero antes no lo era. Ni siquiera me molesté.

¿Solía ser de a cuatro? porque de a cinco lo fue desde el principio y siempre lo será (1/2=0; 1./2.=0.5).

Si quiere especificar los duplicados, añada explícitamente un punto.

// Script program start function                                    
void OnStart()
  {
   int i;
   double   a,b ;
   for(i=0;i<10;i++)
      {
         a=1./2.;
         b=1./2.;
         Print("a=",a," ","b=",b) ;
      }   
  }
 
Urain:

¿Solía ser de a cuatro? Porque fue de a cinco desde el principio.

Si quiere especificar explícitamente los duplicados, añada un punto.

Este no fue el caso ni en el cuatro ni en el cinco.

La aritmética de números enteros (e incluso en forma de constantes de números enteros puros) es inequívoca.

 

He encontrado una discrepancia entre el probador y la cuenta demo:

Después de una operación comercial exitosa, los campos de precios se rellenan de forma diferente en la estructura de respuesta del servidor comercial. En la cuenta demo todo es como debe ser en el campo de precio - el precio al que se hizo la transacción, en el probador este campo sigue siendo 0.

Para probar, he dibujado un Asesor Experto que compra cada tick y muestra el código de retorno y el precio en el registro:

//+------------------------------------------------------------------+
//|                                                  test-expert.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
         MqlTradeRequest trade_request;
         MqlTradeResult  trade_result;
         ZeroMemory(trade_request);
         ZeroMemory(trade_result);
         trade_request.action=TRADE_ACTION_DEAL; 
         trade_request.volume=0.1; 
         trade_request.type=ORDER_TYPE_BUY; 
         trade_request.price=SymbolInfoDouble(_Symbol,SYMBOL_ASK); 
         trade_request.symbol=_Symbol;
         OrderSend(trade_request,trade_result);
         Print(trade_result.retcode, "купили по цене ",trade_result.price);
  }
//+------------------------------------------------------------------+

Cuando lo ejecuto en una cuenta demo el registro contiene las siguientes cadenas:

2012.01.16 12:48:29 test-expert (EURUSD,H1) 10009 comprado a 1.266

Y cuando se ejecuta en el visualizador estos :

2012.01.16 12:49:12 2011.12.30 00:00:11 10009 comprado a un precio de 0,0

Dígame, ¿es esto un error, un fallo, o he hecho algo mal?
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 

¿Hay alguna forma de gestionar la prehistoria en el probador?

Una prueba de 1 hora, desde el 1.01.2011 hasta hoy carga sólo 6000 barras. En la configuración es - barras máximas ilimitadas. la historia es todo cargado de 1971 en el minuto.

 

Esta cuestión ha surgido de forma inesperada:

Al cargar un indicador a través de iCustom en un Asesor Experto, el indicador se carga y funciona correctamente - lo único es que su función OnTimer no se llama.

¿Se supone que debe ser así o es un error?

El mismo indicador, simplemente unido a un gráfico, funciona bien.

Construye 574.

 
Dima_S:

Esta cuestión ha surgido de forma inesperada:

Al cargar un indicador a través de iCustom en un Asesor Experto, el indicador se carga y funciona correctamente - lo único es que su función OnTimer no se llama.

¿Se supone que es así o es un error?

Fue diseñado así.
 
antt:
Así es como debe ser.
Muy original)
 
Dima_S:
Muy original)

Los eventos del temporizador se generan para el gráfico y de ahí a los programas que se ejecutan en él (lanzados sobre él). Esta es la ideología - Ejecución del programa:

El terminal cliente envía los eventos generados a las cartas abiertas correspondientes. También los eventos pueden ser generados por los gráficos (eventos de gráficos) o los programas mql5 (eventos personalizados). La generación de eventos de creación y eliminación de objetos gráficos en un gráfico puede activarse o desactivarse estableciendo las propiedades CHART_EVENT_OBJECT_CREATE y CHART_EVENT_OBJECT_DELETE de un gráfico. Cada programa mql5 y cada gráfico tiene su propia cola de eventos, donde se almacenan todos los nuevos eventos.

El programa sólo recibe eventos del gráfico en el que se está ejecutando. Todos los eventos se procesan uno tras otro en el orden en que se reciben.

Por lo tanto, el indicador que se llama desde el Asesor Experto no recibe eventos del temporizador. Intente aplicar el indicador al gráfico utilizando la función ChartIndicatorAdd del Asesor Experto, ¿cambiará algo?

 
Dima_S:
Muy original)
El evento estaba originalmente destinado a los expertos y es esencialmente un evento gráfico. El uso del evento en los indicadores se añadió más tarde y con la restricción de que el indicador debe ser añadido al gráfico.