Busco alma caritativa que me cree dos buffers

Responder
Avatar de Usuario
landorra
Mensajes: 109
Registrado: 07 Abr 2019 20:53

Busco alma caritativa que me cree dos buffers

Mensaje por landorra »

Me gustaría abusar de la generosidad de los foreros presentes para suplicar una (espero) pequeña ayuda en el indicador que anexo en este hilo. Ya adelanto que está en ruso. :?

Lo que hace es dibujar dos líneas similares a lo que hace el Envelopes, però usando fibos. La línea superior se llama Band UP, y la inferior Band LO. Me gustaría que alguien pudiese crear un par de buffers con los que poder capturar esos valores, ya que los necesito para un EA que estoy planteando.

Espro que quien tenga a bien aceptar mi ayuda reciba en la vida 1000 veces la gratitud que yo le daré. :-D
Adjuntos
tma-cg-mtf-indicator.mq4
(35.15 KiB) Descargado 128 veces

Enseño a crear bots de forex sin necesidad de aprender lenguaje mql4/5.
¿Interesado? Visita my web https://www.theandorraninvestor.eu/es
sfriendsm2
Mensajes: 36
Registrado: 24 Jun 2020 17:20

Re: Busco alma caritativa que me cree dos buffers

Mensaje por sfriendsm2 »

Hola landorra,

la verdad es que no hay nada que hacer, ya que los buffers ya están creados, este es el código donde se crean:

SetIndexBuffer(1,upBuffer); SetIndexStyle(1,BNT); //SetIndexDrawBegin(1,HalfLength);
SetIndexBuffer(2,dnBuffer); SetIndexStyle(2,BNT); //SetIndexDrawBegin(2,HalfLength);

Lo que tienes que hacer para acceder a ellos es seleccionar la salida 1 y 2 de dicho indicador, cuando lo llames desde el EA.

Sl2 y suerte.
Avatar de Usuario
Karachiento
Mensajes: 68
Registrado: 17 Ago 2018 23:03

Re: Busco alma caritativa que me cree dos buffers

Mensaje por Karachiento »

Creo que landorra no se refiere a crearlos, si no a extraer los valores de esos buffers. Yo no uso mql4 y no tengo instalado el editor (desconozco si sirve el mismo que para mql5). Para extraer los valores de estos buffers puedes usar la función iCustom()

https://docs.mql4.com/indicators/icustom

Saludos
Avatar de Usuario
landorra
Mensajes: 109
Registrado: 07 Abr 2019 20:53

Re: Busco alma caritativa que me cree dos buffers

Mensaje por landorra »

Karachiento escribió: 25 Jun 2020 02:17 Creo que landorra no se refiere a crearlos, si no a extraer los valores de esos buffers. Yo no uso mql4 y no tengo instalado el editor (desconozco si sirve el mismo que para mql5). Para extraer los valores de estos buffers puedes usar la función iCustom()

https://docs.mql4.com/indicators/icustom

Saludos
Exactamente. A eso mismo me refiero. Se nota que no soy programador, ja, ja. :D ¿Y te importaría explicarme cómo debería añadir esa función y dónde hacerlo, por favor? Lo cierto es que sólo sé abrir archivos con el metaeditor, pero tocarlos es otra historia. :oops:

Enseño a crear bots de forex sin necesidad de aprender lenguaje mql4/5.
¿Interesado? Visita my web https://www.theandorraninvestor.eu/es
Avatar de Usuario
Karachiento
Mensajes: 68
Registrado: 17 Ago 2018 23:03

Re: Busco alma caritativa que me cree dos buffers

Mensaje por Karachiento »

A la función la usas en tu ea, no necesitas modificar nada en el indicador. solo necesitas tener claro cuantos inputs necesita, cuantos buffers tiene y cual es cada uno.

En el ejemplo de la documentacion de mql4:

double val=iCustom(NULL,0,"SampleInd",13,1,0);

donde:
val: variable que contendrá el valor del buffer del indicador
NULL: si se trata del mismo símbolo del gráfico donde esta activo el ea
0: si el timeframe es el mismo que el gráfico donde esta activo el ea
"SampleInd": Nombre (o path si esta es otro directorio) del indicador que debe estar compilado y ubicado en terminal_directory\MQL4\Indicators\ directory.
13: es un parámetro input del indicador (por ejemplo, el periodo de una media móvil). si tiene 1 solo, se pondrá solo 1 valor. si el indicador tiene 3 inputs por ejemplo, van 3 valores (input1, input2, input3,)
1: es el indice el buffer del indicador que quieres copiar. si el indicador tiene un solo buffer va 0, si tiene mas, le especificas cual quieres (si hay dos buffers, especificas si quieres el 0 o el 1)
0: pides el valor del indicador para la vela actual. si quieres otro valor modificas ese numero

no te lo escribo por que la sintaxis en mql4 es distinta a mql5 y no la conozco.
espero haberte ayudado. saludos!

Avatar de Usuario
X-Trader
Administrador
Mensajes: 12781
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Busco alma caritativa que me cree dos buffers

Mensaje por X-Trader »

Hola Landorra, revisando tu indicador veo que en realidad tiene 7 buffers, que son los siguientes:

double tmBuffer[], upBuffer[], dnBuffer[];
double clrSEL[], clrBUY[]; double arrSEL[], arrBUY[];
double wuBuffer[], wdBuffer[], FLAG[];

Los dos buffers que te interesan son upBuffer[] y dnBuffer[], que ocupan

¿Cómo puedes llamarlos desde un EA? Fácil, usa esta sintaxis:

double UpBand = iCustom(NULL, 0, "tma-cg-mtf-indicator", 0, 24, 6, 1.618, FALSE, FALSE, 3, 2, 3, 0, 16776960, 55295, 3, 233, 234, 1, FALSE, 1, TRUE, TRUE, FALSE, FALSE, "alert2.wav", 1, 0);

double LowBand = iCustom(NULL, 0, "tma-cg-mtf-indicator", 0, 24, 6, 1.618, FALSE, FALSE, 3, 2, 3, 0, 16776960, 55295, 3, 233, 234, 1, FALSE, 1, TRUE, TRUE, FALSE, FALSE, "alert2.wav", 2, 0);

En la estructura anterior observa que:

- NULL representa el símbolo actual.
- 0 representa el timeframe actual
- El siguiente argumento es el nombre del indicador entre comillas (en azul)
- Lo que va después en verde es una lista con todos los parámetros del indicador.
- El parámetro que va en rojo hace referencia al nº de buffer al que quieres acceder dentro del indicador. Observa que upBuffer es el segundo buffer (por tanto, el 1 ya que empieza la numeración en 0), y dnBuffer es el tercero (por tanto, 2).
- Por último, el cero del final indica el shift del indicador (por defecto 0 para coger el último valor salvo que quieras tomar un valor retrasado)

Échale un ojo y pruébalo, a ver si te funciona.

Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Avatar de Usuario
landorra
Mensajes: 109
Registrado: 07 Abr 2019 20:53

Re: Busco alma caritativa que me cree dos buffers

Mensaje por landorra »

Genial. Gracias a ambos por vuestra ayuda. ;)

Enseño a crear bots de forex sin necesidad de aprender lenguaje mql4/5.
¿Interesado? Visita my web https://www.theandorraninvestor.eu/es
Avatar de Usuario
X-Trader
Administrador
Mensajes: 12781
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Busco alma caritativa que me cree dos buffers

Mensaje por X-Trader »

Al hilo de esto, estuve analizando el indicador y por desgracia repinta (ie, aunque la flecha la dibuja en una determinada vela, realmente la pinta unas velas después por lo que tu punto de entrada siempre es más tarde y generalmente a un precio peor del que aparentemente sería.

La buena noticia es que hay una versión que no repinta (aunque a cambio da muchas señales falsas) y también un EA basado en el indicador, los subo adjuntos a este mensaje.

Saludos,
X-Trader
Adjuntos
TMA+CG mladen NRP.ex4
(29.96 KiB) Descargado 106 veces
EA_TMA CG mladen never repaint(revF8).ex4
(463.75 KiB) Descargado 99 veces
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Indicadores”