Come codificare? - pagina 64

 

Grazie mille per la vostra risposta. Non è un problema di argomenti, il calcolo nel ciclo è corretto. Penso che il problema sia con la seconda chiamata a iMAonArray al di fuori del ciclo nella funzione.

Saluti

 

Il modo migliore per aggiungere MaxBarsToCount (History) al limite

quando limitiamo MaxBarsToCount (History) a volte è necessario aggiungere Correzione, ecc

esiste il modo migliore (più sicuro, più facile, universale)?

----------------------

come qui abbiamo un leggero fisher 4 stoch smothing:

----------

int start()

{

int counted_bars=IndicatorCounted();

//---- controllare eventuali errori

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

int limit=Bars contate_bars;

if(limit>maxbars)limit=maxbars;

se (limit>Bars-lenth-1)limit=Bars-lenth-1;

//----

for (int shift = limite; shift>=0;shift--)

{

AuxBuffer[shift]=(iStochastic(NULL,0,lenth,2,1,MODE_SMA,0,MODE_MAIN,shift)/100-0.5)

+0.5*AuxBuffer[shift+1];

FishBuffer[shift]= 0.25* MathLog((1+AuxBuffer[shift])/(1-AuxBuffer[shift]))+

0.5*FishBuffer[shift+1];

SignalBuffer[shift]=FishBuffer[shift+1];

}

//----

return(0);

}

------------------------

per il limite di fisher f-la:

int limit;

int counted_bars=IndicatorCounted();

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

for(int i=limite; i>=0; i--)

{

....

per Stoch:

int start()

{

int i,k;

int counted_bars=IndicatorCounted();

doppio prezzo;

//----

if(Bars<=draw_begin2) return(0);

//---- zero iniziale

if(counted_bars<1)

{

for(i=1;i<=draw_begin1;i++) MainBuffer=0;

for(i=1;i<=draw_begin2;i++) SignalBuffer=0;

}

//---- conteggio dei minimi

i=Bars-KPeriod;

if(counted_bars>KPeriod) i=Bars-counted_bars-1;

while(i>=0)

{

doppio min=1000000;

k=i+KPeriod-1;

mentre(k>=i)

{

prezzo=Low[k];

if(min>prezzo) min=prezzo;

k--;

}

LowesBuffer=min;

i--;

}

....

p.s. nell'indicatore allegato, basato sulla trasformazione pulita di Fisher e Stoch; MaxBars deve essere raddrizzato un po'... (quando MaxBars fuori - nessun problema)

 

Salve,

Grazie mille a tutti voi. Ora funziona bene e viene aperto solo un ordine per barra. Ciò che è bello con un EA come questo è che possiamo usare l'opzione"Open price only" per il backtesting, che è più veloce di quella "per tick".

 
Michel:
Ciao Omelette, Sai che BT ha un problema nel guardare nella storia: guarda sulla storia reale, non quella del BT. Ho chiesto a Metaquote qualche mese fa di questo bug ma non hanno avuto alcuna risposta.... Forse ora è stato risolto...

Michel, grazie per l'avvertimento. Wow, non lo sapevo - e lo valuterei come un enorme bug!!!

Per verificarlo (con MT 208), ho usato le informazioni di OrdersHistoryTotal() per decidere la direzione del trade su un martingaler, e ho usato i 'mezzi convenzionali' su un'altra versione - la curva di equity per entrambi 'dovrebbe' essere identica. Questo è quello che ho trovato.........

Ho anche appena controllato con l'ultimo Metatrader e il bug è ancora lì - incredibile.....

 

Bisogno di codice MQL

Ciao a tutti,

Ho bisogno di un po' di codice che posso integrare in un EA.

1) Ho bisogno di mettere una restrizione al mio EA come questa, non dovrebbe aprire nessuna posizione tra le 14:00 e le 17:00. Come posso farlo? Come posso farlo? Per favore datemi questo semplice codice e ditemi dove posso inserirlo nell'EA.

2) Non voglio mettere SL nell'EA per aprire una posizione a causa della caccia allo SL da parte del broker. Quindi, ho bisogno di mettere un controllo sull'EA che "se il profitto totale sulla posizione aperta è +20 punti allora chiudi la posizione".

Sarò molto grato ai sostenitori che supportano sempre altre persone!

Cordiali saluti,

Kashif.

 
oilfxpro:
.....L'EA può guardare i tassi swap attuali e i tassi swap storici? OILFXPRO

Temo di no.

PS - la mia risposta sembra fuorviante. Intendevo dire che non è possibile recuperare i tassi swap storici - non c'è nessun problema ad ottenere i tassi attuali...

 

diversi ordini in una sola volta

Salve,

Voglio programmare in un Expert Advisor quanto segue:

Vorrei aprire diversi ordini contemporaneamente (3-6 ordini)

1. Ordine : Volume; T/P; S/L; T/S

.

.

.

5. Ordine : Volume; T/P; S/L; T/S

Può aiutarmi?

Grazie

derumuro

 

Ho bisogno di imparare qualcosa.

Ciao a tutti

Ho bisogno di un aiuto di programmazione per un semplice codice che è:

Se il prezzo di mercato > valore MA da delta pips aperto comprare.

Se il prezzo di mercato < valore MA da pips delta aperto vendere.

Con TP SL e TS. Qualche programmatore esperto può insegnarmi come scrivere il codice?

Grazie a voi.

 

Cosa devo fare per cambiare questo codice in modo che gli ordini siano aperti solo quando tutti e tre gli indicatori sono in sincronia o uptrend (Blu) o downtrend (Rosso) manualmente questo funziona bene ed è abbastanza semplice per me da seguire LOL.

Ho usato un vecchio ea come modello e ho provato ad aggiungere gli indis per creare i giusti segnali. al momento gli ordini vengono aperti sia con il TM che con l'HAS.

Ho allegato l'ea e la performance degli ultimi due giorni, so che non significa nulla ma ha del potenziale. IMO

Qualcuno potrebbe per favore indicarmi la giusta direzione.

Grazie

Beno

 

C'è un modo per codificare questa funzione include in modo che non ci sia la possibilità che rimanga "bloccata" nel suo ciclo?

int CBM(int intMagic)//CloseByMagic

{

int intOffset=0;

while(OTBM(intMagic)>0)

{

OrderSelect(intOffset,SELECT_BY_POS);

if(OrderMagicNumber()==intMagic)

{

if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),999,Red);

if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),999,Orange);

}

else {

intOffset++;

}

}

return(0);

}

Grazie a chiunque possa aiutare.