Come codificare? - pagina 200

 

come è possibile in un semplice calcolo arrotondare un risultato?

 
dr.house7:
come è possibile in un semplice calcolo arrotondare il risultato?

Dipende da cosa volete fare:

double MathRound( double value)

Restituisce il valore arrotondato all'intero più vicino del valore numerico specificato.

double MathFloor( double x)

La funzione MathFloor restituisce un valore numerico che rappresenta il più grande intero che è minore o uguale a x.

doppio MathCeil( doppio x)

La funzione MathCeil restituisce un valore numerico che rappresenta il più piccolo intero che è superiore o uguale a x.

double NormalizeDouble( double value, int digits)

Arrotonda il valore in virgola mobile alla precisione data. Restituisce il valore normalizzato del tipo doppio.

 

Salve,

Vorrei un aiuto per programmare un ingresso aggiuntivo a questo ea.

Si tratta di un sistema di base grid/mart che posiziona gli ordini pendenti sopra e sotto il prezzo di partenza con incrementi uguali dove il tp per gli ordini di acquisto è lo stesso valore di sl per gli ordini di vendita e viceversa.

Da quello che posso capire, attualmente calcola il tp/sl come (4 * incremento di pip) dal prezzo a cui si avvia l'ea.

Vorrei un input che mi permetta di regolare il tp/sl di un numero X di pip.

Cioè (4 x incremento pip) + X,

grazie per il vostro aiuto.

File:
mgrid_ea.mq4  10 kb
 

Aiuto ricercato attesa x-Bars

Ciao a tutti,

come si può programmare quanto segue:

se chiudere l'ultimo ordine, attendere x-Bars per aprire un nuovo ordine?

Grazie !

Saluti

derumuro

 

Conteggio delle barre

Sto cercando di fare in modo che il mio EA conti il numero di barre all'interno di un dato periodo (cioè le ultime 20 barre) che hanno chiuso a rialzo e a ribasso. Sono arrivato a questa dichiarazione while ma non funziona, stampa sempre Bull Bars:0 Bear Bars:20. Qualche idea su cosa sto sbagliando?

// Conta le barre toro e orso

doppio open, close;

int bull_bars=0, bear_bars=0;

int bar_count=20; // Barre da contare

if(Volume[0] == 1){ // Controlla solo l'apertura della nuova barra

int bars=0;

while(bars < bar_count){

open=iOpen(NULL,0,bars);

close=iOpen(NULL,0,barre);

if(open<close){bull_bars++;} else {bear_bars++;}

barre++;

}

Print("Bull Bars: ", bull_bars, " Bear Bars: ", bear_bars);

}

 

erroneamente, ho capito. Ho cambiato il mio while in questo e funziona

while(bar_count > i){

open=iOpen(NULL,0,i);

close=iClose(NULL,0,i);

se(open<chiusura){bull_bars++;}

if(open>close){bear_bars++;}

i++;

}

 

Bisogno di aiuto per scrivere l'ea - Fattore di tempo per chiudere l'ordine

se l'ordine ha avuto luogo, take profit=100pips & stop lost=100pips è scritto nell'ea,

vorrei scrivere un fattore di tempo aggiuntivo (controllo) per chiudere l'ordine come segue:-

dice che l'ordine è un ordine di acquisto

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

1) se nella 1a ora, un improvviso aumento del prezzo di 80 pips avviene in 10 minuti entro quest'ora, chiudere l'ordine;

2) se nella 2a ora, un improvviso aumento del prezzo di 70 pip avviene in 10 minuti entro quest'ora, chiudere l'ordine;

3) se nella 3a ora, un improvviso aumento del prezzo di 60 pips avviene in 10 minuti entro quest'ora, chiudere l'ordine;

4) se nella 4a ora, profitto a 50 pip, chiudere l'ordine;

5) se nella 1ª ora, un improvviso calo del prezzo di 60 pip avviene in 10 minuti entro quest'ora, chiudere l'ordine;

6) se nella 2a ora, un improvviso calo del prezzo di 70 pip avviene in 10 minuti entro quest'ora, chiudere l'ordine;

7) se nella 3a ora, un improvviso calo del prezzo di 80 pip avviene in 10 minuti entro quest'ora, chiudere l'ordine;

8) se nella 4a ora, perde a 50 pip, chiudere l'ordine;

Qualcuno può gentilmente aiutarmi a scrivere questo? Sto avendo problemi a scrivere il fattore tempo nell'ordine di chiusura.

Grazie

Rgds,

 

Ciao ragazzi,

Ho una domanda per voi.... sapete qual è il codice da inserire in un Expert Advisor per chiudere tutte le operazioni aperte ad una certa ora?...per esempio ho 5 operazioni aperte e alle 16 GMT l'EA dovrebbe chiudere tutte le operazioni aperte e non dovrebbe aprire nuove operazioni fino al giorno successivo.

Grazie per il tuo aiuto!

 

Ciao mauro269,

if(Hour() = 16) chiudere Ordine (GMT = 16 +/- Servertime, esempio 16 +1 = 17) o vedere https://www.mql5.com/en/code/8075

e

if(Hour() = 8) aprire un nuovo ordine

Qui ci sono più informazioni: Documentazione MQL4

Saluti

derumuro

 

Al tocco piuttosto che alla chiusura

BBands_stop_v2 e ###Gann_HiLo_Activator_v2### - qualcuno può migliorarli per favore?

Ci sono pochi indicatori che cambiano la loro trama al tocco - ma piuttosto la maggior parte aspetta che il prezzo chiuda oltre la loro trama attuale.

Le eccezioni sono -

Il Parabolic SAR è uno di questi.

Bat ATR v2 è uno su impostazione giusta (usando CloseBase=false).

Per me questo significa che la maggior parte degli indicatori sono meno affidabili.

Più grande è il time frame, maggiore è il rischio. Se aspetti un segnale chiaro è spesso all'altra estremità di un breakout. Se lo prendi - è spesso l'entrata peggiore.

Qualcuno può modificare BBands_stop_v2 e ###Gann_HiLo_Activator_v2### per avere un'impostazione extra come fa Bats_v2 (usando CloseBase=false), in modo che cambino il grafico al tocco, per favore?

Le due modifiche di cui sopra sarebbero un buon inizio - ma la lista degli indicatori che penso non abbiano questa capacità è enorme

Tutte_le_bande_Stop

PriceChannel_Stop_v6.

All_Trendenvelopes.

TrendEnvelopes_v2.

MT4-LevelStop-Reverse-vB0-4.

#MTF_BBands_Stop_v1

ATRStops_v1.1_MTF

ATRStops_v1.1

mtfatrstops

BrainTrend1stopline

BrainTrend2Stopline

ChandelierStops V1

VolitilityPivot

VoltyChannel_Stop_v2

delta-stop

hi-lo_mod

MTF_BrainTrend1

NRTRATRStops

VoltiChannels

etc

ecc.....