Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 75
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
SELL_Lvl è il numero di ginocchia (ordini) della griglia di vendita eSELL_NoLossLevel è il livello totale (prezzo) della CU di questi ordini. Bene, l'idea è la seguente: abbiamo bisogno di una linea disegnata a livello di una linea di acquisto e ridisegnata rispettivamente quando vengono aperte nuove linee. Non so come fare.
Non capite come determinare la linea BU di tutti gli ordini?
Puoi dirmi come scriverlo per risparmiare risorse e avere prezzi aggiornati?
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
if(OrderSymbol()==symb) {
if(OrderType()==OP_BUY) {
tk=OrderTicket();
SymbolInfoTick(OrderSymbol(),Last_Tick); <<<
ask=Last_Tick.ask;
bid=Last_Tick.bid;
...
o come questo?
for(int i=OrdersTotal(); i>=0; i--) {
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
if(OrderSymbol()==symb) {
if(OrderType()==OP_BUY) {
tk=OrderTicket();
ask=Last_Tick.ask;
bid=Last_Tick.bid;
...
Puoi dirmi come scriverlo per risparmiare risorse e avere prezzi aggiornati?
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
if(OrderSymbol()==symb) {
if(OrderType()==OP_BUY) {
tk=OrderTicket();
SymbolInfoTick(OrderSymbol(),Last_Tick); <<<
ask=Last_Tick.ask;
bid=Last_Tick.bid;
...
o come questo?
for(int i=OrdersTotal(); i>=0; i--) {
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
if(OrderSymbol()==symb) {
if(OrderType()==OP_BUY) {
tk=OrderTicket();
ask=Last_Tick.ask;
bid=Last_Tick.bid;
...
Puoi dirmi come scriverlo per risparmiare risorse e avere prezzi aggiornati?
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
if(OrderSymbol()==symb) {
if(OrderType()==OP_BUY) {
tk=OrderTicket();
SymbolInfoTick(OrderSymbol(),Last_Tick); <<<
ask=Last_Tick.ask;
bid=Last_Tick.bid;
...
o come questo?
for(int i=OrdersTotal(); i>=0; i--) {
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
if(OrderSymbol()==symb) {
if(OrderType()==OP_BUY) {
tk=OrderTicket();
ask=Last_Tick.ask;
bid=Last_Tick.bid;
...
Direi che dipende dalla dimensione di OrdersTotal() e dalla probabilità di cambiamenti di prezzo durante il ciclo.
Secondo me, ottenere dati freschi direttamente nel ciclo è più corretto.
E penso che le variabili aggiuntive (evidenziate nel codice) siano assolutamente inutili.
C'è un esempio nella documentazione.
Probabilmente sarebbe meglio passare attraverso gli ordini nel ciclo e, a condizione che l'ordine successivo sia inferiore al precedente, selezionarlo per lavorare ulteriormente con esso. Così, quando usciamo dal ciclo, l'ordine da cancellare è già selezionato.
Oppure, puoi prima salvare la sua posizione nella lista degli ordini nel ciclo e poi selezionarlo dopo essere uscito dal ciclo usando l'indice salvato nel ciclo.
La prima opzione è più corretta. La seconda dovrebbe scrivereSymbolInfoTick(symb,Last_Tick); <<<<
Sì, l'ho appena copiato e non l'ho notato.
Mi sto chiedendo seSymbolInfoTick è il modo giusto per metterlo dentro il ciclo, se è necessario, o se può essere messo prima del ciclo. È usato in trailing stop, può tirare una griglia fino al 50pc.
Sì, l'ho appena copiato e non l'ho notato.
Mi sto chiedendo seSymbolInfoTick è il modo giusto per metterlo dentro il ciclo, se è necessario, o se può essere messo prima del ciclo. Usato in trailing stop, può tirare una griglia fino al 50pc.
Non riesci a capire come determinare la linea BU di tutti gli ordini?
Per il trailing stop è ovviamente meglio una volta prima del ciclo.
Ora lo sto lentamente riscrivendo per 5. Voglio dire che il prezzo può cambiare molto rapidamente e il livello può essere inferiore al valore dello stop-loss, il che porterà ad un errore. Voglio dire che il prezzo può cambiare molto rapidamente e il livello sarà inferiore al livello di stop consentito, il che porterà ad un errore.
Ho capito che questo cappello"SymbolInfoTick" è necessario per ottenere i prezzi reali?