Come codificare? - pagina 198

 
arshadFX:
1, aggiungere il flag bool dopo l'attivazione dei criteri di trading

2, controllare la bandiera bool prima di effettuare l'ordine

3, dopo aver piazzato l'ordine il flag bool dovrebbe essere resettato

4, resettare il flag anche in init()

Grazie uomo

 

Guida MQL necessaria =^_^=

#proprietà indicator_chart_window

#proprietà indicator_buffers 2

#proprietà indicator_color1 Bianco

#proprietà indicator_color2 Bianco

extern int Fast.MA.Period = 5;

extern int Slow.MA.Period = 34;

extern int Signal.period = 5;

//---- buffer

double Buffer1[],

Buffer2[],

b2[],

b3[];

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

//|Funzione di inizializzazione personalizzata dell'indicatore |

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

int init()

{

//---- indicatori

// due buffer aggiuntivi utilizzati per il conteggio

IndicatoreBuffer(4);

IndicatoreNomeCorto("MA3_54");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(0,242); // giù 226 234 242

SetIndexBuffer(0,b2);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(1,241); //UP 225 233 241

SetIndexBuffer(1,b3);

// Questi buffer non sono tracciati, sono solo usati per determinare le frecce

SetIndexBuffer (2,Buffer1);

SetIndexBuffer (3,Buffer2);

//----

return(0);

}

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

//| Funzione di deinizializzazione dell'indicatore Custor

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

int deinit()

{

//----

return(0);

}

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

//|Funzione di iterazione dell'indicatore personalizzata |

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

int start()

{

int i, counted_bars=IndicatorCounted();

doppio MA5,MA34;

int limit=Bars_contate;

Stampa(" limite di stampa = ", limite);

if(counted_bars>0) limit++;

// Linea principale

for(i=0; i<limite; i++)

{

MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

Buffer1=MA5-MA34;

}

// Linea del segnale

for(i=0; i<limit; i++)

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);

}

// Frecce

for(i=0; i<limit; i++)

{

if(Buffer1 > Buffer2 && Buffer1 < Buffer2)

b2 = Alto+10*Punto;

se(Buffer1 Buffer2)

b3 = Basso-10*Punto;

}

//----

return(0);

}

Puoi insegnarmi come creare un EA basato su questo indice? Quando la freccia appare sullo schermo e questo è il momento in cui l'EA entra automaticamente in posizione, può essere fatto? Per favore guidami perché sono desideroso di imparare =^_^=

 

Buon riferimento

liew_stanley:
#proprietà indicator_chart_window

#proprietà indicator_buffers 2

............guida me come io sono appassionato in apprendimento =^_^=

Vedere questa guida davvero buon materiale MQL4 Tutorial

 

L'indis assomiglia a questo

Ecco il segnale della freccia di cui sopra, ho bisogno di qualcuno che mi guidi nella codifica dell'EA

Grazie a chiunque là fuori =^_^=

File:
untitled.jpg  80 kb
 

Qualcuno può aiutarmi a codificare questo in un semplice EA?

Ciao ragazzi, qualcuno può aiutarmi a codificare questo indis in un EA? Solo un semplice EA che entra in posizione quando le frecce appaiono sullo schermo, molto apprezzato se potrebbe aiutarmi su un semplice EA. =^_^= grazie

#proprietà indicator_chart_window

#proprietà indicator_buffers 2

#proprietà indicator_color1 Bianco

#proprietà indicator_color2 Bianco

extern int Fast.MA.Period = 5;

extern int Slow.MA.Period = 34;

extern int Signal.period = 5;

//---- buffer

double Buffer1[],

Buffer2[],

b2[],

b3[];

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

//|Funzione di inizializzazione personalizzata dell'indicatore |

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

int init()

{

//---- indicatori

// due buffer aggiuntivi utilizzati per il conteggio

IndicatoreBuffer(4);

IndicatorShortName("Elliott Wave Oscillator");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(0,242); // giù 226 234 242

SetIndexBuffer(0,b2);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(1,241); //UP 225 233 241

SetIndexBuffer(1,b3);

//

SetIndexBuffer (2,Buffer1);

SetIndexBuffer (3,Buffer2);

//----

return(0);

}

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

//| Funzione di deinizializzazione dell'indicatore Custor

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

int deinit()

{

//

//----

return(0);

}

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

//|Funzione di iterazione dell'indicatore personalizzata |

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

int start()

{

int i, counted_bars=IndicatorCounted();

doppio MA5,MA34;

int limit=Bars_contate;

Stampa(" limite di stampa = ", limite);

if(counted_bars>0) limit++;

// Linea principale

for(i=0; i<limite; i++)

{

MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

Buffer1=MA5-MA34;

}

// Linea del segnale

for(i=0; i<limit; i++)

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);

}

// Frecce

for(i=0; i<limit; i++)

{

if(Buffer1 > Buffer2 && Buffer1 < Buffer2)

b2 = Alto+10*Punto;

se(Buffer1 Buffer2)

b3 = Basso-10*Punto;

}

//----

return(0);

}

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

 

Codice per ordini multipli?

Qualcuno ha un buon codice per scambiare ordini multipli quando ci si scontra con la barriera di maxlot?

IE Broker permette solo lotti di 5, e si vuole scambiare 10, quindi la funzione scambierà invece 2 ordini da 5 lotti.

Sto cercando più di un semplice ciclo qui. Il problema è che un semplice ciclo non sempre completerà completamente, e potreste rimanere con solo un ordine parziale aperto.

 

Come togliere l'errore 1 di OrderModify

Ciao,

Non riesco ad evitare l'errore OrderModify 1: si presenta sempre anche provando a controllare che i dati prima di modificare siano diversi! Ho provato anche doublenormalize...non funziona...

Questo è il codice:

se (Bid-OrderOpenPrice() >= VPoint*BreakEvenAtProfit)

{

se (OrderStopLoss() != OrderOpenPrice() + BreakEvenShift*VPoint)

{

Vresult = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+ BreakEvenShift*VPoint,OrderTakeProfit(),0,Green);

Qualche suggerimento?

Grazie.

 
liew_stanley:
Ciao ragazzi, qualcuno può aiutarmi a codificare questo indice in un EA? Solo un semplice EA che entra in posizione //+------------+

Questi aero mostrano 2 MovingAverage corssing cioè 5-34, si potrebbero trovare molti EAs "MA's Cross EA" ricerca e si spera che troverete uno

 

Come faccio a impostare la frequenza degli avvisi?

Sono nuovo di mq4 e sto cercando di creare una visualizzazione sullo schermo quando c'è un crossover per il MACD. Di seguito è riportato il mio codice, ma gli avvisi continuano a comparire ogni pochi minuti.

Come posso codificarlo per visualizzare gli avvisi solo una volta ogni ora? O un avviso per barra?

int start()

{

stringa MACD1="";

colore colt9;

double MACDM_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 0);

double MACDS_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,0);

double MACDM_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 1);

double MACDS_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,1);

if ((MACDM_S11 < MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="IN UPTREND"; colt9=LimeGreen; }

if ((MACDM_S11 > MACDS_S11 && MACDM_S10 > MACDS_S10)) { MACD1="IN DOWNTREND"; colt9=Rosso; }

if ((MACDM_S11 > MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="NUOVO INCROCIO ALTO"; colt9=VerdeLime; }

if ((MACDM_S11 MACDS_S10)) { MACD1="NUOVO INCROCIO DOWN"; colt9=Rosso; }

stringa MACD2="";

colore colt14;

double MACDM_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 0);

double MACDS_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,0);

double MACDM_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 1);

double MACDS_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,1);

if ((MACDM_L11 < MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="IN UPTREND"; colt14=LimeGreen; }

if ((MACDM_L11 > MACDS_L11 && MACDM_L10 > MACDS_L10)) { MACD2="IN DOWNTREND"; colt14=Rosso; }

if ((MACDM_L11 > MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="NUOVO INCROCIO IN SU"; colt14=LimeGreen; }

if ((MACDM_L11 MACDS_L10)) { MACD2="NUOVO INCROCIO DOWN"; colt14=Rosso; }

if(MACD1=="NUOVO INCROCIO ALTO"&&MACD2=="IN UPTREND")

Alert(Symbol()," - ", "H1:"," MACD MAIN UPTREND MOVEMENT"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD1=="NEW DOWN CROSSING"&&MACD2=="IN DOWNTREND")

Alert(Symbol()," - ", "H1:"," MACD MAIN DOWNTREND MOVEMENT"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD2=="NUOVO INCROCIO ALTO"&&MACD1=="IN UPTREND")

Alert(Symbol()," - ", "H1:"," MACD," MAIN TREND CHANGE TO UPTREND"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD2=="NEW DOWN CROSSING"&&MACD1=="IN DOWNTREND")

Alert(Symbol()," - ", "H1:"," MACD," MAIN TREND CHANGE TO DOWNTREND"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

return(0);

}

 

in quali coppie?

Motivazione: