Discusión sobre el artículo "Indicador NRTR y módulos comerciales en su base para el Asistente de MQL5"
Publicado el artículo Indicador NRTR y módulos comerciales basados en él para MQL5 Wizard:
Autor: Dmitrii Troshin
No entiendo cómo acceder a través de iCustom ... por favor explique
debería haber algo como
double iCustom (
stringsymbol, // nombre del símbolo
int timeframe, // timeframe
stringname, // carpeta/nombre del indicador
... // lista de parámetros de entrada del indicador
int mode, // fuente de datos
int shift// desplazamiento
);
que es específicamente en nuestro caso
//+------------------------------------------------------------------+ //| NRTRvolatile| //+------------------------------------------------------------------+ //iBufferNumber //0 //1 //2 - señal arriba //3 - señal abajo double indNRTRvolatile(string sSymbol=NULL, int tf=PERIOD_M5, int period=12, //periodo dinámico double K=1, /factor de escala int iBufferNumber=0, int iShift=0) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); double handle=iCustom(sSymbol,timeframe,"NRTRvolatile",period,K,iBufferNumber,iShift); if(handle<0) { Print("Objeto NRTRvolatile no creado: Error ",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,iShift)); }
sólo da algunas tonterías, es decir, los precios actuales si se refiere a la memoria intermedia 2 o 3
No entiendo cómo acceder a través de iCustom ... por favor explique
Los buffers 2,3 contienen señales que se actualizan sólo en el momento del cambio de tendencia.
Soporte/Resistencia están en los buffers 0,1 - estas son las líneas que vemos como líneas
CopyBuffer() - tiene tres sobrecargas, pero ninguna de ellas tiene tres parámetros.
Una variante del código para obtener los valores de los buffers
void OnStart() { double arr[]; int handle =iCustom(Symbol(),0,"NRTRvolatile",12,1); CopyBuffer(handle,0,0,1,arr); Print("Canal Bajo",arr[0]); CopyBuffer(handle,1,0,1,arr); Print("Canal Superior",arr[0]); CopyBuffer(handle,2,0,1,arr); Print("Señal arriba.",arr[0]); CopyBuffer(handle,3,0,1,arr); Print("Señal Abajo".,arr[0]); }
Este es el script
Los buffers 2,3 contienen señales que se actualizan sólo en el momento del cambio de tendencia.
Soporte/Resistencia están en los buffers 0,1 - estas son las líneas que vemos como líneas
CopyBuffer() - tiene tres sobrecargas, pero ninguna de ellas tiene tres parámetros.
Una variante del código para obtener los valores de los buffers
Esto es un script
Sí, ahora está más claro
sobre CopyBuffer - es de la librería de compatibilidad mql4, más precisamente de initmql4__1.mqh.
double CopyBufferMQL4(int handle,int index,int shift) { double buf[]; switch(index) { case 0: if(CopyBuffer(handle,0,shift,1,buf)>0) return(buf[0]); break; case 1: if(CopyBuffer(handle,1,shift,1,buf)>0) return(buf[0]); break; case 2: if(CopyBuffer(handle,2,shift,1,buf)>0) return(buf[0]); break; case 3: if(CopyBuffer(handle,3,shift,1,buf)>0) return(buf[0]); break; case 4: if(CopyBuffer(handle,4,shift,1,buf)>0) return(buf[0]); break; default: break; } return(EMPTY_VALUE); }
probablemente sí
//+------------------------------------------------------------------+ //| NRTRvolatile| //+------------------------------------------------------------------+ //iBufferNumber //0 //1 //2 - señal arriba //3 - señal abajo double indNRTRvolatile(string sSymbol=NULL, int tf=PERIOD_M5, int period=12, //periodo dinámico double K=1, /factor de escala int iBufferNumber=0, int iShift=0) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); double handle=iCustom(sSymbol,timeframe,"NRTRvolatile",period,K); if(handle<0) { Print("Objeto NRTRvolatile no creado: Error ",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,iBufferNumber,iShift));}
¿Es posible actualizar NRTRvolatile para que aparezca un cuadro de mensaje cuando se añada una flecha?
¿Es posible actualizar NRTRvolatile para que aparezca un cuadro de mensaje al añadir una flecha?
Quizás en las funciones LongCondition y ShortCondition.
int SignalNRTR::LongCondition(void) { int idx =StartIndex(); if(UpSignal(idx)) { Alert"Text"; return 100; } else return 0; }
añadir algo como Alerta"Texto". No sé si funcionará. El caso es que ya no tengo este código en mi ordenador. Todo lo que tenía el año pasado lo guardé en el pasado:) Así que no puedo probarlo. Y todavía tengo la Nochevieja sonando en mi cabeza :)
En el propio indicador, en algún lugar por aquí
// cambios de tendencia if(trend>0) Buff_Up[i]=value; if(trend<0) Buff_Dn[i]=value; if(trend_prev<0 && trend>0) { Alert("Text"); Sign_Up[i]=value; Buff_Up[i]=0.0; } if(trend_prev>0 && trend<0) { Alert("Text"); Sign_Dn[i]=value; Buff_Dn[i]=0.0; }
La ruta a los archivos de inclusión debe corregirse a
#include <Expert\\ExpertSignal.mqh>
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Indicador NRTR y módulos comerciales en su base para el Asistente de MQL5:
En este artículo se describe el indicador NRTR y el sistema comercial creado en su base. Para este propósito, se crea el módulo de las señales comerciales a través de las cuales se crean las estrategias basadas en las combinaciones del NRTR e indicadores comerciales que confirman la tendencia.
El código completo del indicador se encuentra en el archivo adjunto NRTR.mq5.
Veamos el trabajo del indicador, colocando en el gráfico dos NRTR con diferentes parámetros: el primero con el período 12 y el ancho 0,1%; el segundo con el período 120 y el ancho 0,2%.
Autor: Dmitrii Troshin