Questa funzione calcola la somma dei profitti di tutte le operazioni aperte al livello di prezzo specificato. Tuttavia, c'è un'opinione citata che non tiene conto dello spread, e sono d'accordo. L'autore di questo parere ha suggerito questa soluzione:
Non mi sembra di capire il suo algoritmo; come viene considerato lo spread? Qualcuno può spiegare?
OrderProfit() conta per le posizioni corte all'attuale Ask, questo è dove il valore dello spread corrente è preso in considerazione. Se lo spread non cambia, quando il prezzo cambia dall'attuale Bid a newSL il profitto della posizione (qualsiasi, Buy o Sell, con un segno appropriato) in un lotto cambierà del valore del delta, che è scritto nell'operatore:
delta = ( newSL - Bid ) * TickValue;
In breve, OrderProfit() conta tutto, compresi gli spreads. Fissiamo il risultato per un certo momento ( il prezzo attuale) usando OrderProfit(). Da qui in poi, tutto quello che dobbiamo fare è monitorare le variazioni di prezzo.
OrderProfit() viene contato per le posizioni corte all'attuale Ask, è qui che vengono presi in considerazione i valori attuali dello spread. Se lo spread non cambia, quando il prezzo cambia dall'attuale Bid alla newSL il profitto di un lotto della posizione (sia Buy che Sell, con il segno corrispondente) cambierà del valore del delta, che è scritto nella dichiarazione:
delta = ( newSL - Bid ) * TickValue;
In breve, OrderProfit() conta tutto, compresi gli spreads. Fissiamo il risultato per un certo momento (il prezzo attuale) usando OrderProfit(). Da qui in poi, tutto quello che dobbiamo fare è monitorare il cambiamento del prezzo.
Credo di cominciare a capire, ma forse è più corretto:
OrderProfit per le posizioni corte è calcolato dal prezzo Ask, vero?
A proposito, MarketInfo( SymbolName, MODE_TICKVALUE) restituisce 329,02 per la coppia di valute EURUSD, ecco perché questa funzione non funziona correttamente per me.
Mislaid: Il modo in cui è stato scritto è corretto. Tanto quanto si muove il Bid, tanto quanto si muove l'Ask, se lo spread è invariato.
Per esperienza personale, la diffusione è di solito invariata e abbastanza forte). Durante i movimenti bruschi ho visto lo spread aumentare da 8 a 80 pips su un cinque cifre.
2013.08.07 12:35:41 2012.06.06 05:29 Puria - 1.452 - SQ EURUSD,M30: Errore 4002 (array index - out of range)
2013.08.07 12:35:41 2012.06.06 05:29 Puria - 1.452 - SQ EURUSD,M30: Tentativo di aprire un ordine di acquisto. In attesa di una risposta.
Di conseguenza, gli ordini non sono aperti. Come eliminare l'errore? Quali sono le ragioni?
Sarei felice di aiutare.
Non molto sarà chiaro dai soli messaggi del terminale, non molto ti aiuterà se non posti il codice EA. Da qualche parte nel tuo array stai scrivendo un lotto di dati inesistente, come uno dei presupposti, ma indovinare non è il mio profilo.
Quello che hai chiamato Trailing in realtà non lo è, è calcolato in un modo diverso e il suo comportamento può essere illogico.
Anche se i nostri concetti dei termini non coincidono, ma lei mi capisce, vero?
Risolto il problema, era qui:
Questa funzione non teneva conto di tutti i trade aperti, quindi ho dovuto cambiare le condizioni del ciclo. Ora appare così:
Questa funzione calcola la somma dei profitti di tutte le operazioni aperte al livello di prezzo specificato. Tuttavia, c'è un'opinione citata che non tiene conto dello spread, e sono d'accordo. L'autore di questo parere ha suggerito questa soluzione:
Ma confesso di essere onesto, non lo capisco come scrive:
Ma, ad essere onesti, non lo capisco come scrive:
Non mi sembra di capire il suo algoritmo; come viene considerato lo spread? Qualcuno può spiegare?OrderProfit() conta per le posizioni corte all'attuale Ask, questo è dove il valore dello spread corrente è preso in considerazione. Se lo spread non cambia, quando il prezzo cambia dall'attuale Bid a newSL il profitto della posizione (qualsiasi, Buy o Sell, con un segno appropriato) in un lotto cambierà del valore del delta, che è scritto nell'operatore:
delta = ( newSL - Bid ) * TickValue;
In breve, OrderProfit() conta tutto, compresi gli spreads. Fissiamo il risultato per un certo momento ( il prezzo attuale) usando OrderProfit(). Da qui in poi, tutto quello che dobbiamo fare è monitorare le variazioni di prezzo.
OrderProfit() viene contato per le posizioni corte all'attuale Ask, è qui che vengono presi in considerazione i valori attuali dello spread. Se lo spread non cambia, quando il prezzo cambia dall'attuale Bid alla newSL il profitto di un lotto della posizione (sia Buy che Sell, con il segno corrispondente) cambierà del valore del delta, che è scritto nella dichiarazione:
delta = ( newSL - Bid ) * TickValue;
In breve, OrderProfit() conta tutto, compresi gli spreads. Fissiamo il risultato per un certo momento (il prezzo attuale) usando OrderProfit(). Da qui in poi, tutto quello che dobbiamo fare è monitorare il cambiamento del prezzo.
Credo di cominciare a capire, ma forse è più corretto:
OrderProfit per le posizioni corte è calcolato dal prezzo Ask, vero?
A proposito, MarketInfo( SymbolName, MODE_TICKVALUE) restituisce 329,02 per la coppia di valute EURUSD, ecco perché questa funzione non funziona correttamente per me.
Finora ho deciso di usare un trucco, cioè MarketInfo(SymbolName, MODE_TICKVALUE) per contare diversamente:
Finora ho deciso di usare un trucco, cioè MarketInfo(SymbolName, MODE_TICKVALUE) per contare diversamente:
Il modo in cui è stato scritto è corretto. Tanto quanto si muove il Bid, tanto quanto si muove l'Ask, se lo spread è invariato.
Per esperienza personale, la diffusione è di solito invariata e abbastanza forte). Durante i movimenti bruschi ho visto lo spread aumentare da 8 a 80 pips su un cinque cifre.
Un doppio top può essere codificato (in modo affidabile)?
Quando si testa un Expert Advisor nel diario appare un errore
2013.08.07 12:35:41 2012.06.06 05:29 Puria - 1.452 - SQ EURUSD,M30: Errore 4002 (array index - out of range)
2013.08.07 12:35:41 2012.06.06 05:29 Puria - 1.452 - SQ EURUSD,M30: Tentativo di aprire un ordine di acquisto. In attesa di una risposta.
Di conseguenza, gli ordini non sono aperti. Come eliminare l'errore? Quali sono le ragioni?
Sarei felice di aiutare.
Quando si testa un EA, nel log appare un errore
2013.08.07 12:35:41 2012.06.06 05:29 Puria - 1.452 - SQ EURUSD,M30: Errore 4002 (array index - out of range)
2013.08.07 12:35:41 2012.06.06 05:29 Puria - 1.452 - SQ EURUSD,M30: Tentativo di aprire un ordine di acquisto. In attesa di una risposta.
Di conseguenza, gli ordini non sono aperti. Come eliminare l'errore? Quali sono le ragioni?
Sarei felice di aiutare.