Chiedete! - pagina 136

 

sospendere l'ordine

Salve gente,

per quanto riguarda la programmazione in MQL4 sono un vero principiante, ma sto imparando ogni giorno. Attualmente sto provando quanto segue:

nel ciclo principale del mio EA, quando certe condizioni sono soddisfatte, viene aperto un ordine. Questo ordine è con una data entrata, stoploss e takeprofit usando la funzione OrderSend.

E' consentito un solo ordine alla volta:

totale = OrdiniTotali();

if(totale < 1)

{ etc etc

Quello che vorrei costruire è che quando lo stoploss o il takeprofit dell'ordine viene colpito, l'EA aspetta di prendere nuovi ordini fino a quando la barra oraria corrente (la barra all'interno dello stoploss o del takeprofit) finisce.

Il problema al momento è che non appena lo stoploss o il takeprofit viene colpito, immediatamente un altro ordine viene preso nel ciclo principale.

Potete aiutarmi per favore?

FXX

 

Combina EA bisogno di aiuto

Ciao a tutti,

Qualcuno sa come combinare 2 EA diversi in 1 EA? Per favore mostratemi passo dopo passo come fare questo?

Grazie in anticipo per il vostro aiuto!

 

Dipende dalla logica dell'EA

Ogni EA ha una logica diversa, quindi il metodo per combinare due EA dipende dalla loro logica.

Quindi, dove sono gli EA che vorresti combinare?

Bill FX:
Ciao a tutti,

Qualcuno sa come combinare 2 diversi EA in 1 EA? Per favore mostratemi passo dopo passo come fare questo?

Grazie in anticipo per il vostro aiuto!
 

Come classificare i valori? Bisogno di aiuto

Qualcuno può aiutarmi a creare una funzione di rango

per esempio ho alcuni valori doppi come questi:

a=3.0; b=4.0; c=5.0; d=2.0; e=1.0; f=6.0; g=0.0;

dal valore più alto a quello più basso (6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0)

o il valore di (f,c,b,a,d,e,g)

Quindi i ranghi dovrebbero essere così

numero di rango: (th)

f=1 ; c=2; b=3; a=4; d=5; e=6; g=7;

Ciò di cui ho bisogno è una funzione che restituisca il rango se inserisco il valore

int rank (valore doppio)

{

elabora tutti i valori;

restituisce (il rango di un valore da tutti i valori)

}

So che è facile se facciamo una funzione come questa

per esempio il valore di "a"

int rank (valore doppio)

{

if(a>b && a>c && a>d && a>e && a>f && a>g)

ritorna (1);

.

.

.

if(a<b && a<c && a<d && a<e && a<f && a<g)

return(7);

}

Il problema è quando le variazioni di valore sono 2 la combinazione solo pochi, ma quando le variazioni aumentano per esempio 5,7 o 10 ecc così la combinazione per fare il rango sarà molto molto.

Spero che qualcuno possa aiutarmi per questo tipo di problema.

Grazie berfore, mi dispiace per il mio povero inglese, ma sto imparando...

Pj..

 

Usa un array e dai un'occhiata alla funzione ArraySort().

Buona fortuna

Lux

 

Stoch OBOS

Mi piace molto questo indi stoch, ma ho bisogno di aiuto per cambiarlo, perché ho bisogno dell'avviso quando lo stoch tocca oltre l'area comprata oltre quella venduta. E quando avverte, può mostrare anche quale valuta.

Grazie in anticipo.

 
luxinterior:
Usa un array e dai un'occhiata alla funzione ArraySort().

Buona fortuna

Lux

Avevo provato, ma ancora confuso,

ho bisogno di qualcuno che possa insegnarmi o mostrarmi come fare quella cosa..

Forse si potrebbe Lux?

Grazie in anticipo

 
primajaya:
Ogni EA ha una logica diversa, quindi il metodo per combinare due EA dipende dalla loro logica... Dove sono gli EA che vorresti combinare?

Ciao primajaya,

Grazie per il tuo feedback. Intendo dire che il 1° EA è un trade aperto e il 2° EA è un trade chiuso, se il 1° EA apre il trade e ha dei profitti e voglio che il 2° EA chiuda il trade a XXX profitti, come devo fare? Funzionano se mi collego a 2 chat, ma voglio combinarne 2 in 1 allora ho solo bisogno di aprire 1 solo EA.

Grazie per il tuo aiuto!

 
Bill FX:
Ciao primajaya,

Grazie per il tuo feedback. Voglio dire che il 1° EA è aperto e il 2° EA è chiuso, se il 1° EA è aperto e ha dei profitti e voglio che il 2° EA chiuda a XXX profitti, come devo fare? Funzionano se mi collego a 2 chat ma voglio combinarne 2 in 1 allora ho solo bisogno di aprire 1 solo EA.

Grazie per il tuo aiuto!

Non conosco ancora la logica del 1° e 2° EA per aprire gli scambi...

Ma forse questo può aiutarti...

Prova a combinare i due EA in un unico EA...

Quindi l'EA dovrebbe avere due segnali per aprire le compravendite:

1° segnale dal 1° EA e 2° segnale dal 2° EA..

è possibile utilizzare OrderMagicNumber() come identità per ogni operazione aperta dai due segnali...

per esempio:

se le compravendite aperte dal 1° segnale allora -- il numero magico è 1111

se le contrattazioni sono aperte dal 2° segnale allora -- il numero magico è 2222

Quindi se vogliamo chiudere la compravendita dal secondo segnale possiamo usare OrderMagicNumber() come identità per chiudere:

Spero che sia d'aiuto...

Pj

 

10punti3

PLEAASEEE, PROGRAMMATORI!

Abbiamo bisogno in 10points3 EA, che quando il terzo trade si apre, il primo si chiude, ci sto provando ma sta ancora chiudendo tutte le posizioni.

In realtà abbiamo:

if (PreviousOpenOrders>OpenOrders)

{

for(cnt=OrdiniTotali();cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

mode=OrderType();

if (OrderSymbol()==Symbol() && OrderMagicNumber() == Magic)

{

if (mode==OP_BUY) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue); }

se (mode==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Red); }

return(0);

}

}

}

Stavo pensando di fare questo:

1. cambiare il numero magico per il primo trade quando si apre il secondo, per esempio magicnumber+1

2. quando si apre il terzo trade, chiudere il primo, con il magicnumber+1 assegnato.

Ho ragione?

o in quale altro modo posso identificare il primo trade aperto per chiuderlo in seguito?

Se potete guidarmi o fare le modifiche, meglio perché non sono un programmatore, sto solo imparando.

Questa modifica sarebbe l'inizio del Santo Graal!!!

File:
10p3v0.03_1.mq4  12 kb
Motivazione: