Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 409

 
mefos:
Abbiamo bisogno di un semplice consigliere
E come regola, queste richieste da freelance contengono sempre la parola "semplice".
 
Artyom Trishkin:
Devi confrontare il numero di posizioni tracciate sull'ultimo tick con il numero sul tick corrente. Se l'attuale è inferiore - salva (ricorda) il valore attuale delle posizioni tracciate come "passato" ed elabora il fatto della chiusura.
Grazie. Capisco come tracciare da solo. Ho solo pensato che ci potrebbe essere un gestore di eventi.
 
Leanid Aladzyeu:

Non capisco. Che valore volete ottenere?

E quello che hai scritto l'ho letto così

{

Apertura di un ordine;

Se l'ordine si apre, allora

TotalOrder = TotalOrder+1;

}

) di default totalOrder = 0, ma dopo ogni apertura di un ordine il valore aumenterà, dopo 10 aperture (il valore sarà esattamente 10) il contatore di tutte le posizioni mai aperte (nessun controllo per tipo, per Magik e per simbolo = aggiungerà assolutamente tutti gli ordini aperti)

E la prossima condizione si presenta così

se TotalOrder non è uguale aOrdersTotal {}

Questo è più o meno quello che ho scritto)
 

Ciao, è possibile selezionare gli strumenti da una lista di strumenti in una variabile esterna in un indicatore o Expert Advisor?

Devo digitarli manualmente.

input stringa instr_1 = "ED-9.15";

ingresso stringa instr_2 = "Si-9.15";

ingresso stringa instr_3 = "BR-8.15";

Cordialmente Alexey.

 
twiling1983:

Ciao, è possibile selezionare gli strumenti da una lista di strumenti in una variabile esterna in un indicatore o Expert Advisor?

Devo digitarli manualmente.

input stringa instr_1 = "ED-9.15";

ingresso stringa instr_2 = "Si-9.15";

ingresso stringa instr_3 = "BR-8.15";

Cordialmente Alexey.

Salve. Direttamente - non sono sicuro, ma si può, per esempio, così:

enum ENUM_USED_SYMBOL
        {
         EURUSD = 0,
         GBPUSD,
         USDCHF,
         USDJPY
        };

const string symbols[ 4 ] = { "EURUSD", "GBPUSD", "USDCHF", "USDJPY" };
input ENUM_USED_SYMBOL = EURUSD;
string usedSymbol = "";		// Используемый символ
switch( inpSymbol )		// Всю эту конструкцию лучше обернуть в функцию, т.к. повторяться будет несколько раз
        {
         case EURUSD: usedSymbol = symbols[ 0 ]; break;
         case GBPUSD: usedSymbol = symbols[ 1 ]; break;
         case USDCHF: usedSymbol = symbols[ 2 ]; break;
         case USDJPY: usedSymbol = symbols[ 3 ]; break;
         default: Print( "Неизвестный символ!" );
        }
 
Tapochun:

Salve. Non sono sicuro direttamente, ma si potrebbe, per esempio, fare così:

Grazie, ma allora è più facile per me ricompilare il file ogni 3 mesi e specificare nuovi futuri =)
 
twiling1983:
Grazie, ma allora è più facile per me ricompilare il file ogni 3 mesi e specificare nuovi futuri =)
Sì, sembrano stampelle, ma... come opzione...
 

Salve. Come posso fare in modo che la finestra di un indicatore mostri forzatamente valori fino a 10.000 decimali, mostra solo valori fino a decimi, anche se non c'è normalizzazione nel codice.

http://i.shotnes.com/u/441/0813/1vyds1z0.15y.png

Saluti Alexey.

UPD ha trovato la risposta.

IndicatorSetInteger(INDICATOR_DIGITS,5);

 
twiling1983:

Salve. Come posso fare in modo che la finestra di un indicatore mostri forzatamente valori fino a 10.000 decimali, mostra solo valori fino a decimi, anche se non c'è normalizzazione nel codice.

http://i.shotnes.com/u/441/0813/1vyds1z0.15y.png

Saluti Alexey.

Per favore, usa gli strumenti integrati del forum quando incolli le immagini:Forum: Come incollare un'immagine
 

Per favore ditemi, quando si usa la Libreria Standard, quando si ottengono Ask e Bid, è necessario fare mysymbol.RefreshRates();

Cioè devo aggiornare o per i dati di Library non ho bisogno di aggiornare?

mysymbol.RefreshRates();
 double ask =mysymbol.Ask();
 double bid =mysymbol.Bid();

o
 double ask =mysymbol.Ask();
 double bid =mysymbol.Bid();
Motivazione: