Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 768
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
Beh, la mia ora locale è 1 ora più lunga di quella del server.
Allora, puoi spiegare cosa c'è di confuso in questi valori?
Non c'è nulla di confuso in questi valori, tutto è corretto lì, ma non è di questo che stiamo parlando.
Il problema del venerdì in particolare non è rilevante se la vostra ora locale è X ore più lunga di quella del broker.
Ma immaginate se sul vostro computer locale non c'è +1, ma -1 ora di differenza con il broker.
E c'è questa semplice condizione:
In questo caso:
1. il broker avrà il primo tick del venerdì, per esempio il tick di oggi, che ha un tempo di 2014.11.07 00:00
2. Prendere il numero di secondi trascorsi dal01.01.1970 00:00 fino al tick in questione, cioè2014.11.07 00:00
3. prendiamo il numero di secondi trascorsi dal 01.01. 1970 00:00 al06.11.2014 21:30 (è la data di ieri, perché prendiamo l'ora del PC locale, che al momento del tick non è venerdì, ma giovedì, che è il sesto giorno, o per essere più precisi, 2014.11.06 23:00, la differenza di 1 ora)
Voilà, il numero di secondi del punto 2 è maggiore di quello del punto 3.
Questo significa che il primo tick del venerdì eseguirà la stampa specificata nel codice, anche se se la funzioneStringToTime() prende la data dal server del broker, allora tutto funzionerebbe come previsto, la stampa apparirebbe il venerdì solo dopo che l'ora supera le21:30
Salve.
C'è un compito come questo. (non può attaccarlo a un segno di spunta)
Se un ordine pendente si innesca {allora...}.
Nel mio EA, uso Terminal.mqh per calcolare gli ordini.
Terminale // Mas_Tip[0] aperto Comprare
// se il numero di ordini di acquistoè aumentato di 1
se (Mas_Tip[0]+1)
{
funzione
}
Tutto funziona. Ma si innesca ad ogni prossimo tick.
Come attaccare questo caso a una zecca? E poi confrontare il valore sul tick precedente e sul tick attuale.
Puoi tradurre la riga evidenziata nella nostra lingua? Cosa dovrebbe essere e cosa si ottiene quando si esegue questa linea...
// se il numero di ordini diacquisto è aumentato di 1 allora...
{
funzione per esempio apre o chiude altri ordini...
}
Non deve essere cosìif (Mas_Tip[0]+1) possiamo fareif (Mas_Tip[0] >Mas_Tip[1]) // se ci sono più ordini Buy che Cell. Aprire uno in sospeso, per esempio.
Il punto è che al prossimo tick questo dato è di nuovo vero.
// se il numero di ordini diacquisto è aumentato di 1 allora...
{
funzione per esempio apre o chiude altri ordini...
}
se (Mas_Tip[0]+1)
Nelle parentesi di if dovrebbe esserci un bool, cioè vero o falso.
Qui è ovviamente int. Questo è un numero intero.
Naturalmente, vero è 1 e falso è 0 (se non mi sbaglio). Ma ancora non è giusto. Cosa restituisceMas_Tip[0]?
se (Mas_Tip[0]+1)
tra parentesi di if dovrebbe essere un bool, cioè vero o falso.
Ma qui è ovviamente int. Questo è un numero intero.
Naturalmente, vero è 1 e falso è 0 (se non mi sbaglio). Ma ancora non è giusto. Cosa restituisceMas_Tip[0]?
Numero di ordini di acquisto aperti.
// se il numero di ordini diacquisto è aumentato di 1 allora...
{
funzione per esempio apre o chiude altri ordini...
}
No, è quello che vuoi. In realtà non lo è. C'è un certo valore nell'array Mas_Tip[0], e se è maggiore di zero, la condizione if(Mas_Tip[0]) sarà vera. E se aggiungiamo 1 a questo valore, sarà sempre vero perché il numero di ordini aperti non può essere uguale a -1.
No, questo è il modo in cui lo vuoi. In effetti, non lo è. C'è un certo valore nell'array Mas_Tip[0] e se è maggiore di zero, la condizione if(Mas_Tip[0]) sarà già vera. E se aggiungiamo 1 a questo valore, sarà sempre vero perché il numero di ordini aperti non può essere uguale a -1.
Ho cercato di farlo in questo modo
}
Risulta essere un evento unico.
se (Mas_Tip[0]+1)
tra parentesi di if dovrebbe essere un bool, cioè vero o falso.
Ma qui è ovviamente int. Questo è un numero intero.
Naturalmente, vero è 1 e falso è 0 (se non mi sbaglio). Ma ancora non è giusto. Cosa restituisceMas_Tip[0]?
false è 0 e true se non è 0.
Prova questa linea
Il compilatore potrebbe avvertire di una possibile perdita di precisione, ma funzionerà.puoi scartareMas_Tip[0]
Come ottenere un evento. Si è aperto un Buy.
puoi scartareMas_Tip[0]
Come ottenere un evento. Si è aperto un Buy.