Ayuda a la codificación - página 227

 
Air92:
Hola Mladen.Usted hizo la versión este indicador. Quiero pedir a hacer aquí por separado media móvil, como en el ejemplo de otro indicador si es posible. Gracias.

Air92

No se puede hacer (ya 8 buffers de dibujo utilizados - metatrader 4 no permite más de 8 buffers de dibujo)

 
mladen:
Air92 No se puede hacer (ya 8 buffers de dibujo utilizados - metatrader 4 no permite más de 8 buffers de dibujo)

Ok,Mladen.He entendido.Gracias

 

Hola Mladen,

Podría por favor convertir este MACD MTF indi en un EA, comprar cuando macd es verde en cualquier 3 tf, vender cuando cualquier tres rojo. cerrar el comercio y abrir nuevo en la tendencia inversa.

ajustes necesarios: rastro, breakeven, sloss, entrada en barra abierta o cerrada, número mágico y tamaño de lote. ¡En tf inferior funciona bien! Lo agradeceré. Gracias

Archivos adjuntos:
 

Hola, he encontrado algo interesante para todos nosotros en el foro.Hay este software que puede ayudar a predecir la dirección de la próxima vela.He estado trabajando en esta secuencia de comandos mt4 para agregar la volatilidad a la misma, pero no podía.Quiero también hacer la alerta para venir al cierre de la vela actual y nos dicen la dirección de la próxima vela a punto de formar.La volatilidad nos dirá el tamaño o hasta dónde se estirará el precio.el principio no era mío.lo copié de algún sitio.el script está funcionando realmente.quiero que un programador como Codergurus y Mladin por favor miren este script.no está funcionando realmente bien ahora.ya que la alerta sigue cosechando y repintando.

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 Lime

#property indicator_color2 Red

#property indicator_width1 4

#property indicador_ancho2 4

extern bool Alerts = TRUE;

double CrossUp[];

double CrossDown[];

bool CrossedUp = false

bool CrossedDown = false

int SignalLabeled = 0; // 0: estado inicial; 1: arriba; 2: abajo.

int upalert=false,downalert=false;

//+------------------------------------------------------------------+

//| Función de inicialización del indicador personalizada ||.

//+------------------------------------------------------------------+

int init()

{

//---- indicadores

SetIndexStyle(0,DRAW_ARROW, EMPTY);

SetIndexArrow(0,233);

SetIndexBuffer(0,CrossUp);

SetIndexStyle(1,DRAW_ARROW, EMPTY);

SetIndexArrow(1,234);

SetIndexBuffer(1,CrossDown);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Función de desinicialización del indicador personalizada ||

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Función de iteración del indicador personalizada ||

//+------------------------------------------------------------------+

int inicio(){

int límite,i,contador

double pnow;

double p1,p2,p3,p4,p5,p6,p7,p8,p9,p10;

double SOT,SOT1,SOT2,SOT3,SOT4,SOT5,SOT6,SOT7,SOT8,SOT9,SOT10

doble SOTAV10;

double SOTAV2;

double Rango, AvgRange;

int counted_bars=IndicatorCounted();

//---- comprobar posibles errores

if(counted_bars<0) return(-1);

//---- la última barra contada se vuelve a contar

if(counted_bars>0) counted_bars--;

limit=Barras_contadas;

for(i = 0; i <= límite; i++) {

contador=i;

Rango=0;

AvgRange=0;

for (counter=i;counter<=i+12;counter++)

{

AvgRange=AvgRange+MathAbs(Alto[contador]-Bajo[contador]);

}

Range=AvgRange/10;

// precio actual Cierre y Apertura

double OpenPricenow = Open ;

double ClosePricenow = Cierre ;

double Volumenow = Volumen ;

// vela 1

double OpenPrice1 = Open ;

double ClosePrice1 = Cierre ;

double Volume1 = Volumen ;

// vela 2

double OpenPrice2 = Open ;

double PrecioCierre2 = Cierre ;

double Volume2 = Volumen ;

// vela 3

double OpenPrice3 = Open ;

double ClosePrice3 = Cierre ;

double Volume3 = Volumen ;

// vela 4

double OpenPrice4 = Open ;

double ClosePrice4 = Cierre ;

double Volume4 = Volumen ;

// vela 5

double OpenPrice5 = Open ;

double ClosePrice5 = Cierre ;

double Volume5 = Volumen ;

// vela 6

double OpenPrice6 = Open ;

double ClosePrice6 = Cierre ;

double Volume6=Volumen ;

// vela 7

double OpenPrice7 = Open ;

double ClosePrice7 = Cierre ;

double Volume7 = Volumen ;

// vela 8

double OpenPrice8 =Open ;

double ClosePrice8 =Cierre ;

double Volume8 =Volumen;

// vela 9

double OpenPrice9 = Open ;

double ClosePrice9 = Cierre ;

double Volume9 = Volumen ;

// vela 10

double OpenPrice10 =Apertura

double ClosePrice10=Cierre

double Volumen10=Volumen;

pnow =(PrecioCierreAhora - PrecioAbiertoAhora);

SOT = (pnow / Volumenow)*10000;

p1 = (PrecioCierre1 - PrecioAbierto1);

SOT1= (p1 / Volumen1) *10000;

p2 = (PrecioCierre2 - PrecioAbierto2);

SOT2 =(p2/ Volumen2) *10000;

p3 =(PrecioCierre3 - PrecioAbierto3);

SOT3 =(p3/Volumen3)*10000;

p4=(PrecioCierre4 - PrecioAbierto4);

SOT4=(p4/Volume4)*10000;

p5=(PrecioCierre5 - PrecioAbierto5);

SOT5=(p5/Volumen5)*10000;

p6=(PrecioCierre6 - PrecioAbierto6);

SOT6 =(p6/Volumen6)*10000;

p7=(PrecioCierre7 - PrecioAbierto7);

SOT7 =(p7 / Volumen7)*10000;

p8 =(PrecioCierre8 - PrecioAbierto8);

SOT8=(p8/Volume8)*10000;

p9 =(PrecioCierre9-PrecioAbierto9);

SOT9 =(p9/Volumen9)*10000;

p10 =(PrecioCierre10-PrecioAbierto10);

SOT10 = (p10/Volumen10)*10000;

SOTAV10=(SOT1+SOT2+SOT3+SOT4+SOT5+SOT6+SOT7+SOT8+SOT9+SOT10/100*10);

SOTAV2 = (SOTAV10*2);

si ((SOT>SOTAV2)&&(PrecioCierre1<PrecioAbierto1)&&(PrecioCierreAhora<PrecioAbierto1)){

CrossedUp = true;

CrossedDown= false;

}

si no

if((SOT>SOTAV2)&&(ClosePrice1>OpenPrice1)&&(ClosePricenow>OpenPricenow)){

CrossedUp = false;

CrossedDown = true;

}

if((CrossedUp==true)&&(SignalLabeled!=1)){

CrossUp=Rango bajo*1,3;

if(i<=2 && Alerts && !upalert)

{

Alert (Symbol()," ",Period()," M Price UP ");

//EnviarMail("Comprar "+Símbolo(),"");

upalert=true;

downalert=false;

}

SignalLabeled = 1;

}

if ((CrossedDown == true) && (SignalLabeled != 2)) {

CrossDown = High + Range*1.3;

if(i<=2 && Alerts && !downalert)

{

Alert (Symbol()," ",Period(), "M Price DOWN ");

//EnviarMail("Vender "+Símbolo(),"");

downalert=true;

upalert=false;

}

SignalLabeled = 2;

}

}

return(0);

}

Este es el principio que guía este software:

Velocidad de negociación = (Cambio de Precio / Volumen) por unidad de tiempo. = (Apertura-Cierre)/volumen de velas en el período predeterminado.

Si el SoT de la vela actual es mayor que el doble del SoT promedio del período seleccionado, la siguiente vela estará en la misma dirección de la vela actual. (Nuestras señales se pueden dar al cierre de la vela actual).

Precaución: Si la vela actual es seguida por 2-3 velas del mismo color, no se dará ninguna señal. Como ejemplo: Fecha E/J(Open) E/J(High) E/J(Low) E/J(Close) Volume(E/J) Direction Price change Speed 11/06/2012 03:56:00 102.456 102.456 102.429 102.429 96 DOWN -0.027 2.81 11/06/2012 03:57:00 102.429 102.429 102.398 102.413 158 DOWN -0.016 1.01 como la velocidad es mayor que 1.70 (media de 14 velas), predice que la próxima vela será bajista. Este indicador se puede hacer parecer a un velocímetro o simplemente puede aparecer el número con la señal de la vela. Creo que esto ayudará mucho a tomar decisiones correctas. La teoría detrás de esto es que cada subida o bajada necesita una fuerza o inercia mayor que la existente, así que tan pronto como veamos o captemos dicha fuerza extra, podremos determinar la siguiente dirección de la vela y los valores también.

......................................................................................................................

 
Mastercash:
Hola, he encontrado algo interesante para todos nosotros en el foro.hay este software que puede ayudar a predecir la dirección de la próxima vela.he estado trabajando en este script mt4 para añadir la volatilidad a la misma, pero no pudo.quiero también hacer la alerta para venir en el cierre de la vela actual y nos dicen la dirección de la próxima vela a punto de formar.La volatilidad nos dirá el tamaño o lo lejos que el precio se stretch.the principio no era mine.i copiarlo de somewhere.the secuencia de comandos es realmente working.i quiere un programador como Codergurus y Mladin a mirar por favor en este script.It no está funcionando realmente bien now.as la alerta seguir cosechando y repainting.

#property ventana_del_gráfico

#propiedad indicator_buffers 2

#property indicador_color1 Cal

#propiedad indicador_color2 Rojo

#propiedad indicator_width1 4

#property indicador_ancho2 4

extern bool Alerts = TRUE;

double CrossUp[];

double CrossDown[];

bool CrossedUp = false

bool CrossedDown = false

int SignalLabeled = 0; // 0: estado inicial; 1: arriba; 2: abajo.

int upalert=false,downalert=false;

//+------------------------------------------------------------------+

//| Función de inicialización del indicador personalizada ||.

//+------------------------------------------------------------------+

int init()

{

//---- indicadores

SetIndexStyle(0,DRAW_ARROW, EMPTY);

SetIndexArrow(0,233);

SetIndexBuffer(0,CrossUp);

SetIndexStyle(1,DRAW_ARROW, EMPTY);

SetIndexArrow(1,234);

SetIndexBuffer(1,CrossDown);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Función de desinicialización del indicador personalizada ||

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Función de iteración del indicador personalizada ||

//+------------------------------------------------------------------+

int inicio(){

int límite,i,contador

double pnow;

double p1,p2,p3,p4,p5,p6,p7,p8,p9,p10;

double SOT,SOT1,SOT2,SOT3,SOT4,SOT5,SOT6,SOT7,SOT8,SOT9,SOT10

doble SOTAV10;

double SOTAV2;

double Rango, AvgRange;

int counted_bars=IndicatorCounted();

//---- comprobar posibles errores

if(counted_bars<0) return(-1);

//---- la última barra contada se vuelve a contar

if(counted_bars>0) counted_bars--;

limit=Barras_contadas;

for(i = 0; i <= límite; i++) {

contador=i;

Rango=0;

AvgRange=0;

for (counter=i;counter<=i+12;counter++)

{

AvgRange=AvgRange+MathAbs(Alto[contador]-Bajo[contador]);

}

Range=AvgRange/10;

// precio actual Cierre y Apertura

double OpenPricenow = Open ;

double ClosePricenow = Cierre ;

double Volumenow = Volumen ;

// vela 1

double OpenPrice1 = Open ;

double ClosePrice1 = Cierre ;

double Volume1 = Volumen ;

// vela 2

double OpenPrice2 = Open ;

double PrecioCierre2 = Cierre ;

double Volume2 = Volumen ;

// vela 3

double OpenPrice3 = Open ;

double ClosePrice3 = Cierre ;

double Volume3 = Volumen ;

// vela 4

double OpenPrice4 = Open ;

double ClosePrice4 = Cierre ;

double Volume4 = Volumen ;

// vela 5

double OpenPrice5 = Open ;

double ClosePrice5 = Cierre ;

double Volume5 = Volumen ;

// vela 6

double OpenPrice6 = Open ;

double ClosePrice6 = Cierre ;

double Volume6=Volumen ;

// vela 7

double OpenPrice7 = Open ;

double ClosePrice7 = Cierre ;

double Volume7 = Volumen ;

// vela 8

double OpenPrice8 =Open ;

double ClosePrice8 =Cierre ;

double Volume8 =Volumen;

// vela 9

double OpenPrice9 = Open ;

double ClosePrice9 = Cierre ;

double Volume9 = Volumen ;

// vela 10

double OpenPrice10 =Apertura

double ClosePrice10=Cierre

double Volumen10=Volumen;

pnow =(PrecioCierreAhora - PrecioAbiertoAhora);

SOT = (pnow / Volumenow)*10000;

p1 = (PrecioCierre1 - PrecioAbierto1);

SOT1= (p1 / Volumen1) *10000;

p2 = (PrecioCierre2 - PrecioAbierto2);

SOT2 =(p2/ Volumen2) *10000;

p3 =(PrecioCierre3 - PrecioAbierto3);

SOT3 =(p3/Volumen3)*10000;

p4=(PrecioCierre4 - PrecioAbierto4);

SOT4=(p4/Volume4)*10000;

p5=(PrecioCierre5 - PrecioAbierto5);

SOT5=(p5/Volumen5)*10000;

p6=(PrecioCierre6 - PrecioAbierto6);

SOT6 =(p6/Volumen6)*10000;

p7=(PrecioCierre7 - PrecioAbierto7);

SOT7 =(p7 / Volumen7)*10000;

p8 =(PrecioCierre8 - PrecioAbierto8);

SOT8=(p8/Volume8)*10000;

p9 =(PrecioCierre9-PrecioAbierto9);

SOT9 =(p9/Volumen9)*10000;

p10 =(PrecioCierre10-PrecioAbierto10);

SOT10 = (p10/Volumen10)*10000;

SOTAV10=(SOT1+SOT2+SOT3+SOT4+SOT5+SOT6+SOT7+SOT8+SOT9+SOT10/100*10);

SOTAV2 = (SOTAV10*2);

si ((SOT>SOTAV2)&&(PrecioCierre1<PrecioAbierto1)&&(PrecioCierreAhora<PrecioAbierto1)){

CrossedUp = true;

CrossedDown= false;

}

si no

if((SOT>SOTAV2)&&(ClosePrice1>OpenPrice1)&&(ClosePricenow>OpenPricenow)){

CrossedUp = false;

CrossedDown = true;

}

if((CrossedUp==true)&&(SignalLabeled!=1)){

CrossUp=Rango bajo*1,3;

if(i<=2 && Alerts && !upalert)

{

Alert (Symbol()," ",Period()," M Price UP ");

//EnviarMail("Comprar "+Símbolo(),"");

upalert=true;

downalert=false;

}

SignalLabeled = 1;

}

if ((CrossedDown == true) && (SignalLabeled != 2)) {

CrossDown = High + Range*1.3;

if(i<=2 && Alerts && !downalert)

{

Alert (Symbol()," ",Period(), "M Price DOWN ");

//EnviarMail("Vender "+Símbolo(),"");

downalert=true;

upalert=false;

}

SignalLabeled = 2;

}

}

return(0);

}

Este es el principio que guía este software:

Velocidad de negociación = (Cambio de Precio / Volumen) por unidad de tiempo. = (Apertura-Cierre)/volumen de velas en el período predeterminado.

Si el SoT de la vela actual es mayor que el doble del SoT promedio del período seleccionado, la siguiente vela estará en la misma dirección de la vela actual. (Nuestras señales se pueden dar al cierre de la vela actual).

Precaución: Si la vela actual es seguida por 2-3 velas del mismo color, no se dará ninguna señal. Como ejemplo: Fecha E/J(Open) E/J(High) E/J(Low) E/J(Close) Volume(E/J) Direction Price change Speed 11/06/2012 03:56:00 102.456 102.456 102.429 102.429 96 DOWN -0.027 2.81 11/06/2012 03:57:00 102.429 102.429 102.398 102.413 158 DOWN -0.016 1.01 como la velocidad es mayor que 1.70 (media de 14 velas), predice que la próxima vela será bajista. Este indicador se puede hacer parecer a un velocímetro o simplemente puede aparecer el número con la señal de la vela. Creo que esto ayudará mucho a tomar decisiones correctas. La teoría detrás de esto es que cada subida o bajada necesita una fuerza o inercia mayor que la fuerza existente, así que tan pronto como veamos o capturemos tal fuerza extra, podemos determinar la siguiente dirección de la vela y los valores también.

......................................................................................................................

Mastercash

Por lo que veo necesitará algunas pruebas en tiempo de ejecución antes de hacer nada en el código. En cuanto se abra el mercado veremos que se puede hacer

 

Hola

Alguien podría ayudarme a añadir algo de código a este script.jarroo_level_picker.mq4

Este script dibuja la línea en la apertura o cierre de la vela depende si la dejamos caer debajo o debajo de la mitad de la vela y me gustaría que también dibujara una flechita debajo o debajo de esa vela para luego ver en qué vela se usó

Gracias de antemano.

Archivos adjuntos:
 
Andrewsurfer:
Hola

Alguien podría ayudarme a añadir algo de código a este script.jarroo_level_picker.mq4

Este script dibuja una línea en la apertura o cierre de la vela depende si la dejamos caer debajo o debajo de la mitad de la vela y me gustaría que también dibujara una flechita debajo o debajo de esa vela para luego ver en qué vela se usó

Gracias de antemano.

Andrewsurfer

Prueba esta versión. No añade una flecha pero añade una barra del mismo color que el color de la línea en la barra que vela se utilizó

Archivos adjuntos:
 
mladen:
Andrewsurfer Pruebe esta versión. No añade una flecha, pero añade una barra del mismo color que el color de la línea en la barra que la vela se utilizó

Lo siento pero no veo ningún cambio. Sigue siendo sólo la línea azul sin ninguna otra señal.

 
Andrewsurfer:
Lo siento pero no veo ningún cambio. Sigue siendo sólo la línea azul sin ninguna otra señal.

Hay una línea extra (como en la imagen) y se crea en la barra donde se suelta el script en

Archivos adjuntos:
v_line.gif  36 kb
 
mladen:
Hay una línea extra (como en la imagen) y se crea en la barra donde se suelta el script en

Tenía una configuración errónea del gráfico de MT4 en primer plano y ahora está funcionando.

Muchas gracias.