Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 673
![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
Come rilevare gli allarmi tramite iCustom?
Forse conosci degli indicatori/consiglieri già esistenti per questo?
Sto scrivendo un EA che lavora sulla base della martingala.
Come posso fare in modo che chiuda tutti i suoi ordini aperti quando viene raggiunta la massima perdita ammissibile in pip su una coppia di valute?
Se ti serve davvero in pip e non in denaro, ecco una funzione da applicare proprio come l'ultima
//------------------ Возвращает суммарный профит открытых позиций в пунктах --------------------+
//===============================================================================================
double GetProfitOpenPosInPoint(string symb="0", int type=-1, int mg=-1) {
double p=0, prb=0, prs=0, pr=0;
if(symb=="0") { symb=Symbol();}
for(int i=0; i<OrdersTotal(); i++) {
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if((OrderSymbol()==symb||symb=="")&&(type<0||OrderType()==type)&&(mg<0||OrderMagicNumber()==mg)) {
p=MarketInfo(OrderSymbol(), MODE_POINT)*Sign;
if(OrderType()==OP_BUY) {
prb+=((MarketInfo(OrderSymbol(), MODE_BID)-OrderOpenPrice())/p);
}
if(OrderType()==OP_SELL) {
prs+=((OrderOpenPrice()-MarketInfo(OrderSymbol(), MODE_ASK))/p);
}
pr=prb+prs;
}
}}
return(pr);
}
Ciao,che codice devo aggiungere per far apparire gli avvisi di qualsiasi indicatore nell'EA?
Come rilevare gli allarmi tramite iCustom?
Forse conosci degli indicatori/consiglieri già esistenti per questo?
Ciao, volevo aprire un file.ex4 con mt4.exe e impostarlo per usarlo per tutti i file. Come posso ripristinare la "windows general shell library"? per qualche motivo mt4 non vede questo EA (robot) ora.
Non ci crederete, ma tutti!!! vogliono aprire un file .ex4, il problema è che non è mai stato aperto per la modifica, e non si apre.
I file modificabili sono solo .mq4, i file eseguibili sono .ex4
Eventi del terminale del cliente
Init
Subito dopo che il terminale client carica un programma (Expert Advisor o indicatore personalizzato) e inizia l'inizializzazione delle variabili globali, viene inviato un evento Init che viene gestito utilizzando OnInit(), se disponibile. Questo evento viene generato anche dopo un cambio di titolo e/o periodo del grafico, dopo aver ricompilato il programma in MetaEditor, dopo un cambio di parametri di input da un Expert Advisor o da una finestra di impostazione dell'indicatore personalizzato. Anche l'Expert Advisor viene inizializzato dopo il cambio del conto. L'evento Init non viene generato per gli script.
E se non è "fuori dalla finestra"? Per esempio, durante la modalità di ottimizzazione nello Strategy Tester ? Dove leggerlo?
Eventi del terminale del cliente
Init
Subito dopo che il terminale client carica un programma (Expert Advisor o indicatore personalizzato) e inizia l'inizializzazione delle variabili globali, viene inviato un evento Init che viene gestito utilizzando OnInit(), se disponibile. Questo evento viene generato anche dopo un cambio di titolo e/o periodo del grafico, dopo aver ricompilato il programma in MetaEditor, dopo un cambio di parametri di input da un Expert Advisor o da una finestra di impostazione dell'indicatore personalizzato. Anche l'Expert Advisor viene inizializzato dopo il cambio del conto. L'evento Init non viene generato per gli script.
E se non è "fuori dalla finestra"? Per esempio, durante la modalità di ottimizzazione nello Strategy Tester ? Dove leggerlo?
In modalità di ottimizzazione, ogni passaggio con nuovi parametri non è altro che una nuova esecuzione del programma. Di conseguenza dopo l'avvio passa l'evento OnInit().
Grazie Vladimir, lo capisco)). Ma dove sta scritto nella documentazione? Se metto Print, Alert, Comment in init(), non viene scritto nulla né sul giornale né sullo schermo. Come possiamo essere sicuri di ciò che sappiamo?
Ci sono limitazioni per alcune funzioni nel tester di strategia del terminale client.
Funzioni Print() e PrintFormat()
Per migliorare le prestazioni durante l'ottimizzazione dei parametri EA, le funzioniPrint() ePrintFormat() non vengono eseguite. L'eccezione è l'uso di queste funzioni all'interno del gestoreOnInit(). Questo facilita la ricerca delle cause di errore quando si verificano degli errori.
Le funzioni Alert(), MessageBox(), PlaySound(), SendFTP, SendMail(), SendNotification() e WebRequest()
Le funzioniAlert(),MessageBox(),PlaySound(),SendFTP(),SendMail(),SendNotification() eWebRequest() che interagiscono con il "mondo esterno" non vengono eseguite nello strategy tester.
E per essere sicuri - avviate il debug sulla storia e impostate il breakpoint in OnInit().
Non riesco a far stampare() qualcosa nel log del tester. Come si fa?