Come codificare? - pagina 24

 

grazie

grazie. sei un assaggio di vita

 
BC Brett:
Vorrei avere la risposta.

Ho appena finito di scrivere il mio primo EA e ho provato a testarlo in Strategy Tester.

Mi venivano mostrati degli errori nel diario di ST così ho provato ad usare la funzione Print nel mio EA per risolvere i problemi. Finora ho risolto alcuni bug in questo modo, ma è un processo lento.

nel metaeditor sotto il menu modifica esiste "toggle breakpoint" ... come usare breakpoint?

 

Solo per informazione:

- thread sulla funzione e-mail (come codificare) https://www.mql5.com/en/forum/174336

- buon articolo con alcuni strumenti https://www.mql5.com/en/forum/176053

 

Codice per TP e SL invisibili dai broker

Ciao a tutti,

Con la paranoia dei broker che vanno a caccia di SL e allargano gli spread per evitare i TP, sto cercando informazioni su come nascondere TP e SL ai broker.

So che presentando un TP e SL al broker, in caso di disconnessione l'ordine è "sicuro". Mentre tenendo le informazioni in remoto, c'è il pericolo di enormi perdite nel caso in cui la connessione venga persa.

Qualcuno ha un EA o un esempio di codice su come tenere TP e SL nascosti al broker?

Grazie!

Mike

 

Questo EA ce l'ha

Ciao MikeP

Penso che questo EA contenga ciò che stai cercando. Per favore PM me se questo è quello che stai cercando, ho un'altra idea con questo.

File:
jlpigrid.mq4  8 kb
 

Aiuto per semplificare un pezzo di codice

Ciao a tutti!

Non sono un codificatore professionista (vedi sotto!). Questo codice funziona bene ma è possibile semplificarlo? Con un ciclo while/for per esempio? Desidero il codice più leggero! Questo è molto "pesante" e ottengo l'errore "internal stack overflow-simplify the program, please"!

È un indicatore in una finestra separata.

Nel codice d'esempio, visualizza l'up o down per MA per multi TF.

Grazie per il vostro aiuto.

int start()

{

string MAfast_Trend_1, MAfast_Trend_5, MAfast_Trend_15;

double x;

color color_indic;

// period M1

double FastMA_1_1 = iMA(NULL,PERIOD_M1,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_1 = iMA(NULL,PERIOD_M1,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_1 > FastMA_2_1)) { MAfast_Trend_1 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_1 < FastMA_2_1)) { MAfast_Trend_1 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_1", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_1",MAfast_Trend_1,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_1", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_1", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_1", OBJPROP_YDISTANCE, 22);

// period M5

double FastMA_1_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_5 > FastMA_2_5)) { MAfast_Trend_5 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_5 < FastMA_2_5)) { MAfast_Trend_5 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_5", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_5",MAfast_Trend_5,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_5", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_5", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_5", OBJPROP_YDISTANCE, 37);

// period M15

double FastMA_1_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_15 > FastMA_2_15)) { MAfast_Trend_15 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_15 < FastMA_2_15)) { MAfast_Trend_15 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_15", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_15",MAfast_Trend_15,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_15", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_15", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_15", OBJPROP_YDISTANCE, 52);

etc ...............

return(0);

}
 

Aiuto per il codice? Un solo trade per candela

Sto cercando di limitare il mio ea a prendere un solo trade per candela. Sto scoprendo che nei picchi di prezzo contro la tendenza sto ottenendo più trade perdenti perché gli indicatori sono in ritardo.

Ho visto il codice prima ma non riesco a trovarlo. Se qualcuno potesse indicarmi un ea che ha il codice corretto o mostrarmi come si fa.

È fatto nell'UniversalMa ea ma non è così chiaro per me lì.

Qualsiasi aiuto sarebbe apprezzato.

 

È qui https://www.mql5.com/en/forum/173026

Sto raccogliendo tutte le funzioni su questo thread https://www.mql5.com/en/forum/174329

 

Grazie ancora

Ciao NewDigital, come sempre grazie per la tua pronta risposta.

saluti

 

Ecco alcuni modi per semplificare il tuo codice:

SOSTITUIRE I VALORI DEI SINGOLI INDICATORI CON LA FUNZIONE

double FastMA_1_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_1_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

.... si trasforma in questo con una funzione aggiunta

maVal(5,1);

maVal(15,1);

LA FUNZIONE CHE CHIAMANO È QUI SOTTO:

double maVal(int tf, int shift)

{

return ( iMA(NULL,tf,FastMAPeriod,0,MAMethod,MAPrice,shift) );

}

* * * * * * * * * * * * * * * * * * * * * * * *

Sostituisci anche altre variabili individuali che hai come le variabili stringa con un array di stringhe. Gli array funzioneranno molto bene nei loop e semplificheranno il vostro codice perché avrete meno dichiarazioni da fare.

La stringa MAfast_Trend_1, MAfast_Trend_5, MAfast_Trend_15;

.... diventa questo.....

stringa MAfast_Trend [3];