[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 214
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Buon pomeriggio. Ho scritto una funzione che dovrebbe restituire il numero di barre quando un ordine è stato aperto:
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continua;
if (OrderType()>1) continua;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
return (iBarShift(Symbol(),Period(),t,true));
}
Tuttavia, restituisce sempre -1. Dove ho sbagliato? Grazie in anticipo.
Buon pomeriggio. Ho scritto una funzione che dovrebbe restituire il numero di barre quando un ordine è stato aperto:
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continua;
if (OrderType()>1) continua;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
return (iBarShift(Symbol(),Period(),t,true));
}
Tuttavia, restituisce sempre -1. Dove ho sbagliato? Grazie in anticipo.
Forse va così:
return(iBarShift(Symbol(),Period(),t)); cioè senza true.
Buon pomeriggio. Ho scritto una funzione che dovrebbe restituire il numero di barre quando un ordine è stato aperto:
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continua;
if (OrderType()>1) continua;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
return (iBarShift(Symbol(),Period(),t,true));
}
Tuttavia, restituisce sempre -1. Dove ho sbagliato? Grazie in anticipo.
Alla variabile t viene assegnato il prezzo di apertura, anche se è dichiarata come un intero
Alla variabile t viene assegnato il prezzo di apertura, anche se è dichiarata come un intero
Come si descrive una tale condizione?
Si prega di avvisare.
Se un estremo (ad esempio il massimo) della prima barra a 5 minuti del giorno corrente coincide con un estremo del giorno corrente (sul quotidiano), allora facciamo qualcosa. Come lo descriveresti?
aiutare le persone buone!!!
Ciao cari utenti della risorsa!
Si prega di aiutare chi deve leggere/scrivere un numero reale in un file.
Il compito è quello di leggere da un file di equilibrio, se l'equilibrio corrente è più - sovrascrivere il file.
Il problema è che emette sempre 0 (zero).
Con la scrittura/lettura di numeri interi non ho trovato questi problemi.
Ecco il codice:
doppio equilibrio;
int file_handle_bala;
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_READ);
//copiare la posizione, in caso di file vuoto - posizione = 0
se (FileSize(file_handle_bala)>0)
{
balance=FileReadDouble(file_handle_bala,DOUBLE_VALUE);
Alert(balance); ------------------------------------- qui è dove dovrebbe essere scritto zero anche se il saldo precedentemente salvato dovrebbe essere scritto
FileClose(file_handle_bala);
if (AccountBalance()>balance) ------------------------------------ e questa regola non funziona perché l'avviso sottostante non produce nulla
{
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE);
balance=AccountBalance();
Allarme (equilibrio);
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE);
FileClose(file_handle_bala);
}
}
else // se il file è vuoto
{
FileClose(file_handle_bala); // prima, chiudere il file aperto
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE); //aprire per scrivere
balance=AccountBalance();
FileWriteDouble(file_handle_bala,balance,DOUBLE_VALUE);
FileClose(file_handle_bala);
}
Grazie mille prima!!!
Nota questa linea
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE);
1. Dovreste essere più rispettosi e amichevoli nel pubblicare il vostro codice.
2. State cercando di scrivere un intero di 8 byte. MQL4 non ha un tale tipo di dati.
\Cosa ho fatto di male? Perché così tanti errori? (Ho bisogno di sapere il massimo(Ho bisogno di sapere il valore massimo dell'indicatore nelle ultime 10 barre). grazie in anticipo.
Buona giornata a tutti!
Sto scrivendo il mio primo bot e allo stesso tempo sto facendo conoscenza con MQL. Ho il seguente problema durante i test:
L'ordine OP_BUYSTOP viene eseguito subito dopo l'ordine, anche se a giudicare dal grafico, il prezzo non raggiunge il valore target (vedi sotto)
USDJPY,M5 (visivo)
Data 2011.09.19
Tempo 02:15
Aperto 76.903
Alto 76.909
Basso 76.890
Chiudere 76.890
Volume 66
Sto testando tutte le zecche.
Forse non capisco bene l'ordine OP_BUYSTOP? Comprare se il prezzo supera un certo valore, giusto?
Ecco un po' di codice sorgente che piazza un ordine
int ticket=OrderSend(Symb, OP_BUYSTOP, Lot, Price, 0, SL, TP);
\Cosa ho fatto di male? Perché così tanti errori? (Ho bisogno di sapere il valore massimo dell'indicatore per le ultime 10 barre). grazie in anticipo.
State dichiarando la funzione Hi:
all'interno della funzione start()