
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
Un esame sommario suggerisce che dovrebbe funzionare. Ma si potrebbe migliorare l'efficienza.
Pensate a quanti oggetti diversi avete disegnato sul vostro grafico. Se clicchi *qualsiasi* di questi oggetti, dovrai fare un loop su ogni singolo ordine e cercare di trovare una corrispondenza. Molti oggetti probabilmente non hanno nulla a che fare con gli ordini. Questo è inefficiente.
Ecco perché ho suggerito di controllare il primo carattere di sparam per "#". Questo identifica automaticamente l'oggetto come collegato ad un ordine.
Inoltre, non c'è bisogno di fare un ciclo attraverso gli ordini. Il nome dell'oggetto e/o il testo dell'oggetto contengono già il numero del biglietto. Quindi estrai il numero del biglietto da lì e chiudi l'ordine
Esempio:
Si apre un ordine. Gli viene dato il numero di ticket 12345
Crea un OBJ_BUTTON con nome"#12345".
Il codice in OnChartEvent() sarebbe qualcosa come questo (non compilato, non testato, a notte fonda...):
{
int ticket=(int)StringSubstr(sparam,1); // extract the ticket number
if(OrderSelect(ticket,SELECT_BY_TICKET)) // select the order
{
if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,CLR_NONE)) // close the order
{
Print("# Error ",GetLastError());
}
}
}
Wow! Non sapevo di questo.
Quindi, hai menzionato due volte, e io esattamente non l'ho capito.
Ora lo testerò da solo e lo porterò nel mio file EA principale.
Grazie ancora.
Uso OrderTicket() per altri oggetti, ora vedo quando clicco su quell'oggetto - l'ordine si chiude.
Mi è piaciuto il tuo metodo, ma sembra che sia influenzare altri oggetti.
Altri oggetti di nome come questo qui è uno di loro.
Grazie in anticipo.
Uso OrderTicket() per altri oggetti, ora vedo che quando clicco su quell'oggetto - l'ordine si chiude.
Mi è piaciuto il tuo metodo, ma sembra che influenzi altri oggetti.
Altri oggetti di nome come questo qui è uno di loro.
Grazie in anticipo.
La soluzione più elegante è cambiare il tuo sistema di denominazione
Tuttavia, puoi ancora eliminare il numero d'ordine. Dipende solo dal formato di denominazione esatto.
Ma prima di tutto questo, qual è l'OBJPROP_TEXT del pulsante? Ci sono altri oggetti che hanno lo stesso OBJPROP_TEXT?
La soluzione più elegante è cambiare il tuo sistema di denominazione
Tuttavia, puoi ancora eliminare il numero d'ordine. Dipende solo dal formato esatto di denominazione.
Ma prima di tutto questo, qual è l'OBJPROP_TEXT del pulsante? Ci sono altri oggetti che hanno lo stesso OBJPROP_TEXT?
Sì! So che posso cambiare i nomi degli oggetti Button (anche io uso Prefix) se cambio i nomi dei pulsanti allora potrei cambiare molte cose, per esempio cancellare il sistema e altre cose che sono tutte collegate tra loro.
Qui sotto ci sono i nomi di Button e HLine.
"#"+IntegerToString(OrderTicket())+" -"+"Object Button"
(naturalmente, i nomi degli oggetti sono un po' più diversi, ma lo stesso metodo)
Grazie in anticipo.
Mercato chiuso
Forse ho trovato, ma non sono sicuro.
Se questo non è buono, per favore fatemelo sapere.
Grazie in anticipo.
//--- 2a volta modificato
Ehi, amico!
Grazie mille. Finora nessun problema. Funziona correttamente!
#Oggetti di crossover - Aperto
Ho affrontato diverse volte questo problema, a volte l'ho superato a volte ho rinunciato, ora non vorrei rinunciare ancora una volta.
Ho 2 oggetti " HLine e Button " che si incrociano, voglio dire che quando clicco su uno di loro, entrambi selezionati questo non è una buona cosa per me. ( BUTTON Width = 20, HLINE Width = come sai )
D: Come posso fare quando clicco sull'oggetto BUTTON, l'oggetto HLINE non viene selezionato mentre si incrociano, per favore?
(Posso facilmente selezionare HLINE dove non si incrociano)
Grazie in anticipo.
(Ci sto lavorando, ogni buon commento sarebbe meglio, per favore).
#Profit in Pips - Aperto |#Profit in Pips - Chiuso per ora - Ho risolto
Signor William- uso i vostri codici di calcolo "Pip, Point ... " codici di calcolo.
Ora cerco di ottenere il profitto in valore di pip con i codici seguenti. Ho 2 ordini, uno dei quali viene visualizzato correttamente (OP_BUY), il secondo non viene visualizzato correttamente - 399 - effettivo 400 (OP_SELL).
D: Sto sbagliando il calcolo del profitto in pip, per favore?
Grazie in anticipo.
( l'ultimo giorno ho controllato i forum in diversi siti web - che non è stato vantaggioso per me )
Forum sul trading, sistemi di trading automatico e strategie di trading di prova
Rilasciato MetaTrader 4 Build 574 con linguaggio MQL4 aggiornato e mercato delle applicazioni
whroeder1, 2014.01.27 14:11
Uno dei sorprendenti esempi di operatore " if " di una condizione complessa dal signor William.
Solo grazie!
Ho lottato negli ultimi 2 giorni per risolvere la mia condizione complessa con l'operatore "if", ma non posso risolvere il mio problema finché non ho trovato questo grande esempio.
Per favore qualcuno mi aiuti, faccio davvero fatica a risolvere questo problema.
#296
Grazie in anticipo.
Il codice sottostante a volte funziona perfettamente, a volte no. Non riesco a risolvere questo problema. Quando uso l'ordine singolo, funziona perfettamente, ma quando apro ordini multipli, questa funzione non funziona correttamente.
Per favore aiutatemi, e spiegatemi un po' di più (cosa c'è di sbagliato nel codice sottostante) che sarebbe meglio per me.
(Ora ci sto lavorando).
{
ticketnumber=(int) StringSubstr(sparam,1);
if(OrderSelect(ticketnumber,SELECT_BY_TICKET))
{
if(StringFind(sparam,Button_1,0)>=0)
{
// ...
}
if(StringFind(sparam,Button_2,0)>=0)
{
//...
}
for(i=OrdersTotal()-1; i>=0; i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if(Symbol()!=OrderSymbol()) continue;
update_1();
update_2();
update_3();
}
}
}
Grazie in anticipo.