[¡Archivo!] Escribiré cualquier experto o indicador gratis. - página 7

 
Buenas tardes...

Hay un pavo así
//+------------------------------------------------------------------+
//| Tick_on_Chart.mq4 ||
//| Copyright © 2005, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp.
#enlace de propiedad "http://www.metaquotes.net"

#property indicador_separar_ventana
#property indicator_buffers 2
#property indicator_color1 Cornsilk
#property indicator_color2 Rojo
//---- buffers
doble ExtMapBuffer1[];
doble ExtMapBuffer2[];
int tik,t;
double buf[];MaxB,MinB=1000;
extern int period=200;

//+------------------------------------------------------------------+
//| Función de inicialización de indicadores personalizada |
//+------------------------------------------------------------------+
int init()
{
//---- indicadores
SetIndexStyle(0,DRAW_SECTION);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_NONE);
SetIndexBuffer(1,ExtMapBuffer2);

//----
return(0);
}
//+------------------------------------------------------------------+
//| Función de desinicialización del indicador Custor |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Función de iteración de indicadores personalizada |
//+------------------------------------------------------------------+
int inicio()
{
int i,b;
//----
t++;
b=período;
ArrayResize(buf,b);

if(tik==0)
{
for(i=0;i<b;i++)
{
buf[i]=Oferta;
}
ExtMapBuffer2[0]=Bid+5*Punto;
ExtMapBuffer2[1]=Bid-5*Punto;
tik=1;
}
MaxB=0;MinB=1000;
for(i=b-1;i>0;i--)
{
buf[i]=buf[i-1];
if(MaxB<buf[i])MaxB=buf[i];
if(MinB>buf[i])MinB=buf[i];
}
buf[0]=Bid;
for(i=0;i<b;i++)
{
ExtMapBuffer1[i]=buf[i];
}
if(MathCeil(t/10)*10==t)
{
for(i=b;i<Barras;i++)
{
ExtMapBuffer1[i]=Bid;
}
ArrayInitialize(ExtMapBuffer2,Bid);
if(MaxB-Bid<5*Punto)ExtMapBuffer2[0]=Bid+5*Punto;
if(Oferta-MinB<5*Punto)ExtMapBuffer2[1]=Oferta-5*Punto;
//Imprimir(MaxB, "+",Oferta, "+",MinB);
}
//----
return(0);
}
//+------------------------------------------------------------------+

Sobre su base hacemos CCI... la misma garrapata...

Índice del Canal de Materias Primas
ORIGINAL
Cálculo
Encuentra un precio típico. Para ello, sume el precio máximo, mínimo y de cierre de cada barra y divida la suma por 3.
TP = (ALTA + BAJA + CIERRE) / 3
Calcule una media móvil simple de n períodos de los precios típicos.
SMA (TP, N) = SUMA (TP, N) / N
Reste el SMA(TP, N) resultante de los precios TP típicos de cada uno de los n períodos anteriores.
D = TP - SMA(TP, N)
4. Calcule la media móvil simple de n períodos de los valores absolutos de D
SMA (D, N) = SUMA (D, N) / N
5) Multiplicar SMA (D, N) por 0,015
M = SMA (D, N) * 0,015
6. dividir M entre D
CCI = M / D
donde:
ALTO - precio máximo de la barra;
LOW - precio mínimo de la barra;
CLOSE - precio de cierre;
SMA - media móvil simple;
SUM - suma;
N - número de períodos utilizados para el cálculo.
A saber... punto por punto... lo que tenemos que... construir


1) Encuentre un precio típico. Para ello, sume el precio máximo, mínimo y de cierre de cada barra y divida la suma por 3.
TP = (ALTA + BAJA + CIERRE) / 3
Como no hay HIGH y LOW en los ticks, simplemente tomamos el valor del precio en el tick

2) Calcular una media móvil simple de n períodos
SMA (TP, N) = SUMA (TP, N) / N
Calcule la media móvil simple de n periodos de los precios de #1
3) Reste el SMA(TP, N) resultante de los precios TP típicos de cada uno de los n períodos anteriores.
D = TP - SMA(TP, N)
Reste la SMA resultante (#2) de (#1) de cada uno de los n periodos anteriores.

4) Calcular la media móvil simple de n periodos de los valores absolutos D
SMA (D, N) = SUMA (D, N) / N

Así es como lo hacemos.
5) Multiplicar el SMA (D, N) obtenido por 0,015
M = SMA (D, N) * 0,015
Así es como lo hacemos...
6) Dividir M por D
CCI = M / D
Así es como lo hacemos...
AHORA EN EL PROPÓSITO ... dibujo de los TdR (espero haberlo descrito claramente arriba)...
Dibujando el inductor TODO lo descrito anteriormente ....
ADEMÁS...
En los ajustes del indicador (PARÁMETROS DE ENTRADA)... haga estos parámetros ajustables... (indicaré los añadidos con explicaciones)
1) Especifique el período de CCI (todo está claro aquí)
Especifique "Período CCI" en los ajustes.
2) Especificar el valor (0,015) con la posibilidad de cambiarlo ... (no afecta a nada en particular - pero por comodidad ...)
En los ajustes especifica "Znach".

3) Hagamos "Alertas"...
TODAS las "Alertas" con posibilidad de activar (Verdadero) y desactivar (Falso)
TODOS los "Avisos" con posibilidad de señal sonora (configurable - por lo que puede ser on/off)

3.1) INDJUNCTION = 0 (nivel = NULL)
Poner en "Uroven0".

3.2) Intersección de todos los valores de INDUCLE = cualquier consigna... (nivel)
Por ejemplo (nivel = 100) o (nivel = -35) con una POSIBLE capacidad de cambiar... (nivel)... para producir una señal...
INSTALADO PARA valores en + y valores en -
con la posibilidad de activarlas (True) y desactivarlas (False) SIEMPRE
En los ajustes se establece como "Uroven+".
En los ajustes indique "Uroven-".
ADEMÁS... En los ajustes del indicador (COLORES) = hacer posible el cambio de colores,
cualquiera de los parámetros correspondientes.
ahora queremos obtener una vista adecuada (gráfica) del indicador dado
EJEMPLO en la Fig.(luego las explicaciones)...

1) Divida cada nuevo minuto con una línea vertical (roja en la imagen)
2) Imprime el tiempo en hora:min. En la apertura de la BARRA actual (o la CORRIENTE actual).

Así, si se ha perdido un minuto, en lugar de las 07:06 serán las 07:09, por ejemplo.
AHORA las adiciones deseadas ...(si es posible)

1) (primero y último... )))))))) posibilidad de fijar MA por valores ya recibidos... (ver fig.) Espero que todo esté claro...

Y de nuevo con la posibilidad de elegir...
1.1) PERÍODO de una MA determinada
1.2) color de la MA dada
1,3) y la configuración de "Alertas" por la intersección del nivel=0 de esta MA
1.4) y también por separado para МА en las intersecciones de niveles (por ejemplo, +200 y -50) ALERTA
 
Buenas tardes...

Hay un pavo así
//+------------------------------------------------------------------+
//| Tick_on_Chart.mq4 ||
//| Copyright © 2005, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp.
#enlace de propiedad "http://www.metaquotes.net"

#property indicador_separar_ventana
#property indicator_buffers 2
#property indicator_color1 Cornsilk
#property indicator_color2 Rojo
//---- buffers
doble ExtMapBuffer1[];
doble ExtMapBuffer2[];
int tik,t;
double buf[];MaxB,MinB=1000;
extern int period=200;

//+------------------------------------------------------------------+
//| Función de inicialización de indicadores personalizada |
//+------------------------------------------------------------------+
int init()
{
//---- indicadores
SetIndexStyle(0,DRAW_SECTION);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_NONE);
SetIndexBuffer(1,ExtMapBuffer2);

//----
return(0);
}
//+------------------------------------------------------------------+
//| Función de desinicialización del indicador Custor |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Función de iteración de indicadores personalizada |
//+------------------------------------------------------------------+
int inicio()
{
int i,b;
//----
t++;
b=período;
ArrayResize(buf,b);

if(tik==0)
{
for(i=0;i<b;i++)
{
buf[i]=Oferta;
}
ExtMapBuffer2[0]=Bid+5*Punto;
ExtMapBuffer2[1]=Bid-5*Punto;
tik=1;
}
MaxB=0;MinB=1000;
for(i=b-1;i>0;i--)
{
buf[i]=buf[i-1];
if(MaxB<buf[i])MaxB=buf[i];
if(MinB>buf[i])MinB=buf[i];
}
buf[0]=Bid;
for(i=0;i<b;i++)
{
ExtMapBuffer1[i]=buf[i];
}
if(MathCeil(t/10)*10==t)
{
for(i=b;i<Barras;i++)
{
ExtMapBuffer1[i]=Bid;
}
ArrayInitialize(ExtMapBuffer2,Bid);
if(MaxB-Bid<5*Punto)ExtMapBuffer2[0]=Bid+5*Punto;
if(Oferta-MinB<5*Punto)ExtMapBuffer2[1]=Oferta-5*Punto;
//Imprimir(MaxB, "+",Oferta, "+",MinB);
}
//----
return(0);
}
//+------------------------------------------------------------------+

Sobre su base hacemos CCI... la misma garrapata...

Índice del Canal de Materias Primas
ORIGINAL
Cálculo
Encuentra un precio típico. Para ello, sume el precio máximo, mínimo y de cierre de cada barra y divida la suma por 3.
TP = (ALTA + BAJA + CIERRE) / 3
Calcule una media móvil simple de n períodos de los precios típicos.
SMA (TP, N) = SUMA (TP, N) / N
Reste el SMA(TP, N) resultante de los precios TP típicos de cada uno de los n períodos anteriores.
D = TP - SMA(TP, N)
4. Calcule la media móvil simple de n períodos de los valores absolutos de D
SMA (D, N) = SUMA (D, N) / N
5) Multiplicar SMA (D, N) por 0,015
M = SMA (D, N) * 0,015
6. dividir M entre D
CCI = M / D
donde:
ALTO - precio máximo de la barra;
LOW - precio mínimo de la barra;
CLOSE - precio de cierre;
SMA - media móvil simple;
SUM - suma;
N - número de períodos utilizados para el cálculo.
A saber... punto por punto... lo que hay que hacer


1) Encuentre un precio típico. Para ello, sume el precio máximo, mínimo y de cierre de cada barra y divida la suma por 3.
TP = (ALTA + BAJA + CIERRE) / 3
Como no hay HIGH y LOW en los ticks, simplemente tomamos el valor del precio en el tick

2) Calcular una media móvil simple de n períodos
SMA (TP, N) = SUMA (TP, N) / N
Calcule la media móvil simple de n periodos de los precios de #1
3) Reste el SMA(TP, N) resultante de los precios TP típicos de cada uno de los n períodos anteriores.
D = TP - SMA(TP, N)
Reste la SMA resultante (#2) de (#1) de cada uno de los n períodos anteriores.

4) Calcular la media móvil simple de n periodos de los valores absolutos D
SMA (D, N) = SUMA (D, N) / N

Así es como lo hacemos.
5) Multiplicar el SMA (D, N) obtenido por 0,015
M = SMA (D, N) * 0,015
Así es como lo hacemos...
6) Dividir M por D
CCI = M / D
Así es como lo hacemos...
AHORA EN EL PROPÓSITO ... dibujo de los TdR (espero haberlo descrito claramente arriba)...
Dibujando el inductor TODO lo descrito anteriormente ....
ADEMÁS...
En los ajustes del indicador (PARÁMETROS DE ENTRADA)... haga estos parámetros ajustables... (indicaré los añadidos con explicaciones)
1) Especifique el período de CCI (todo está claro aquí)
Especifique "Período CCI" en los ajustes.
2) Especificar el valor (0,015) con la posibilidad de cambiarlo ... (no afecta a nada en particular - pero por comodidad ...)
En los ajustes especifique "Znach".

3) Hagamos "Alertas"...
TODAS las "Alertas" con posibilidad de activar (Verdadero) y desactivar (Falso)
TODOS los "Avisos" con posibilidad de señal sonora (configurable - por lo que puede ser on/off)

3.1) INDJUNCTION = 0 (nivel = NULL)
Poner en "Uroven0".

3.2) Intersección de todos los valores de INDUCLE = cualquier consigna... (nivel)
Por ejemplo (nivel = 100) o (nivel = -35) con una POSIBLE capacidad de cambiar... (nivel)... para producir una señal...
INSTALADO PARA valores en + y valores en -
con la posibilidad de activarlas (True) y desactivarlas (False) SIEMPRE
En los ajustes se establece como "Uroven+".
En los ajustes indique "Uroven-".
ADEMÁS... En los ajustes del indicador (COLORES) = hacer posible el cambio de colores,
cualquiera de los parámetros correspondientes.
ahora queremos obtener una vista adecuada (gráfica) del indicador dado
EJEMPLO en la Fig.(luego las explicaciones)...

1) Divida cada nuevo minuto con una línea vertical (roja en la imagen)
2) Imprime el tiempo en hora:min. En la apertura de la BARRA actual (o la CORRIENTE actual).

Así, si se ha perdido un minuto, en lugar de las 07:06 serán las 07:09, por ejemplo.
AHORA las adiciones deseadas ...(si es posible)

1) (primero y último... )))))))) posibilidad de fijar MA por valores ya recibidos... (ver fig.) Espero que todo esté claro...

Y de nuevo con la posibilidad de elegir...
1.1) PERÍODO de una MA determinada
1.2) color de la MA dada
1,3) y el ajuste de "Alertas" por la intersección de esta MA con el nivel=0
1,4) así como para los niveles de cruce de МА (por ejemplo, +200 y -50) por separado
 
arroz
 
Figura 2
 
20099 >> :
Figura 2.

Por alguna razón creo que has olvidado adjuntar una foto.

 

¡Querido Kubodel!

¿es posible hacer un EA de este indicador 'T3 TRIX (ROC de T6)'?

el amarillo cruza el azul hacia abajo - vender, hacia arriba - comprar
La operación se abre en la apertura de la vela que sigue al cruce
Puede que yo sea un poco programador, pero no tengo el cerebro para ello (((

como opción - la posición se cierra cuando el azul se mueve hacia abajo o hacia arriba, es decir, al cambiar de dirección

listo para pagar 10 Usd.

 
Kubodel >> :

Bigboom, envía la producción a integrum-perm@mail.ru. Mientras no lo vea no puedo decir nada exacto.

¡Egay! ¡Bravo por Kubodel!

Tengo mi experto :)

La implementación técnica es estupenda, exactamente como la necesitaba.

Voy a probarlo durante un par de semanas en demo y luego quizás le dé mi cuenta al compañero electrónico.

>> Muchas gracias.

 

¡¡¡Buenas tardes!!!

¡¡¡Qué lugar tan interesante tienes aquí!!!

¿Aceptas a los tontos en tus filas? :)

 
Kubodel >> :

Por alguna razón creo que has olvidado adjuntar una foto.

 

de nuevo no quiere... adjuntar por qué no lo sé...
Tal vez un correo electrónico privado... o una cuenta de correo electrónico...