Aiuto per la codifica - pagina 337

 
alpha24:
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 anticipo

alfa24

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

 
mladen:
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

 

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?

 
sunshineh:
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.

File:
.........png  141 kb
.......png  30 kb
tro_bias_ez.ex4  12 kb
 
DMNIK:
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 :-(

 
sunshineh:
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):

for(int i=(OrdersHistoryTotal()-1);i>=0;i--);

{

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.

Motivazione: