Voy a escribir el indicador de forma gratuita - página 18

 
Yurij Izyumov:
Cómo distribuir el volumen del tick en una vela, la vela tiene un rango y a veces uno grande

No sé mucho sobre los detalles, pero creo que esto funcionará

Supongamos que una vela de 1 minuto tiene un rango de HL=100 puntos y cierta cantidad de unidades de volumen de ticks

Si tomamos la teoría de que cada una de ellas es multidireccional con orden aleatorio, obtendremos, por ejemplo, una vela de 5 minutos y veremos la distribución del precio con

HL_0bar/volumen atántico HL_1bar/volumen atántico HL2bar/volumen atántico etc.

es decir, ya operamos con la unidad "valor de la vela/volumen atlántico". De hecho, la línea reflejará el valor de este indicador en relación con otros similares de forma vertical. Y podemos usarlo en los gráficos m5

lo mismo con la vela de 15 minutos, que consiste en velas de 15 minutos

Está claro que la definición actual no es exactamente lo que queríamos inicialmente, pero acabo de mirar la documentación: no hay historial de gráficos de ticks en ninguna parte, así que la vela mínima es un minuto.

 

Buenas tardes. Necesito un RSI estándar con una alerta. ¿Es posible aplicar esta idea para seguir cómodamente las señales de la pista? Hasta ahora me he encontrado con un montón de basura ligada al RSI o con una alerta cuando se cierra una vela (y el tren se ha ido...)

Un pitido con un mensaje debe venir con una indicación de un par, en el que se produce el evento.

La señal llega una vez durante la formación de una vela en el marco de tiempo seleccionado cuando se cruza el nivel superior o inferior, respectivamente, sólo cuando se cruza hacia arriba o hacia abajo y sólo en el momento del cruce, no cuando la vela se cierra.

Es deseable hacer un nivel más, en el momento de su cruce, también hay una señal única.

Ejemplo.

En el marco de tiempo 5M, el precio del EUR /USD baja. En algún momento, habiendo cruzado el nivel RSI 30 (por ejemplo, en el segundo 80 de una vela), se genera una alerta, y se muestra un mensaje diciendo que el par EUR/USD tiene una señal de compra preliminar en un momento determinado.

Si en el tiempo restante de formación de una vela el RSI toca el siguiente nivel (por ejemplo 20), suena una alerta y sale el mensaje de que en un momento determinado en el par eVor dólar hay una segunda señal de compra.

Preferiblemente, el mensaje debe mostrar de alguna manera que la señal es preliminar o ya es una señal específica (es decir, repetida).

 
Yurij Izyumov:

Para reescribirlo, todos los indicadores que se incluyan deben estar también bajo mql5

B Perdonen la demora en responder, pero necesito REALMENTE su ayuda. Estoy escribiendo un artículo y el moderador me ha pedido que reescriba todos los códigos de los archivos adjuntos para mql5. Sólo tengo que reescribir dos de ellos. El resto de los códigos se replicarán para otros archivos.

Le agradecería mucho que no dejara las cosas para después, porque la publicación del artículo se retrasa precisamente por eso. Yo, por mi parte, prometo informarles de mi tratado. Gracias de nuevo.

1. Entonces, lo que tienes que hacer. En el indicador TDSEQUENTA_by_nikelodeon.mq5 he añadido otro buffer que se encarga de la transmisión de la señal, donde 1 es Compra y -1 es Venta, creo que aquí no debería haber ningún error. Pero es necesario añadir un búfer más, en el que al formarse un punto azul o rojo, es decir, la propia señal, se escribiría en este búfer el número de puntos verdes de cada señal. Ya he añadido un buffer número 7, lo único que queda es organizar la escritura en él.

2. El indicador eVOLution-dvoid.1.3 (1).mq5 debe ser completamente reescrito para MQL5 este indicador toma los datos de los archivos que se encuentran en la carpeta\Files\\Ndeevolution-dvoid\dvoid-BP.csv. Utilizamos el formato csv, pero como este formato no es compatible con el foro, lo pegaré en formato txt. Después de la descarga se debe poner en la carpeta especificada y cambiar el nombre de la extensión a csv. Nuestro indicador debería funcionar con este archivo.

El indicador BuyVOLDOWNNOPDOWN.mq5 debe ser reescrito en MQL5 para mostrar cómo se llaman otros indicadores en el ejemplo de eVOLution-dvoid.1.3 (1).mq5, se llama allí.

En cuanto a los archivos de la familia Cluster_X, intentaré descargarlos para MT5 y luego veremos cómo adjuntarlos. Pero lo más importante ahora es resolver el problema con los indicadores anteriores. ¡¡¡Muchas gracias!!!

Archivos adjuntos:
 
Mihail Marchukajtes:
¿Puedo preguntar cuál será el tema del artículo?
 
Alexey Kozitsyn:
¿Puedo preguntar cuál será el tema del artículo?
Sistemas de Inteligencia Artificial
 
Buenas tardes. Estoy en el indicador Delta_RSI, sigue dibujando (ver captura de pantalla) histo en ambas direcciones al mismo tiempo (buscar error). Y es posible colorear el color de la no señal por encima/por debajo de cero. Gracias.
Archivos adjuntos:
 

¡HolaYurij Izyumov! Dando vueltas por los foros y haciendo esta pregunta, no obtuve una respuesta clara... todo el mundo ofrecía su solución, pero sólo de palabra y sin confirmar que fuera a funcionar. Me gustaría ver la aplicación práctica de la cuestión. Y la pregunta es la siguiente...

Hay un indicador de CodyBase https://www.mql5.com/ru/docs/series/copybuffer

El problema es que cuando se cambia el marco temporal en los parámetros de entrada del indicador, el retraso del cálculo del indicador hasta la aparición de un nuevo tick, y puede tardar hasta varias horas para diferentes instrumentos.

¿Tiene la posibilidad de aplicar esta brecha? Gracias.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyBuffer - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Tango_X:

¡HolaYurij Izyumov! Dando vueltas por los foros y haciendo esta pregunta, no obtuve una respuesta clara... todo el mundo ofrecía su solución, pero sólo de palabra y sin confirmar que fuera a funcionar. Me gustaría ver la aplicación práctica de la cuestión. Y la pregunta es la siguiente...

Hay un indicador de CodyBase https://www.mql5.com/ru/docs/series/copybuffer

El problema es que cuando se cambia el marco temporal en los parámetros de entrada del indicador, el retraso del cálculo del indicador hasta la aparición de un nuevo tick, y puede tardar hasta varias horas para diferentes instrumentos.

¿Tiene la posibilidad de aplicar esta brecha? Gracias.

Puede llamar forzosamente a OnCalculate() pulsando el botón de actualización. También puede hacer todos los cálculos en OnTimer() o OnBookEvent().
 

Hola. ¿Es posible hacer una flecha en estos indicadores? Plantilla y capturas de pantalla de los oficios en la carpeta.Lo siento para agregar tan ind. no da la carpeta para cargar

¡LA DESCOMPILACIÓN ESTÁ PROHIBIDA! ¡ARCHIVO ELIMINADO!

 
Alexey Kozitsyn:
Puede llamar forzosamente a OnCalculate() pulsando el botón de actualización. También puede hacer todos los cálculos en OnTimer() o OnBookEvent().

Lo implementé con OnTimer() y no me salió nada. Desgraciadamente el evento onTimer() no calcula el indicador y se guarda el retraso, tal vez sea una afirmación fuerte y he hecho algo mal, por favor corrijan. Gracias.

//+------------------------------------------------------------------+
//|                                              TestCopyBuffer3.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//---- plot MA
#property indicator_label1  "MA"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- input parameters
bool               AsSeries=true;
int                period=15;
input ENUM_TIMEFRAMES    TimeFrame=PERIOD_CURRENT; //Период графика
ENUM_MA_METHOD     smootMode=MODE_EMA;
ENUM_APPLIED_PRICE price=PRICE_CLOSE;
int                shift=0;
//--- indicator buffers
double                   MABuffer[];
int                      ma_handle;
int to_copy;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,MABuffer,INDICATOR_DATA);
   Print("Параметр AsSeries = ",AsSeries);
   Print("Индикаторный буфер после SetIndexBuffer() является таймсерией = ",
         ArrayGetAsSeries(MABuffer));
//--- set short indicator name
   IndicatorSetString(INDICATOR_SHORTNAME,"MA("+period+")"+AsSeries);
//--- set AsSeries (depends on input parameter)
   ArraySetAsSeries(MABuffer,AsSeries);
   Print("Индикаторный буфер после ArraySetAsSeries(MABuffer,true); является таймсерией = ",
         ArrayGetAsSeries(MABuffer));
//---
   ma_handle=iMA(Symbol(),TimeFrame,period,shift,smootMode,price);
   EventSetTimer(1);
   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[])
  {
//--- check if all data calculated
   if(BarsCalculated(ma_handle)<rates_total) return(0);
//--- we can copy not all data
   //int to_copy;
   if(prev_calculated>rates_total || prev_calculated<=0) to_copy=rates_total;
   else
     {
      to_copy=rates_total-prev_calculated;
      //--- last value is always copied
      to_copy++;
     }
//--- try to copy
  
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   CopyBuffer(ma_handle,0,0,to_copy,MABuffer);
   Print("Таймер");
  }
//+------------------------------------------------------------------+