Auguri per MQL5 - pagina 100

 
YuraZ >> :

Vedo che c'è una funzione printf

e quanto sarebbe bello avere anche sprintf

Forse la funzione StringFormat() può sostituirla:

StringFormat

Formatta i parametri ricevuti e restituisce una stringa.

stringa StringFormat(
stringa format, // format string
... ... // parametri
);

Parametri

formato

[in] Stringa con il metodo del formato. Le regole di formattazione sono le stesse di PrintFormat.

...

[in] Parametri, separati da virgola.

Valore restituito

Stringa.


 
Rosh писал(а) >>

Forse la funzione StringFormat() potrebbe sostituirla:

Ho capito che alla funzione StringFormat dovrebbe essere assegnato un sinonimo di sprintf, simile a PrintFormat e printf. Ma in questo caso, dobbiamo implementare anche la funzione snprintf.

 
Rosh >> :

L'aiuto di MQL5 afferma:


Uh-huh... Solo questo evento per gli indicatori, che (per ora?) non permettono di lavorare con gli oggetti.

Ci è stato chiesto di implementare tale indicatore come Expert Advisor. Ma per gli Expert Advisors la funzione di conteggio delle barre modificate(OnCalculate) non è disponibile

 
Roffild писал(а) >>

Uh-huh... Solo questo evento è per gli indicatori che (ancora?) vietano di lavorare con gli oggetti.

Ci è stato chiesto di implementare un tale indicatore come Expert Advisor. Ma la funzione per calcolare le barre modificate(OnCalculate) non è disponibile per gli Expert Advisors.

In OnCalculate, passiamo il numero di barre elaborate prev_calculate che viene restituito dalla precedente chiamata di OnCalculate. Potete contare le barre elaborate in un Expert Advisor usando una variabile globale o locale statica.

 
stringo >> :

In OnCalculate il numero di barre elaborate prev_calculate, che viene restituito dalla precedente chiamata a OnCalculate. In un Expert Advisor, potete contare le barre elaborate da voi stessi usando qualche variabile locale globale o statica.

Posso sapere in un Expert Advisor che un utente ha cambiato il timeframe del grafico e tutte le barre devono essere ricalcolate?

Non c'è un tale problema negli indicatori.

 
Roffild писал(а) >>

Posso sapere nell'EA che l'utente ha cambiato il timeframe del grafico e tutte le barre devono essere ricalcolate?

Sì, è possibile. Prima la funzione OnDeinit sarà chiamata con i vecchi parametri e poi la funzione OnInit con i nuovi

 
Permettere agli esperti di visualizzare i loro dati nella "Finestra dei dati" poiché molti devono riscrivere gli indicatori sugli "esperti"
 

Mi piacerebbe che mql5 avesse l'evidenziazione della sintassi, e più importante, le parentesi alla chiusura (una coppia di parentesi è chiudibile), la sostituzione di funzioni e testo, la correzione della sintassi della scrittura dei comandi e i segni di confronto >=,<=,=<,=>, la possibilità di collegare finestre aggiuntive nell'Expert Advisor - per esempio ObjWindowCreate(string Name, bool TypeWindow=false) [false - come finestra indicatore, true - come finestra separata per coppie di valute].

Consiglierei anche di prendere l'interfaccia dell'editor da NotePade++

Vorrei poter nascondere o aprire il testo delle funzioni spuntando il codice della funzione e cliccando il segno meno nel pannello di sinistra contro il titolo della funzione.

Aggiungere il tipo di variabile come LineType - in modo che le proprietà dell'EA possano selezionare separatamente il tipo di linea visualizzata nelle sue impostazioni

Creare int separati per l'inizializzazione delle impostazioni quando EA sta lavorando - esempio int OnChangeProperty() { return(0)}

Aggiungere funzioni come AccountMaxLot() - la massima offerta attuale possibile di un cliente

Sarebbe anche bello aggiungere alla finestra di creazione dell'ordine un'etichetta che mostra l'importo richiesto per il lotto selezionato

Crea una funzione che mostra il profitto attuale di un ordine specifico con o senza considerare lo spread e lo swap - per esempio int CalculateProfitOrder(int OrderNumberHistoryList, bool spred=false, bool swop=false)

dove il numero è il numero dell'ordine nella lista degli ordini attivi

Fare il supporto delle variabili di stringa in unicode e la funzione di inserimento - stringa CharUTF(stringa Font, stringa 'u+0021') dove u+ è l'intestazione unicode e 0021 è il codice del simbolo nella tabella dei simboli

o stringa CharUTF(stringa Font, stringa U'0021'), meglio aggiungere una rappresentazione di carattere all'interprete, come data o colore con intestazione U'xxxxx'.

anche fare funzioni per tradurre le stringhe con stringa CharToUtf(string Text) e stringa UtfToChar(string UtfText).

E in generale, sarebbe meglio descrivere gli avatar per tipo, per comodità:

Abilitare l'Expert Advisor OnInit()

Spegnere l'Expert Advisor OnDeinit()

Cambio di time frame OnChangeTimeFrame(int TimePeriod=Period())

Cambia lo zoom OnChangeZoom( int CountBarPerWindow=WindowBarsPerChart())

Nuovo prezzo OnNewPrice()

Creare una nuova finestra OnCreateNewWindow(string NameWindow, int IndexWindow=WindowFind(NameWindow), bool TypeWindow=false)

Ricezione di una richiesta dell'investitore int OnInvestor (int IndexInvestor - ID dell'investitore (numero di conto), string NameInvestor - descrizione dell'investitore, ..... - parametri separati da virgole per il comando OrderSend( return(Id Create Order) ))

Creare un ordine - OnCreateOrder (int IndexOrder=OrderNumberHistoryList)

Modifica ordine - OnModifyOrder (int IndexOrder=OrderNumberHistoryList)

Evento per chiudere l'ordine per TP, SL, Data o manualmente OnOrderClose (int TypeCloseOrder= CLOSEMODE_ [TP, SL, Date, Manual], int IndexOrder=OrderNumberHistoryList, bool PriceType=true)

dove PriceType è un flag di chiusura dell'ordine true - commercio con un saldo positivo dell'ordine false - commercio con un saldo negativo dell'ordine

 
Forse questo è già stato implementato in qualche EA, ma vorrei vederlo nella versione base del programma, cioè che le etichette dei grafici su cui ci sono posizioni aperte o in sospeso siano evidenziate con un certo colore. Per esempio, l'etichetta del grafico su cui c'è una posizione aperta è evidenziata in giallo, se il prezzo si avvicina a T/P - in verde, a S/L, rispettivamente, in rosso. Sarebbe anche molto comodo contrassegnare la scorciatoia necessaria con qualche colore. Questo è molto utile quando si lavora con diversi strumenti (molti o tutti). Il sabato e la domenica, fai le tue analisi, selezioni le coppie per aspettare un segnale, le segni con un bel colore e le osservi.
 

E puoi in fondo al Mt, dove è riportato il nome del profilo e aggiungere il nome del modello imposto?

Nome del profilo e così si può vedere nella lista dei profili (c'è sempre un segno di spunta per sapere dove sei), ma quale modello è ora sovrapposto no.