![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
Ciao Mladen Sir,
Dopo molto tempo vi sto chiedendo per favore di codificare Bollinger Band su MA. Come MA sull'indicatore MA. in una finestra separata. La media mobile non è necessaria per visualizzare nella finestra dell'indicatore. BB con deviazione decimale (0.01), forma EMA o SMA. Si prega di fare come al solito?
Grazie in anticipoalfa24
Non hai bisogno di un nuovo indicatore per questo
Usa qualsiasi ma che è già in una finestra separata, e poi basta trascinare le bande di bollinger in quella sottofinestra e scegliere i dati dell'indicatore precedente come campo del prezzo
alfa24
Non hai bisogno di un nuovo indicatore per questo
Utilizzare qualsiasi ma ...Sì signore, ma il problema è che non c'è un'opzione per la deviazione in decimali e un altro è se ho provato a usare più indicatori nella stessa finestra c'è confusione nei dati precedenti e nei primi dati. Quindi per favore
![](https://c.mql5.com/forextsd/smiles/cry_smile.png)
Ciao,
Non sono sicuro, se la maillink.dll funziona con build > 600.
Ho provato la maillink.dll con gmx e googlemail e ottengo sempre "-2"
dalla funzione MailInit(string,int,string,string); indietro :-(
Ho anche provato la xpMail.dll di codersguru, ma mi crasha il conto Metatrader, qualcuno conosce un'altra possibilità per inviare una mail da un EA a due diversi indirizzi di posta?
Ciao,
Non sono sicuro, se la maillink.dll funziona con build > 600.
Ho provato la maillink.dll con gmx e googlemail e ottengo sempre "-2"
dalla funzione MailInit(string,int,string,string); indietro :-(
Ho anche provato la xpMail.dll di codersguru, ma mi sta mandando in crash il mio conto Metatrader, qualcuno conosce un'altra possibilità per inviare una mail da un EA a due diversi indirizzi di posta?Le parti di stringa sono il problema.
Il vecchio metatrader 4 usava stringhe ANSI. Le hanno cambiate in stringhe unicode. Le stringhe Unicode usano 2 byte per carattere, mentre ANSI usa solo 1 byte per carattere. Questo è il motivo per cui stai avendo problemi - le DLL stanno ricevendo stringhe che sono illeggibili per loro
Si prega di correggere l'indicatore è necessario mettere la freccia al posto dei quadrati.
Si prega di correggere l'indicatore è necessario mettere la freccia al posto dei quadrati.
DMNIK
Il file ex4 non può essere modificato e alterato
Grazie per la chiara spiegazione!
Allora dovrebbe funzionare, se cambio ogni stringa in unicode, prima di chiamare le funzioni dalla dll?
Ci sono già funzioni per cambiare ANSI in unicode e unicode in ANSI
O non funziona perché la stringa Unicode è in un array?
Un'altra domanda:
Come posso riprodurre più file
PlaySound-wav in linea?
Ho provato con Sleep() tra, ma non funziona :-(
O non funziona perché la stringa Unicode è in un array?
Un'altra domanda:
Come posso riprodurre più file
PlaySound-wav in linea?
Ho provato con Sleep() tra, ma non funziona :-(sunshineh
Logicamente sono gli stessi: array di caratteri. Solo che il carattere ANSI prende 1 byte mentre il carattere Unicode prende 2 byte. È stato fatto per includere tutte le varie lingue del mondo (quando Unicode è stato inventato - niente a che fare con metatrader). Ora, se la dll si aspetta ANSI e riceve una stringa unicode, la interpreterà in modo sbagliato (e viceversa). Se la vostra dll sta usando dll dovete convertire le nuove stringhe in un array esplicito di caratteri senza segno (usando StringToShortArray() per renderlo accessibile alla dll ANSI) e il ritorno dovrebbe essere convertito in una stringa usando CharArrayToString() (per renderlo accessibile a metatrader)
________________________
Per quanto riguarda il sonno: la funzione Sleep() è disabilitata negli indicatori, funziona solo negli EA. E' sempre stato così (non è una novità di un nuovo metatrader).
Inoltre, metatrader esegue gli ordini in una pace del codice in modo sequenziale. Ciò significa che non si può iniziare a riprodurre un file audio e poi, senza essere terminato, andare avanti e riprodurne un altro. Inoltre, per quanto ne so, stanno limitando la durata del file sonoro (al fine di evitare il congelamento del terminale - come avrete probabilmente notato, cose come gli avvisi e i suoni sono centralizzati - vedete quando diversi grafici emettono allarmi nello stesso momento - quella è una singola finestra che vedete)
Ora potrei continuare a lungo, ma l'intero problema di metatrader è che non hanno risolto correttamente l'esecuzione di routine asincrone (in realtà non ne ha idea) e questo porta un sacco di limitazioni
Controllare se gli ultimi ordini chiusi erano redditizi
Salve,
Vorrei controllare se i miei ultimi tre ordini di vendita o di acquisto chiusi erano redditizi, e cambiare un valore di stringa a seconda di questo.
Ho questo codice (MT4):
{
OrderSelect(i, SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==BUY)
{
//for buy order
if(OrderType()==OP_BUY && OrderProfit()>0) last=1;
if(OrderType()==OP_BUY && OrderProfit()<0) last=0;
}
}
for(int j=(OrdersHistoryTotal()-1);j>=0;j--);
{
OrderSelect(j, SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==SELL)
{
//for sell order
if(OrderType()==OP_SELL && OrderProfit()>0) last2=1;
if(OrderType()==OP_SELL && OrderProfit()<0) last2=0;
}
}
Ma non funziona per me.
Come dovrei modificarlo?
Grazie per l'aiuto.