Errores, fallos, preguntas - página 398

 

En varias compilaciones recientes (incluida la 458), se han observado sistemáticamente dos problemas de comprobación en una de las dos máquinas:

1) Error de inicio del agente:

EM 0 Core 1 11:44:11 proceso de agente iniciado
QN 0 Core 1 11:44:11 conectándose a 127.0.0.1:3000
KI 0 Core 1 11:44:15 conectado
HO 2 Core 1 11:44:17 error de sincronización del agente tester
GM 2 Core 1 11:44:17 desconectado
LK 0 Core 1 11:44:17 conexión cerrada

CQ 0 Tester 11:44:14 MetaTester 5 build 450 (16 de mayo de 2011)
MP 0 Servidor 11:44:14:14 MetaTester 5 iniciado en 127.0.0.1:3000
LI 0 Puesta en marcha 11:44:14 inicialización terminada
MR 2 127.0.0.1 11:44:18 cerrar socket
EI 0 127.0.0.1 11:44:18 login (build 450)
EJ 0 Tester 11:44:19 cierre del agente tester

2) El terminal no responde (reloj de arena) durante unos 30 segundos al entrar en la pestaña de agentes.

Se supone que los problemas están relacionados con el procesador mononúcleo o con la falta de agentes remotos (a distancia).

 
stringo:
En realidad, la versión 458 ya ha sido publicada.

así que sí... Pero el problema persiste:

2011.05.27 19:19:57 Core 2 agente lento falló
2011.05.27 19:19:57 Core 2 conexión cerrada
2011.05.27 19:19:57 Core 2 agente demasiado lento. el tiempo de ocupación es de 3703 ms. el tiempo medio es de 915 ms
2011.05.27 19:19:55 Core 1 agente lento falló
2011.05.27 19:19:55 Core 1 conexión cerrada
2011.05.27 19:19:55 Core 2 sincronización común completada
2011.05.27 19:19:54 Core 1 agente demasiado lento. el tiempo de ocupación es de 3672 ms. el tiempo medio es de 915 ms
2011.05.27 19:19:53 iRU1 agente lento falló
2011.05.27 19:19:53 iRU1 conexión cerrada
2011.05.27 19:19:53 Core 2 autorizado (agente build 458)
2011.05.27 19:19:53 Core 2 conectado
2011.05.27 19:19:53 iRU1 agente demasiado lento. el tiempo de ocupación es de 3672 ms. el tiempo medio es de 915 ms

 
MONTEGRO:

así que sí... Pero el problema persiste:

Sigamos pensando.
 

Por favor, aclare los siguientes matices:

1. algoritmo de comprobación/procesamiento de SL/TP cuando se envía una transacción adicional. Aclaración mediante el ejemplo.

Nota: todas las solicitudes de negociación tienen el parámetro ORDER_FILLING_AON; ya hay una posición larga.

Escenario 1. Quiero comprar más (por supuesto, por el mismo símbolo). Envío una operación con volumen adicional y SL/TP ajustado. Si la solicitud se ejecuta con éxito, el resultado será: ¿lote adicional + SL/TP actualizado?

Escenario 2. Quiero vender. Presento una operación con un lote menor sin especificar SL/TP (SL/TP = 0). La posición restante tendrá su lote reducido + SL/TP eliminado?

Escenario 3. Lo mismo que en el escenario #2, sólo que tratando de establecer límites SL/TP (a sabiendas de que es imposible para una posición larga). ¿Resultado?

2. Algoritmo para comprobar el volumen de una operación. aclárelo con un ejemplo.

¿Habrá algún cambio en la combinación "lote mínimo/paso de lote mínimo"?

Notas: Todas las solicitudes de operaciones tienen el parámetro ORDER_FILLING_CANCEL oORDER_FILLING_RETURN; ya hay una posición larga de 1,0; min.lot = 0,1; min.step = 0,01;

Escenario 1. Intento salir del mercado (cerrar una posición existente con una operación inversa del mismo tamaño). El mercado es de noticias, por lo que intento retirar al menos un poco (ORDER_FILLING_CANCEL o ORDER_FILLING_RETURN), ya que todo el importe tiene recotizaciones. La operación está parcialmente en 0,99 lotes. En consecuencia, para cerrar la posición completamente, necesito enviar una operación con 0,01 lotes, mientras que no puedo - el lote mínimo es 0,1. Es decir, ¿debo añadir primero 0,09 lotes para obtener 0,1 y luego intentar cerrarlo (ya con ORDER_FILLING_AON)?

Escenario 2. Cuando una operación se ha cerrado parcialmente y el volumen restante de la posición es inferior al paso mínimo (finalización parcial a 0,999 lotes, y 0,001 lotes quedan "colgados"). ¿Habrá una situación así?

P.D. Lo ideal sería ver alguna lógica unificada de establecimiento de órdenes que "cerrara" todos los casos teóricamente posibles. No pude encontrarlo en la documentación, tal vez me lo perdí...

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
uncleVic:

No hay ningún error en la biblioteca. Hay dos sutilezas al trabajar con datos de indicadores utilizando la clase (que pueden no estar completamente descritas en la ayuda).

1. Para que los datos del indicador estén disponibles a través de la clase, ésta debe copiar estos datos del indicador. Para ello, llame al método Refresh(int) si tiene la más mínima sospecha de que los datos han cambiado. En su caso:

2. Para que los datos del indicador estén disponibles a través de la clase con una "profundidad" suficiente, es necesario establecer el tamaño de los búferes (por defecto el tamaño del búfer es 256). Para ello, después de crear el objeto, llame al método BufferResize(int). En su caso:

Lo siento si es confuso. Responderé a otras preguntas.

Puedes darme al menos un código sencillo de indicador usando la librería estándar, por falta de documentación y ejemplos no puedo entender cómo funciona. Por ejemplo, dibuja flechas verdes debajo de cada barra cuando tenkan sen>kijun sen y están por encima de la nube y rojo cuando tenkan sen<kijun sen y están por debajo de la nube.
Как использовать торговые классы Стандартной библиотеки при написании советника
Как использовать торговые классы Стандартной библиотеки при написании советника
  • 2010.11.10
  • Samuel
  • www.mql5.com
В статье рассказывается о том, как использовать основной функционал торговых классов Стандартной библиотеки при написании советников, в которых применяется открытие, закрытие и модификация позиции, проверка свободной маржи перед размещением торговых ордеров, размещение и удаление отложенных ордеров. Показано, как использовать торговые классы для получения свойств ордеров и сделок.
 

Flexibilidad de la configuración de la interfaz - hay una sugerencia para hacer mt5 más flexible para el usuario, en términos de configuración para mostrar los nombres de los símbolos, más específicamente - la capacidad de cambiar el nombre de cualquier es decir, no - no gbpusd - pero ... - Por ejemplo - no gbpusd pero ... libra", así como dividir las barras como - la moneda y la flecha hacia abajo, los metales, las acciones, lo que no habría sido todo en una pila, en la barra de división puede incluso añadir mini iconos, como la moneda, el signo de una libra o un pequeño papel verde, los metales - así oro pequeñas barras, etc. Aprox. tales ajustes de flexibilidad colores, pizarras y paneles disponibles en la plataforma "Pro Trader", espero no sonar como la publicidad, porque el suyo en el texto , por supuesto, más fácil y mejor... :)
También estaría bien que se pudiera cambiar el fondo, debajo del símbolo en la lista de símbolos, así como el cambio de color, por ejemplo, un mayor resaltar un fondo negro y la fuente blanca, medio, azul y blanco y totalmente sin importancia, ya que hay negro sobre blanco ...

 
Graff:
Puedes darme al menos el código más sencillo de indicador usando la biblioteca estándar, por la falta de documentación y ejemplos no puedo entender cómo funciona. Por ejemplo, dibuja flechas verdes debajo de cada barra cuando tenkan sen>kijun sen y están por encima de la nube y rojo cuando tenkan sen<kijun sen y están por debajo de la nube.
Adjunte su "pez" y, brevemente, sus deseos. Si es posible (no puedo prometerlo rápidamente) le echaré un vistazo.
 

papaklass:

Algoritmo 2:

1. cerrar posiciones en múltiplos del volumen mínimo permitido. Su ejemplo de 0,99 lotes no es posible, ya que el lote mínimo es de 0,1 lotes. Otros participantes en el mercado establecen sus órdenes como múltiplos de 0,1 lotes. Así que tu ejemplo no es posible.

2. ver punto 1.

Así que quiere decir que si después de la ejecución de la orden el volumen de la posición es menor que el mínimo, entonces esta orden será rechazada.

En los servidores MQ, el paso=lote mínimo=0,01. ¿Hay otros ejemplos en los que el paso<lote mínimo? Para comprobar el comportamiento del terminal.

No puedes esperar ninguna respuesta de los desarrolladores.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Graff:
Puedes darme al menos el código más sencillo de indicador usando la biblioteca estándar, por la falta de documentación y ejemplos no puedo entender cómo funciona. Por ejemplo, dibuja flechas verdes debajo de cada barra cuando tenkan sen>kijun sen y están por encima de la nube y rojo cuando tenkan sen<kijun sen y están por debajo de la nube.

este ejemplo de trabajo con bibla - solo construye la línea tenkan
A partir de aquí te será más fácil añadir otros 4 buffers por analogía y analizarlos (por las flechas).

Nota: hay al menos otras dos formas de tomar los valores del buffer indicador además de la mostrada arriba. El que se muestra no es el único posible

#property indicator_chart_window
#property indicator_buffers  1
#property indicator_plots    1
#property indicator_color1   clrRed
#property indicator_type1    DRAW_LINE

#include <Indicators\Trend.mqh>  // подключили библу

input int tenkan=9;
input int kijun=26;
input int senkou=52;

CiIchimoku ichi; // объект индюка
int h; // его хендл

double Tenkan[]; // буфер для тенкана
//------------------------------------------------------------------
int OnInit()
{
  SetIndexBuffer(0, Tenkan, INDICATOR_DATA);
  ArraySetAsSeries(Tenkan, true);

  ichi.Create(Symbol(), Period(), tenkan, kijun, senkou); // создали буфера
  h=ichi.Handle(); // получили хендл
  return(0);
}
//------------------------------------------------------------------
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[])
{
  ichi.Refresh(0); // обновили индюк

  if(BarsCalculated(h)<rates_total) return(0); // если расчет не нужен
        
  int to_copy; // определяем число баров для копирования
  if(prev_calculated>rates_total || prev_calculated<=0) to_copy=rates_total; 
  else { to_copy=rates_total-prev_calculated; to_copy++; }

  // Номера буферов: 0 - TENKANSEN_LINE, 1 - KIJUNSEN_LINE, 2 - SENKOUSPANA_LINE, 3 - SENKOUSPANB_LINE, 4 - CHINKOUSPAN_LINE.
  if (CopyBuffer(h,0, 0,to_copy, Tenkan)<=0) { Print("ошибка"); return(0); }

  return(rates_total);
}
 
uncleVic:

hay un fallo en las clases y en la ayuda - los indicadores de la función Refresh no se describen