Ayuda a la codificación - página 509

 
tfi_markets:
Hola Pro-Coders,

Me aparece la advertencia "compruebe la precedencia de los operadores para un posible error; utilice paréntesis para aclarar la precedencia"

if ((STC115)||(STC185)&&(Ask>emaFilter && ADXmain>25))

{

OpenBuy();

}

Parece que la declaración ..AND (Ask>emaFilter) también es ignorada por MT4.

¿Podría alguien aconsejarme?

¡Gracias de antemano!

probablemente deberías escribirlo así :

if (((STC115) | (STC185)) && (Ask>emaFilter && ADXmain>25) )

Pero depende sobre todo de lo que se quiera comprobar exactamente. La advertencia viene porque antes la precedencia de && (y) y || (o) era diferente - lo invirtieron y ahora todas esas comparaciones lógicas deben ser comprobadas

 
mladen:
probablemente deberías escribirlo así :

if (((STC115) | (STC185)) && (Ask>emaFilter && ADXmain>25) )

Pero depende principalmente de lo que quieras probar exactamente. La advertencia viene porque antes la precedencia de && (and) y || (or) era diferente - la invirtieron y ahora todas esas comparaciones lógicas deben ser comprobadas

Hola Mladen

muchas gracias por tu sugerencia. Lo probaré. ¡Siempre eres muy útil!

En palabras simples habladas, los tres paréntesis deben hacerse verdaderos antes de que el EA abra una operación.

Supongo que su código proporcionará esta funcionalidad.

Saludos cordiales,

T.

 

Codificadores,

¿Podría alguien ayudarme con lo siguiente?

Estoy utilizando un script de ondas de Elliot para etiquetar manualmente las ondas. El script coloca 8 objetos diferentes en el gráfico (i,ii,iii,iv,v,a,b,c).

Todo funciona bien, pero borrar los objetos es mucho trabajo. Porque tengo que hacer clic en cada objeto (i,ii,iii,iv,v,a,b,c), para borrarlos. Me gustaría añadir algo al código que me permita resaltar todos los objetos (i,ii,iii,iv,v,a,b,c) con un solo clic en los objetos. Ya he buscado pero no he podido encontrar la función que necesito.

(No estoy buscando un script que borre todos los objetos del gráfico. )

Gracias de antemano

//+------------------------------------------------------------------+//| wave labels ff.mq4 |

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

#property version "1.00"

#property strict

#include

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

//| Script program start function |

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

extern string Text1 = "(i)"; // Enter Text to place on screen

extern string Text2 = "(ii)"; // Enter Text to place on screen

extern string Text3 = "(iii)"; // Enter Text to place on screen

extern string Text4 = "(iv)"; // Enter Text to place on screen

extern string Text5 = "(v)"; // Enter Text to place on screen

extern string Text6 = "(a)"; // Enter Text to place on screen

extern string Text7 = "(b)"; // Enter Text to place on screen

extern string Text8 = "(c)"; // Enter Text to place on screen

extern string Text_font="Arial Bold"; // font of text

extern int Text_fontsize = 14; // size of text

extern color Text_color = Red; // color of text

int TextBarsAhead2 = 7; // # bars to space 2nd letter from first

int TextBarsAhead3 = 14; // # bars to space 3rd letter from first

int TextBarsAhead4 = 21; // # bars to space 4th letter from first

int TextBarsAhead5 = 28; // # bars to space 5th letter from first

int TextBarsAhead6 = 35; // # bars to space 6th letter from first

int TextBarsAhead7 = 42; // # bars to space 7th letter from first

int TextBarsAhead8 = 49; // # bars to space 8th letter from first

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

//+-----------------------------SCRIPT CODE--------------------------+

int OnStart(){

double price = WindowPriceOnDropped(); // find the price point where dropped

datetime Time1 = WindowTimeOnDropped(); // find the time point where dropped

datetime TimeNow = TimeCurrent(); // get the current time ( makes name unique)

datetime Time2 = (int)Time1+TextBarsAhead2*(int)Period()*60;

datetime Time3 = (int)Time1+TextBarsAhead3*(int)Period()*60;

datetime Time4 = (int)Time1+TextBarsAhead4*(int)Period()*60;

datetime Time5 = (int)Time1+TextBarsAhead5*(int)Period()*60;

datetime Time6 = (int)Time1+TextBarsAhead6*(int)Period()*60;

datetime Time7 = (int)Time1+TextBarsAhead7*(int)Period()*60;

datetime Time8 = (int)Time1+TextBarsAhead8*(int)Period()*60;

string gap=" "; // spacing between text characters

string text=Text1+gap+Text2+gap+Text3+gap+Text4+gap+Text5; // put the text in a line

TextToPrint ("Wave labels 1 " + (string)TimeNow, Text1, Text_fontsize, Text_font, Text_color, Time1, price); //print 1st letter

TextToPrint ("Wave labels 2 " + (string)TimeNow, Text2, Text_fontsize, Text_font, Text_color, Time2, price); //print 1st letter

TextToPrint ("Wave labels 3 " + (string)TimeNow, Text3, Text_fontsize, Text_font, Text_color, Time3, price); //print 1st letter

TextToPrint ("Wave labels 4 " + (string)TimeNow, Text4, Text_fontsize, Text_font, Text_color, Time4, price); //print 1st letter

TextToPrint ("Wave labels 5 " + (string)TimeNow, Text5, Text_fontsize, Text_font, Text_color, Time5, price); //print 1st letter

TextToPrint ("Wave labels 6 " + (string)TimeNow, Text6, Text_fontsize, Text_font, Text_color, Time6, price); //print 1st letter

TextToPrint ("Wave labels 7 " + (string)TimeNow, Text7, Text_fontsize, Text_font, Text_color, Time7, price); //print 1st letter

TextToPrint ("Wave labels 8 " + (string)TimeNow, Text8, Text_fontsize, Text_font, Text_color, Time8, price); //print 1st letter

return(0);

}

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

void TextToPrint(string TextName,string LabelText,int FontSize,string FontName,color TextColor,datetime Time0,double Price0)

{

if(StringLen(LabelText)>1){

ObjectCreate(TextName,OBJ_TEXT,0,Time0,Price0);

ObjectSetText(TextName,LabelText,FontSize,FontName,TextColor);

}

}

//+------------------------------------------------------------------+
 
xtractalpha:
Coders,

¿Podría alguien ayudarme con lo siguiente?

Estoy utilizando un script de ondas de Elliot para etiquetar manualmente las ondas. El script coloca 8 objetos diferentes en el gráfico (i,ii,iii,iv,v,a,b,c).

Todo funciona bien, pero borrar los objetos es mucho trabajo. Porque tengo que hacer clic en cada objeto (i,ii,iii,iv,v,a,b,c), para borrarlos. Me gustaría añadir algo al código que me permita resaltar todos los objetos (i,ii,iii,iv,v,a,b,c) con un solo clic en los objetos. Ya he buscado pero no he podido encontrar la función que necesito.

(No estoy buscando un script que borre todos los objetos del gráfico. )

Gracias de antemano

//+------------------------------------------------------------------+//| wave labels ff.mq4 |

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

#property version "1.00"

#property strict

#include

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

//| Script program start function |

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

extern string Text1 = "(i)"; // Enter Text to place on screen

extern string Text2 = "(ii)"; // Enter Text to place on screen

extern string Text3 = "(iii)"; // Enter Text to place on screen

extern string Text4 = "(iv)"; // Enter Text to place on screen

extern string Text5 = "(v)"; // Enter Text to place on screen

extern string Text6 = "(a)"; // Enter Text to place on screen

extern string Text7 = "(b)"; // Enter Text to place on screen

extern string Text8 = "(c)"; // Enter Text to place on screen

extern string Text_font="Arial Bold"; // font of text

extern int Text_fontsize = 14; // size of text

extern color Text_color = Red; // color of text

int TextBarsAhead2 = 7; // # bars to space 2nd letter from first

int TextBarsAhead3 = 14; // # bars to space 3rd letter from first

int TextBarsAhead4 = 21; // # bars to space 4th letter from first

int TextBarsAhead5 = 28; // # bars to space 5th letter from first

int TextBarsAhead6 = 35; // # bars to space 6th letter from first

int TextBarsAhead7 = 42; // # bars to space 7th letter from first

int TextBarsAhead8 = 49; // # bars to space 8th letter from first

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

//+-----------------------------SCRIPT CODE--------------------------+

int OnStart(){

double price = WindowPriceOnDropped(); // find the price point where dropped

datetime Time1 = WindowTimeOnDropped(); // find the time point where dropped

datetime TimeNow = TimeCurrent(); // get the current time ( makes name unique)

datetime Time2 = (int)Time1+TextBarsAhead2*(int)Period()*60;

datetime Time3 = (int)Time1+TextBarsAhead3*(int)Period()*60;

datetime Time4 = (int)Time1+TextBarsAhead4*(int)Period()*60;

datetime Time5 = (int)Time1+TextBarsAhead5*(int)Period()*60;

datetime Time6 = (int)Time1+TextBarsAhead6*(int)Period()*60;

datetime Time7 = (int)Time1+TextBarsAhead7*(int)Period()*60;

datetime Time8 = (int)Time1+TextBarsAhead8*(int)Period()*60;

string gap=" "; // spacing between text characters

string text=Text1+gap+Text2+gap+Text3+gap+Text4+gap+Text5; // put the text in a line

TextToPrint ("Wave labels 1 " + (string)TimeNow, Text1, Text_fontsize, Text_font, Text_color, Time1, price); //print 1st letter

TextToPrint ("Wave labels 2 " + (string)TimeNow, Text2, Text_fontsize, Text_font, Text_color, Time2, price); //print 1st letter

TextToPrint ("Wave labels 3 " + (string)TimeNow, Text3, Text_fontsize, Text_font, Text_color, Time3, price); //print 1st letter

TextToPrint ("Wave labels 4 " + (string)TimeNow, Text4, Text_fontsize, Text_font, Text_color, Time4, price); //print 1st letter

TextToPrint ("Wave labels 5 " + (string)TimeNow, Text5, Text_fontsize, Text_font, Text_color, Time5, price); //print 1st letter

TextToPrint ("Wave labels 6 " + (string)TimeNow, Text6, Text_fontsize, Text_font, Text_color, Time6, price); //print 1st letter

TextToPrint ("Wave labels 7 " + (string)TimeNow, Text7, Text_fontsize, Text_font, Text_color, Time7, price); //print 1st letter

TextToPrint ("Wave labels 8 " + (string)TimeNow, Text8, Text_fontsize, Text_font, Text_color, Time8, price); //print 1st letter

return(0);

}

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

void TextToPrint(string TextName,string LabelText,int FontSize,string FontName,color TextColor,datetime Time0,double Price0)

{

if(StringLen(LabelText)>1){

ObjectCreate(TextName,OBJ_TEXT,0,Time0,Price0);

ObjectSetText(TextName,LabelText,FontSize,FontName,TextColor);

}

}

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

xtractalpha

En el procedimiento deinit() añade la parte de limpieza

En tu caso sería ObjectDelete(objectName) para cada objeto que tu código haya creado

 

Hola Mladen

¿Podría ayudar con los errores de compilación en el siguiente

Archivos adjuntos:
 
candyman752:
Hola Mladen ¿Podría ayudar con los errores de compilación en el siguiente

Compruébelo ahora : genie_stoch_rsittt_1.mq4

Archivos adjuntos:
 

Estimado Mladen

Gracias por este gran indy

¿Es posible la versión del histograma?

 
SLAVOLJUB:
Estimado Mladen

Thanx para este gran indy

¿Es posible la versión del histograma?

Es posible comprar entonces las dos líneas de señal debe ser completamente ignorado y cortado

 
mladen:
Es posible comprar entonces las dos líneas de señal debe ser completamente ignorado y cortado

No hay problema.... sólo necesito esta línea rojo-verde

(línea rojo-verde como histograma)

Gracias por adelantado

 

Hola Mladen,

He añadido un código para trailing stop a la EA. Estoy recibiendo dos errores de compilación. Las instrucciones sobre la adición del código fueron:

¿Cómo utilizar?

Muy simple. coloque el código de abajo en cualquier parte de su programa de Asesor Experto y llame a la función trail2(#ticket) en la función Start().ticket = es su ticket de orden, puede ser una orden de compra o de venta. Pero tiene que ser una orden viva, no una orden pendiente.

Por ejemplo

{...(su código)

ticket=ordenend(...)

...

}

..

trail2(ticket)

o trail2(ticket, 300, 40, 250, 100)

..

Archivos adjuntos:
wip.mq4  8 kb