Chiedete! - pagina 115

 
TheRumpledOne:
C'è un modo più semplice per trovare il numero di barra del massimo e del minimo di oggi?

today_high = High[0];

today_low_ = Low[0];

Trova il numero della barra per oggi? Lo 0 significa oggi. Su D1 ovviamente.

Se siete su altri TF:

today_high = iHigh(Symbol(),PERIOD_D1,0);

today_low = iLow(Symbol(),PERIOD_D1,0);

FerruFx

 
TheRumpledOne:
Vorrei sapere per quale barra si sono verificati il massimo e il minimo di oggi su periodi di tempo H1 o inferiori.

So che posso usare un ciclo for e controllare.

C'è un modo più elegante per farlo?

C'è una funzione per la prima barra di oggi?

Grazie.

datetime some_time_start_day=D'0000.00.00 00:00';

datetime some_time_end_day=D'0000.00.00 00:00';

int shiftStart=iBarShift(NULL,PERIOD_M1,some_time_start_day);

int shiftEnd=iBarShift(NULL,PERIOD_M1,some_time_end_day);

double valH=High;

double valL=Low;

niente di più semplice di questo... ps. Pensavo che la domanda fosse trovare le barre su un timeframe inferiore, altrimenti basta fare quello che FerruFx ha spiegato prendere da D1

.

 

Caro codersguru,

Ho bisogno di un'ea che dovrebbe essere un pezzo di torta per te,

che chiuda tutte le posizioni aperte (per una certa coppia) quando 2 MA attraversano.

Naturalmente, se la MA più veloce ha attraversato giù la MA più lenta, chiude la posizione lunga,

viceversa.

Variabili:

- Tipo di MA più veloce

- Valore MA più veloce

- Tipo di MA più lento

- Valore MA più lento

- TimeFrame (possiamo fissare il timeframe senza interferire

quando passiamo da una finestra all'altra del grafico timeframe)

Ho provato a modificare MA attraversato EA, ma sempre fallito.

Grazie per la vostra gentilezza.

 
IN10TION:
datetime some_time_start_day=D'0000.00.00 00:00';

datetime some_time_end_day=D'0000.00.00 00:00';

int shiftStart=iBarShift(NULL,PERIOD_M1,some_time_start_day);

int shiftEnd=iBarShift(NULL,PERIOD_M1,some_time_end_day);

double valH=High;

double valL=Low;

niente di più semplice di questo... ps. Pensavo che la domanda fosse trovare le barre su un timeframe inferiore, altrimenti basta fare quello che FerruFx ha spiegato prendere da D1

.

Grazie.

Immagino che non ci sia un modo più semplice.

Ho pensato che ci potrebbe essere una parola chiave/riserva per BarStartOfDay o qualcosa del genere.

 
IN10TION:
iBarShift troverà per voi la barra che inizia in quel giorno o anche la barra finale per quel giorno.

int iBarShift( string symbol, int timeframe, datetime time, bool exact=false)

poi...

usa queste posizioni delle barre per trovare i risultati di iHighest e iLowest

int iHighest( simbolo stringa, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)

int iLowest( simbolo stringa, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)

risultati & fatto

Ecco perché volevo sapere:

https://www.mql5.com/en/forum/178406/page8

 

Ciao,

Prima di tutto grazie in anticipo per il tuo aiuto!

Sto cercando di capire se c'è un modo per utilizzare più threads in un expert advisor come si può fare in c++.

Il motivo è che faccio trading di notizie e ho bisogno di avere diversi ordini tutti inviati allo stesso tempo. Per esempio, ho bisogno di piazzare 3 ordini GBP/USD, USD/CAD, EUR/USD non appena arrivano i dati. Ora il mio problema è che se uso la normale funzione di invio ordini per 3 volte, è lenta, poiché invia gli ordini in modo incrementale e non contemporaneamente.

OrderSend("GBPUSD",OP_BUY,0.01,ask,5,ask-25*point,ask+25*point, "Cole",11111,0,Red);

OrderSend("USDCAD",OP_BUY,0.01,ask,5,ask-25*point,ask+25*point, "Cole",11111,0,Rosso);

OrderSend("EURUSD",OP_BUY,0.01,ask,5,ask-25*point,ask+25*point, "Cole",11111,0,Rosso);

Sono sicuro che questo può essere fatto in qualche modo perché se apro 3 finestre MT4 separate di acquisto/vendita e le clicco tutte allo stesso tempo (usando un programma di trading di notizie), gli ordini vengono inviati tutti nello stesso momento e arrivano molto più velocemente. Quando si fa in questo modo, gli ordini appaiono tutti insieme, al contrario di quando si usa il mio EA con 3 chiamate OrderSend, che appaiono uno dopo l'altro.

C'è un modo per impostare più thread in esecuzione in un EA, o forse esiste un qualche tipo di OrderSend batch?

Grazie!

Cole

 
ColeFlournoy:
Ciao,

Prima di tutto grazie in anticipo per il vostro aiuto!

Sto cercando di capire se c'è un modo per usare più threads in un expert advisor come si può fare in c++.

Il motivo è che faccio trading di notizie e ho bisogno di avere diversi ordini tutti inviati allo stesso tempo. Per esempio, ho bisogno di piazzare 3 ordini GBP/USD, USD/CAD, EUR/USD non appena arrivano i dati. Ora il mio problema è che se uso la normale funzione di invio ordini per 3 volte, è lenta, poiché invia gli ordini in modo incrementale e non contemporaneamente.

OrderSend("GBPUSD",OP_BUY,0.01,ask,5,ask-25*point,ask+25*point, "Cole",11111,0,Red);

OrderSend("USDCAD",OP_BUY,0.01,ask,5,ask-25*point,ask+25*point, "Cole",11111,0,Rosso);

OrderSend("EURUSD",OP_BUY,0.01,ask,5,ask-25*point,ask+25*point, "Cole",11111,0,Rosso);

Sono sicuro che questo può essere fatto in qualche modo perché se apro 3 finestre MT4 separate di acquisto/vendita e le clicco tutte allo stesso tempo (usando un programma di trading di notizie), gli ordini vengono inviati tutti nello stesso momento e arrivano molto più velocemente. Quando si fa in questo modo, gli ordini appaiono tutti insieme, al contrario di quando si usa il mio EA con 3 chiamate OrderSend, che appaiono uno dopo l'altro.

C'è un modo per impostare più thread in esecuzione in un EA, o forse esiste un qualche tipo di OrderSend batch?

Grazie!

Cole

In ogni caso, la tua piattaforma non invia ordini multipli nello stesso momento.

FerruFx

 

FerruFX -- Non sono sicuro di capire cosa stai dicendo?

Grazie,

Cole

 
IN10TION:
Hai già del codice per questo, che hai iniziato?

in un file mq4?

la prima cosa che ti serve è la conferma doji/inside = sì o no

a seconda delle impostazioni guarderà prima del doji/inside o aspetterà

quando aspetta 2 barre deve decidere gli ordini, a seconda della barra precedente alta o bassa...

Bene, puoi iniziare a programmare

hai del codice per trovare i doji o gli insider?

...

Ciao IN10TION,

Ecco il codice che sto usando (non il mio codice) per trovare la barra interna.

}

int IsInsideBar(int shift) {

//Inside Bar, La chiusura della barra interna deve essere superiore sia alla chiusura che al punto medio della barra La barra corrente deve aprire

//uguale o superiore alla chiusura della barra interna un ordine BuyStop deve essere piazzato al massimo della barra interna se l'ordine

//non viene colpito entro le prossime 4 barre cancella l'ordine. Vedi immagine qui sotto

se (High[shift]>High[shift+1]) return(0);

se (Low[shift]<Low[shift+1]) return(0);

se (Close[shift]>Open[shift] && Close[shift]>(High[shift]+Low[shift])/2 && Open[shift-1]>=Close[shift]) return(1);

se (Close[shift]<Open[shift] && Close[shift]<(High[shift]+Low[shift])/2 && Open[shift-1]<=Close[shift]) return(-1);

return(false);

}

Ora, la mia domanda è:

Se voglio piazzare un buy-stop e un sell-stop al massimo e al minimo della barra successiva, quella che segue la barra interna... quale sarebbe il codice?

Grazie per l'aiuto...

forexcel

 
IN10TION:
Sono tutto orecchi, puoi mandarmi un messaggio privato o portarlo allo scoperto... se i tuoi indicatori sono ben codificati il tuo EA finale non è così lontano.

Gidday In10tion

In allegato c'è la foto di ciò che sto facendo trading.

Uso questi 4 indicatori

Vendi il segnale

1: Stocastico lento K% incrociato D% sopra 80 e viceversa per comprare sotto 20

2: QQE RSI incrociato sotto ATR e viceversa per comprare

3: CCI incrociato sotto 0 e viceversa per comprare

4: MACD ma's incrociato e 1 barra formata sotto 0 e viceversa per Comprare

Se una qualsiasi di queste 3 condizioni è soddisfatta, allora aprite una posizione, ad esempio il segnale di fuoco di Stoch 5 minuti dopo MACD e poi 20 minuti il segnale di fuoco di CCI = aprite una posizione.

o qualsiasi combinazione di queste condizioni, purché siano nella stessa direzione dell'indicatore Slope.

Schermata allegata

Saluti

File:
bones.gif  54 kb
Motivazione: