Ho controllato il diario per l'errore ricevuto e si legge 4051. Ci sono più errori 4051. Fondamentalmente non funziona, e sono curioso di sapere se qualcun altro ha già risolto questo problema in precedenza e ha una spiegazione.
Quando hai un problema con una funzione leggi la documentazione su quella funzione. . . . OrderModify()<----- Click ME ! ! !
Non è possibile modificare il prezzo di apertura dell'ordine a 0,0 ... supponendo che tu abbia eseguito correttamente una OrderSelect(), usa OrderOpenPrice() per il secondo parametro che stai passando a OrderModify()
Simon, ho letto la documentazione della funzione OrderModify() e ho notato che l'esempio utilizzato è un trailing stop. Non voglio usare un trailing stop per l'EA. Questo perché se usassi un trailing stop, (secondo l'esempio) l'EA avrebbe bisogno che il mercato viaggiasse x punti sopra lo sl corrente per modificare lo sl al prezzo specificato. Fondamentalmente questo è troppo complicato. Voglio solo aggiungere uno stop loss all'ordine DOPO che l'ordine è stato inviato al mercato.
Comunque, sto provando nuove soluzioni anche attualmente.
Grazie.
Simon, ho letto la documentazione della funzione OrderModify() e ho notato che l'esempio utilizzato è un trailing stop. Non voglio usare un trailing stop per l'EA. Questo perché se usassi un trailing stop, (secondo l'esempio) l'EA avrebbe bisogno che il mercato viaggiasse x punti sopra lo sl corrente per modificare lo sl al prezzo specificato. Fondamentalmente questo è troppo complicato. Voglio solo aggiungere uno stop loss all'ordine DOPO che l'ordine è stato inviato al mercato.
Comunque, sto provando nuove soluzioni anche attualmente.
Grazie.
Simon,
tester di strategia:
1. Modalità visiva
2. Velocità 31
3. 2010.12.29
4. EURUSD
5. M15
eseguire"solo prezzi aperti", non ogni tick.
MetaEditor: Modifica -> Trova... -> "// scelta 1."
scelta 1. = nessun errore, ma ovviamente non voglio questo.
scelta 2. = scheda Journal -> Journal legge: "errore 4051".
Grazie.
Evidentemente, l'utilizzo della funzione OrderOpenPrice() all'interno dei parametri di OrderModify() è considerato un "parametro di funzione non valido" secondo l'errore 4051. Sto pensando "?" :) Potrei salvare il valore di OrderOpenPrice() e includerlo nei parametri della funzione OrderModify per fare ciò che desidero, ma davvero? Sicuramente c'è un modo più semplice! Torno alla vecchia macina per me ;)
Grazie.
Evidentemente, l'utilizzo della funzione OrderOpenPrice() all'interno dei parametri di OrderModify() è considerato un "parametro di funzione non valido" secondo l'errore 4051.
William,
Evidentemente, ho postato l'EA in un link che puoi scaricare e visualizzare in MetaEditor se vuoi fornire il tuo supporto. La funzione OrderSelect() non è attualmente un problema. Sai una cosa? Lo posterò solo per te, William.
//*************************************************** // EMERGENCY BUY ORDER STOP LOSS PROTECTION SECTION ; //*************************************************** OrderSelect(0,SELECT_BY_TICKET,MODE_TRADES); // was ticket. if(OrdersTotal()>0) { if(OrderType()==OP_BUY) { if(OrderSend1==true) { // if(iMA(NULL,0,1,0,MODE_SMMA,PRICE_CLOSE,1)<=OrderOpenPrice()-500*Point) { // choice 1. // {OrderModify(ticket,OrderOpenPrice(),Ask-500*Point,0,0,Blue);}}}} // choice 2. {OrderModify(ticket,OrderOpenPrice(),OrderOpenPrice()-500*Point,0,0,Blue);}}}}
Come hai richiesto.
Grazie.
William,
Evidentemente, ho postato l'EA in un link che puoi scaricare e visualizzare in MetaEditor se vuoi fornire il tuo supporto. La funzione OrderSelect() non è attualmente un problema. Sai una cosa? Lo posterò solo per te, William.
Come hai richiesto.
Grazie.
Simon, farò dei test per scoprirlo.
Grazie.
Ah-ha! Ho cambiato il biglietto numero 0 con 1, poi tutto ha funzionato alla perfezione. Sì, mi sbagliavo William... La funzione OrderSelect() era un problema. Ovviamente, la funzione OrderSelect() deve selezionare un biglietto. Se il numero del biglietto è 0, quale biglietto selezionerà l'EA? :O "?". Grazie a entrambi per la vostra assistenza.
Grazie a voi.
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Ciao forum MQL4,
Il codice di cui sopra funziona, ma sposta la sl su o giù quando il prezzo ask si muove su o giù.
Ho provato questo, come soluzione...
(l'ordine selezionato è un ordine di acquisto)
Ho controllato il giornale per l'errore ricevuto e si legge 4051. Ci sono più errori 4051. In pratica non funziona, e sono curioso di sapere se qualcun altro ha già risolto questo problema in precedenza e ha una spiegazione.
Non vedo perché questa soluzione non dovrebbe funzionare (sì, credo di selezionare correttamente l'ordine perché la prima soluzione errata OrderModify funziona).
Grazie.