[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 395
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Grazie mille per i consigli!!! Ho risolto il mio problema. Si è scoperto che il broker che stavo cercando, quando piazza un ordine a mercato, cioè secondo le condizioni, non mi permette di piazzare livelli di stop allo stesso tempo. Ora gli ordini vengono piazzati senza alcun livello di stop e io imposto i livelli di stop immediatamente dopo ogni ordine. Ho un problema con questo: solo una piccolissima parte degli ordini viene modificata, mentre la maggior parte degli ordini mostra i seguenti risultati nella sezione "Expert Advisors":
2011.05.19 09:46:55 Spacenewcomer-Svecha CLM1,M15: aperto #30906670 vendere 0.01 CLM1 a 99.79 ok2011.05.19 09:46:55 Spacenewcomer-Svecha CLM1,M15: biglietto non valido per la funzione OrderModify
2011.05.19 09:55:40 Spacenewcomer-Svecha ESM1,M5: aperto #30906787 comprare 0.01 ESM1 a 1337.50 ok
2011.05.19 10:00:03 Spacenewcomer-Svecha EURUSD,M15: ticket non valido per la funzione OrderModify
Ecco il testo del codice:
{res=OrderSend(Symbol(),OP_SELL,0.01,Bid,3,0,0, "basic",_MagicNumber,0,Red);
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+StopLoss*Point,Ask-TakeProfit*Point,0,Red);
return(0);
}
Inoltre, è il primo ordine che viene modificato dopo l'avvio dell'Expert Advisor!
Ovviamente, ho impostato la modifica dell'ordine sbagliato nel codice... Per favore, aiutatemi!
OrderSelect(res, SELECT_BY_TICKET);
OrderModify(OrderTicket(),, OrderOpenPrice(),NormalizeDouble(Ask+StopLoss*Point, Digits),NormalizeDouble( Ask-TakeProfit*Point, Digits),0,Red);
res=OrderSend(Symbol(),OP_SELL,0.01,Bid,3,0,0, "basic",_MagicNumber,0,Red);
OrderSelect(res, SELECT_BY_TICKET);
OrderModify(OrderTicket(), OrderOpenPrice(),NormalizeDouble( Ask+StopLoss*Point,Digits),NormalizeDouble( Ask-TakeProfit*Point,Digits),0,Red);
Cari programmatori, chiedo aiuto per modificare l'Expert Advisor: ho una posizione aperta e dopo un po' di tempo c'è un secondo segnale per aprire la posizione nella stessa direzione. Voglio riempire la posizione con il secondo segnale solo se il primo ordine è già nella posizione più. Ho implementato questo confrontando la dimensione del saldo e il capitale (se il capitale è superiore al saldo, l'ordine aperto è in più).
Potete suggerire un codice per determinare il profitto/perdita sull'ultimo ordine aperto che avete?
Se il suo numero di biglietto è salvato, allora semplicemente
Se il suo numero di biglietto è salvato, semplicemente
Grazie! Potete consigliarmi come salvare il biglietto dell'ultimo ordine?
Bene, l'opzione più semplice è dichiarare una variabile globale int ticket
e sostituire ticket = OrderSend(...) ovunque con ticket = OrderSend(...)
memorizzerà sempre il numero dell'ultimo ordine aperto
Oppure vedere solo l'argomento "Funzioni utili di KimIV"!
Bene, l'opzione più semplice è dichiarare una variabile globale int ticket
e sostituire ticket = OrderSend(...) ovunque con ticket = OrderSend(...)
memorizzerà sempre il numero dell'ultimo ordine aperto
o vedere l'argomento "Funzioni utili di KimIV" solo
Aiutami a trovare un errore,
Grazie
Non so... Pensavo che avrebbe funzionato, non funziona senza nessuno dei due, l'ho fatto e funziona....
PRICE_OPEN !!!! - non puoi usare questo prezzo! Funziona solo per gli indicatori. Usa Bid o Ask.
Grazie!!! Sì, è una possibilità certa.
Ragazzi una domanda più complicata......
Come fare in modo che un EA chiuda tutti gli ordini quando viene raggiunto un determinato profitto .... Chiudere solo gli ordini su un simbolo ...
Esempio: l'EA lavora su 3 coppie di importo per chiudere tutti gli ordini su un simbolo 100p ...
Se l'EUR ha più di 100p chiuderà solo gli ordini su EUR mentre altri possono avere 200p ...
Se prendo accountbalanse() allora l'advisor chiuderà solo quando la somma di tre coppie è più di 100p. questa opzione non mi va bene !!!!
Aiuto per favore.........