Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 749
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
Questa formula è abbastanza facile da adattare alle esigenze. Devi solo prendere in considerazione il lotto minimo
Questo sembra un po' diverso
Dove X - Saldo per l'apertura del lotto minimo,
Ma dobbiamo ancora controllare il lotto minimo.
Perché abbiamo bisogno di tutte queste complessità, X che devono essere calcolate separatamente? Inoltre, avremo bisogno di ulteriori controlli...
Non sarebbe più facile controllare direttamente e onestamente la validità e l'accettabilità di tutti i valori della formula, e poi calcolarla onestamente?
A proposito, MathRound() arrotonda all'intero più vicino, cioè può facilmente sovrastimare erroneamente, il che può causare ulteriori conseguenze.
Povero piccolo ragazzo.
Se potete spiegarlo in una linea di codice e con commenti, come nel mio codice precedente, ve ne sarò estremamente grato.
"Ho dei dubbi", e non posso fare a meno di sentire che si tratta del meccanismo di caching dell'ambiente di mercato.
In modo che il terminale non debba "correre al server" per ogni occasione, come OrdersTotal(), OrderSymbol() ecc., l'ambiente di mercato viene copiato in una cache, che sembra essere diversa per ogni script, ma lo script tratta solo questa cache. La cache NON viene aggiornata automaticamente durante tutto il tempo di esecuzione della funzione principale dello script anche dopo l'esecuzione con successo di funzioni come OrderSend() che cambiano l'ambiente di mercato sul server, quindi, l'ordine che appare nello script "non è visibile", cioè fa un'illusione della sua assenza. Semplicemente non può essere rilevato nel ciclo for, ed è per questo che OrderModify() non viene chiamato. Questa è un'ipotesi che è nata sulla base di vaghi dubbi e sentimenti incomprensibili.
La cache descritta può essere forzatamente aggiornata usando la chiamata RefreshRates(), per esempio, immediatamente dopo la chiamata di OrderSend(). Controlla se l'ipotesi è corretta.
Se, tra l'altro, RefreshRates() ritorna vero, allora questa è un'ulteriore conferma indiretta dell'ipotesi.
Se me lo spieghi in una linea di codice e con commenti, come nel mio codice precedente, te ne sarò estremamente grato.
"Ho dei dubbi", e non posso fare a meno di sentire che si tratta di un meccanismo di caching dell'ambiente di mercato.
In modo che il terminale non debba "correre al server" per ogni occasione, come OrdersTotal(), OrderSymbol() ecc., l'ambiente di mercato viene copiato in una cache, che sembra essere diversa per ogni script, ma lo script tratta solo questa cache. La cache NON viene aggiornata automaticamente durante tutto il tempo di esecuzione della funzione principale dello script anche dopo l'esecuzione con successo di funzioni come OrderSend() che cambiano l'ambiente di mercato sul server, quindi, l'ordine che appare nello script "non è visibile", cioè fa un'illusione della sua assenza. Semplicemente non può essere rilevato nel ciclo for, ed è per questo che OrderModify() non viene chiamato. Questa è l'ipotesi che è nata sulla base di vaghi dubbi e sensazioni poco convincenti.
La cache descritta può essere forzatamente aggiornata usando la chiamata RefreshRates(), per esempio, subito dopo la chiamata OrderSend(). Controlla se l'ipotesi è corretta.
Se, tra l'altro, RefreshRates() ritorna vero, questa è un'ulteriore conferma indiretta dell'ipotesi.
Salve. Per favore consigliatemi, se lo so, sto cercando di calcolare uno StopLoss dal basso e dall'alto della prima barra, dopo che un ordine pendente è stato piazzato, rispettivamente per comprare e vendere. Ma non ho ottenuto nulla, solo 130 errori e nient'altro. Grazie in anticipo.
Controlla se OrderOpenPrice() è troppo vicino a SL, e se gli stop sono "sul lato destro del prezzo". Potete leggere qui:
I prezzi di StopLoss e TakeProfit non possono essere troppo vicini al mercato. La distanza minima di stop in pip può essere ottenuta utilizzando la funzione MarketInfo() con il parametro MODE_STOPLEVEL. L'errore 130 (ERR_INVALID_STOPS) sarà generato in caso di fermate sbagliate o non normalizzate.
In questo caso, cioè per un ordine pendente, il "mercato" è il suo "prezzo aperto pendente".
State normalizzando la cosa sbagliata.