[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 40
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
Ho inserito un nuovo blocco nel mio EA per calcolare la dimensione del lotto della posizione da aprire. L'idea è la seguente:
1. Lo stop è impostato al massimo del giorno corrente nel caso di una posizione di vendita, e al minimo del giorno nel caso di una posizione di acquisto.
2. Quando scatta la condizione di apertura dell'ordine, questo blocco per il calcolo del lotto inizia ad essere eseguito. Si calcola la distanza dal massimo e dal minimo del giorno in punti e si fa un loop dei lotti partendo da 0,1 per trovare il lotto necessario (5% quando uno stop è scattato)
Ma tali righe appaiono nel mio diario:
2011.01.30 16:59:47 TestGenerator: errore dati non abbinati (limite di volume 1107 al 2011.01.13 14:45 superato)
Non appena spengo questo blocco, tutto va bene. Dove mi sbaglio? Puoi dirmelo per favore?
Ecco il codice stesso:
È improbabile che il messaggio del tester sia legato al vostro codice.
Prova e riprova per ricalcolare tutti i timeframe nell'Archivio quotazioni.
Il messaggio dice che il volume di 1107 è stato raggiunto alle 14:45, il che è completamente impossibile, dato che il trading è continuato fino alle 24:00.
Tuttavia, questo errore è abbastanza trascurabile.
Quando si cerca di compilare un file include (*.mqh) si verifica un errore '\fine_di_programma' - nessuna funzione definita. Cosa c'è che non va e come risolvere il problema?
extern double Lots = 0.0;
extern int Percent = 0;
extern int StopLoss = 100;
extern int TakeProfit = 40;
extern int TrailngStop = 100;
int Level_New;
int Level_Old;
Succede ed è normale. Per esempio, nel mio Variables.mqh - le variabili esterne e globali dell'esperto sono specificate... quando si compila scrive '\fine_del_programma' - nessuna funzione definita, qualcosa come nessuna fine nel programma, nessuna funzione definita, ma allo stesso tempo, quando si compila l'esperto stesso, tutto è OK - 0 errori, 0 avvisi. (*.mqh) - non compilare separatamente, quando si compila l'Expert Advisor stesso, il compilatore metterà insieme tutti i suoi inludi e deciderà se ci sono errori, nessun errore, ecc. :-))) Quindi tutto è normale. Prova a compilare se stesso...
P.S. Durante la compilazione di altri inludi, il compilatore potrebbe scrivere che qualche variabile globale non è definita... Naturalmente, non deve essere definito se lo avete in una linea completamente diversa. Notate l'ordine in cui sono collocati gli inludi... Se una variabile è definita in un inlude e usata in un altro, il primo inlude deve essere messo prima del secondo, altrimenti si verificherà un errore durante la compilazione - qualche variabile non è definita, in generale tutte le variabili globali sono definite nell'inlude esterno. O in alternativa possono essere definiti in qualsiasi altro, se solo questo usa queste variabili. In qualche modo... È piuttosto vago ma dovrebbe essere comprensibile. Provalo.
È improbabile che il messaggio del tester sia legato al vostro codice.
Prova e riprova per ricalcolare tutti i timeframe nell'Archivio quotazioni.
Il messaggio dice che il volume 1107 è stato raggiunto alle 14:45, il che è completamente impossibile, dato che il trading è continuato fino alle 24:00.
Tuttavia, questo errore è abbastanza trascurabile.
Nessun problema... Ma come si fa a determinare il valore attuale del TF nel codice?
Periodo() aiuterebbe
Ho guardato la copertina del libro di STUDIO da tutti i lati e ancora non ho capito niente...))
Lo vedo scritto così dappertutto:
La seguente scrittura è corretta se voglio ottenere Price = OrderOpenPrice() per l'ulteriore elaborazione e l'impostazione degli stop?
Per me funziona, ma è accettabile?
La tua linea è valida come la prima.
In questo modo è possibile ottenere qualsiasi informazione su un ordine aperto,
ma solo una volta al momento della conferma dell'apertura.
Vedere https://docs.mql4.com/ru/trading/OrderSend
Bene, quando questo blocco è commentato, tutto va bene nel tester. Quindi l'errore è in questo blocco...
È molto probabile che sia dovuto alla vostra gestione dei dati del giorno, che è incoerente nel volume con i minuti,
e il tester ti avverte di questo.Qualcuno può fare un lavoro migliore?
1. Uno stop viene piazzato sul massimo del giorno in una posizione di vendita.
2. Poi calcoliamo la distanza in pip dal prezzo corrente al massimo del giorno.
3. Calcola quanto sarà questa distanza in $ con 0,1 lotto e calcola quanto sarà in % del deposito. Se sarà inferiore al 5%, allora conta per 0,2 lotti e così via fino a quando non supera il 5%.
E poi questa sarà la dimensione del lotto di cui avete bisogno.
Il mio codice non funziona per qualche motivo.... anche se tutto sembra essere scritto correttamente.
CHI LO SA?
come faccio a fare riferimento programmaticamente alla Bollinger che dice - apply to "Previous Indicator's Data" ? cosa devo mettere nel campo applied_price ?grazie
Buona giornata a tutti. Domanda: Come faccio a far funzionare CheckEvents? Il file Events (da Komposter) è nella directory include. C'è un esempio in EventsExpert.mq4:
Ma non ho bisogno di Alert. Ho bisogno che l'ordine pendente sia cancellato quando l'ordine a mercato chiude allo Stop Loss.
Cosa dovrei mettere al posto dell'Allarme? Se questa funzione è adatta allo scopo.