Stavo solo facendo un esempio, ci sono un sacco di altri algoritmi che sarebbe bene mettere su questo pulsante, lo spread si è allargato, il pulsante è stato premuto, un messaggio di testo è arrivato al mio telefono dicendo che il robot è fermo o 4 robot stanno facendo trading sul conto, il 5° controlla il margine del conto, quando il margine scende al valore impostato, si taglia l'auto-trading e tutti i robot fanno schifo fino a quando non vengo a vedere cosa e dove sta andando il drawdown.Ma la rimozione di un robot dal grafico è un cannone contro un coniglio... Il pulsante è una soluzione complessa che permette di uccidere tutti i robot con un algoritmo predeterminato.
Ho visto una soluzione per mql5 da qualche parte, ma non riesco a trovarla.
È quello che ho detto - è una soluzione radicale. La soluzione corretta è quella di cambiare il codice dell'Expert Advisor in modo che, nel caso di determinate circostanze, non esegua le azioni di trading e tutto ciò che è collegato ad esse. Per esempio, il controllo della diffusione è elementare:
voidOnTick()
{
double fPoint = Point();
if (fPoint <= 0.0)
return;
int nSpread = int(MathRound((Ask - Bid) / fPoint));
if (nSpread > 50)
return;
... Действия советника при нормальном спреде
}
Beh, il pulsante AutoTrade può essere premuto/sbloccato emulando Ctrl+E. Ma, come ho detto, questo è con WinAPI:
Esattamente, e pensavo che fosse un metodo dolorosamente semplice e mi sono completamente dimenticato di questa libreria. Grazie, ora possiamo fare quello che vogliamo
Fatto script MQL4 (codice sotto) che disegna rettangoli (foto sotto), ma ecco il problema. Per la linea tratteggiata STYLE_DOT funziona solo la larghezza 1, e con 2 o più viene disegnata una linea continua. Potete dirmi dov'è il mio errore o c'è qualcosa che ci viene nascosto?
#property strictvoidOnStart()
{
//---
RectCreate("rect1",Time[1],Low[1],Time[10],High[10],clrYellow,STYLE_DOT, 1, false);
RectCreate("rect2",Time[11],Low[11],Time[20],High[20],clrRed, STYLE_DOT, 2, false);
//---Sleep(20*1000);
ObjectsDeleteAll(0);
}
//--- Function creates rectanglevoid RectCreate(conststring f_name, // rectangle namedatetime f_time1, // first point timedouble f_price1, // first point pricedatetime f_time2, // second point timedouble f_price2, // second point priceconstcolor f_color, // rectangle colorconstENUM_LINE_STYLE f_style, // style of rectangle linesconstint f_width, // width of rectangle linesconstbool f_fill) // filling rectangle with color
{
if(ObjectCreate(0,f_name,OBJ_RECTANGLE,0,f_time1,f_price1,f_time2,f_price2))
{
ObjectSetInteger(0,f_name,OBJPROP_COLOR,f_color);
ObjectSetInteger(0,f_name,OBJPROP_STYLE,f_style);
ObjectSetInteger(0,f_name,OBJPROP_WIDTH,f_width);
ObjectSetInteger(0,f_name,OBJPROP_FILL,f_fill);
ObjectSetInteger(0,f_name,OBJPROP_BACK,false);
ObjectSetInteger(0,f_name,OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,f_name,OBJPROP_SELECTED,false);
}
}
Fatto script MQL4 (codice sotto) che disegna rettangoli (foto sotto), ma ecco il problema. Per la linea tratteggiata STYLE_DOT funziona solo la larghezza 1, e con 2 o più viene disegnata una linea continua. Potete dirmi dov'è il mio errore o c'è qualcosa che ci viene nascosto?
E disegnare manualmente e cambiare lo stile e lo spessore provato? E quale conclusione si può trarre da questi esperimenti?
Artyom Trishkin: Hai provato a disegnare manualmente e a cambiare lo stile e lo spessore? E quale conclusione si può trarre da questi esperimenti?
Credo di aver trovato la risposta. Qui dice che "Stile di linea. Si usa solo quando lo spessore della linea è 0 o 1". Questo deve essere il motivo per cui le linee di larghezza 2 e più non funzionano con linee che non siano solide.
Credo di aver trovato la risposta. Qui dice che "Stile di linea. Usato solo quando lo spessore della linea è 0 o 1". Questo deve essere il motivo per cui le linee diverse da quelle solide non funzionano con uno spessore di 2 o più.
Ho dato un'occhiata a Print e vedo che questa funzione restituisce -1, all'inizio pensavo che non ci fosse nessun ordine ma dopo un po' l'ordine è riapparso e sulla stessa barra è stata aperta un'operazione dopo lo stop.
Buon pomeriggio. Sapete se è possibile in MT4 e MT5 sovrapporre i grafici di uno strumento con diversi TF, così come gli indicatori per questi TF? Per esempio, voglio visualizzare in una finestra 3 grafici della coppia EUR/USD con TF: giorno, 4 ore e ora, e anche sovrapporre gli indicatori scorrevoli di questi TF. È possibile? Sarò felice per qualsiasi aiuto.
Stavo solo facendo un esempio, ci sono un sacco di altri algoritmi che sarebbe bene mettere su questo pulsante, lo spread si è allargato, il pulsante è stato premuto, un messaggio di testo è arrivato al mio telefono dicendo che il robot è fermo o 4 robot stanno facendo trading sul conto, il 5° controlla il margine del conto, quando il margine scende al valore impostato, si taglia l'auto-trading e tutti i robot fanno schifo fino a quando non vengo a vedere cosa e dove sta andando il drawdown.Ma la rimozione di un robot dal grafico è un cannone contro un coniglio... Il pulsante è una soluzione complessa che permette di uccidere tutti i robot con un algoritmo predeterminato.
Ho visto una soluzione per mql5 da qualche parte, ma non riesco a trovarla.
È quello che ho detto - è una soluzione radicale. La soluzione corretta è quella di cambiare il codice dell'Expert Advisor in modo che, nel caso di determinate circostanze, non esegua le azioni di trading e tutto ciò che è collegato ad esse. Per esempio, il controllo della diffusione è elementare:
Beh, il pulsante AutoTrade può essere premuto/sbloccato emulando Ctrl+E. Ma, come ho detto, questo è con l'aiuto di WinAPI:
Beh, il pulsante AutoTrade può essere premuto/sbloccato emulando Ctrl+E. Ma, come ho detto, questo sta già usando WinAPI:
Grazie! E come si può rendere triste una faccia sorridente)?
Beh, il pulsante AutoTrade può essere premuto/sbloccato emulando Ctrl+E. Ma, come ho detto, questo è con WinAPI:
Esattamente, e pensavo che fosse un metodo dolorosamente semplice e mi sono completamente dimenticato di questa libreria. Grazie, ora possiamo fare quello che vogliamo
Fatto script MQL4 (codice sotto) che disegna rettangoli (foto sotto), ma ecco il problema. Per la linea tratteggiata STYLE_DOT funziona solo la larghezza 1, e con 2 o più viene disegnata una linea continua. Potete dirmi dov'è il mio errore o c'è qualcosa che ci viene nascosto?
Fatto script MQL4 (codice sotto) che disegna rettangoli (foto sotto), ma ecco il problema. Per la linea tratteggiata STYLE_DOT funziona solo la larghezza 1, e con 2 o più viene disegnata una linea continua. Potete dirmi dov'è il mio errore o c'è qualcosa che ci viene nascosto?
Hai provato a disegnare manualmente e a cambiare lo stile e lo spessore? E quale conclusione si può trarre da questi esperimenti?
Credo di aver trovato la risposta. Qui dice che "Stile di linea. Si usa solo quando lo spessore della linea è 0 o 1". Questo deve essere il motivo per cui le linee di larghezza 2 e più non funzionano con linee che non siano solide.
Credo di aver trovato la risposta. Qui dice che "Stile di linea. Usato solo quando lo spessore della linea è 0 o 1". Questo deve essere il motivo per cui le linee diverse da quelle solide non funzionano con uno spessore di 2 o più.
Esattamente giusto. Ci sono stato anch'io.
Signori, per favore consigliatemi, ho preso una funzione da Kim che restituisce il numero di barra dell'ultima posizione aperta o -1.
Chiamo questa funzione e scrivo una condizione
Ho dato un'occhiata a Print e vedo che questa funzione restituisce -1, all'inizio pensavo che non ci fosse nessun ordine ma dopo un po' l'ordine è riapparso e sulla stessa barra è stata aperta un'operazione dopo lo stop.