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
È possibile inserire un file come array e quindi accedere a tale array.
Esempio allegato
Sì, a proposito, funziona. Non sapevo di questa possibilità. Grazie!
Ma la dimensione del file mq4 o mqh sarà 5 volte più grande del file png stesso. Ma è un'opzione abbastanza efficace, perché non influisce sulla dimensione del file ex4 stesso. (sarà la stessa del file ex5).
Chiedere agli sviluppatori di inserire il PNG qui.
Sono sicuro che saranno d'accordo.
Dubito che tutti i desideri e le richieste saranno implementati per MT4, specialmente quando è già stato annunciato che il supporto di MT4 finirà presto.
I PNG esterni sono stati risolti, il caricamento, il ridimensionamento e la trasparenza funzionano. Ma...
È realistico compilare un PNG all'interno di un file?
La funzionalità standard ...
#resource "\\Files\\123.png"
string nam_img = "::Files\\123.png"
... genera un errore di compilazione
Non sono entrato nel merito del fatto che il software funziona con un file esterno, ma come fare in modo che l'intero prodotto finale sia un unico file?
Altrimenti si perde il senso pratico di questa funzione. Non l'ho provato nella MT5. Nella MT4 si verifica un errore di connessione.
P.S. Presumo che sia teoricamente possibile scrivere uno script che converta il PNG in codice e lo inserisca, ad esempio, in MQH e lavori con loro in un unico contenitore. Ma non sono in grado di scrivere uno script del genere. Gli array di immagini sono una foresta cieca per me.
Oltre a quanto suggerito da Alexander (inserendo l'array uchar[]), c'è anche un metodo di salvataggio attraverso pseudo BMP, di cui ho già parlato
Forum sul trading, sui sistemi di trading automatizzati e sulla verifica delle strategie di trading
Canvas è fantastico!
Nikolai Semko, 2023.09.25 17:09
Purtroppo in MQL4 non c'è la possibilità di allegare una risorsa come array. Ma tutto il resto funziona.È possibile scrivere uno script che esegua tale conversione da png a bmp (la dimensione della pseudo-immagine di tale file sarà uguale in larghezza alla dimensione del file png stesso, e 1 pixel in altezza).
Ma si può fare con un altro algoritmo: Convertire il PNG con trasparenza in un vero BMP con trasparenza e allegarlo tramite una risorsa. La dimensione del file ex4 sarà leggermente più grande di quella del file png, perché in ex4 la risorsa del file bmp è memorizzata in formato packed. Ho controllato - l'aumento delle dimensioni di ex4 con bmp sarà del 10-30% in più rispetto a ex4 con la stessa immagine in formato png.
Personalmente, preferirei la variante suggerita da Slavsky. Mettere un array uchar separato in un file mqh separato, che conterrà il file png stesso, e poi inserirlo nel codice tramite un include, in modo che l'array gigante non ingombri il codice.
Inoltre, il vantaggio di questo metodo è che non è necessario inserire alcun file grafico nella sandbox di MQL4, come nel caso delle risorse.
Chiedere agli sviluppatori di inserire un PNG qui.
Sono sicuro che saranno d'accordo.
Aggiungiamolo a MQL5.
È possibile inserire un file come array e quindi accedere a tale array.
Esempio allegato
incredibile, da quanto tempo questo menu "Inserisci" è in ME? :O
vivi e impara...
Aggiungiamolo a MQL5.
Il mercato mostra che tutti i prodotti sono duplicati per entrambe le piattaforme. Molto probabilmente non utilizzeranno la variante non multipiattaforma, ma rimarranno su BMP, purtroppo.
È possibile allegare qualsiasi file in MQL5 anche adesso.
Tale allegato creerà un array statico con i dati, non una risorsa. Nel secondo caso, sembra che sia disponibile da altri EX4/5.Convertire PNG con trasparenza in BMP reale con trasparenza e allegarlo tramite risorsa.
Questa opzione non funziona in MT4, perché il BMP con canale alfa viene allegato ma non visualizzato.
Il mercato mostra che tutti i prodotti sono duplicati per entrambe le piattaforme. Molto probabilmente non utilizzeremo la variante non multipiattaforma e resteremo fermi al BMP, purtroppo.
Penso che PNG sia già diventato multipiattaforma. Funziona già con i file esterni. Esempi sopra riportati da Nikolay.
È possibile inserire un file come array e poi accedere a questo array.
In effetti, lo fa. Sono rimasto direttamente sorpreso.
Resta da provare a realizzare in Canvas tutte le cose con la gommosità, la trasparenza e il gioco è fatto - un piccolo miracolo mq4 è pronto.
Naturalmente, questo viene fatto per la multipiattaforma. Perché su MT4 - BMP, e su MT5 - PNG. Non va bene. Tutto dovrebbe essere PNG.
Resta da provare a implementare in Canvas l'intera cosa gommosa e trasparente e il gioco è fatto: un piccolo miracolo mq4 è pronto.
Quindi tutto è già pronto. Si può prendere un esempio di test dalla libreria PNG. Solo la riga con la risorsa
cambiatela con la riga
#include <PNG\iconspng.mqh>
dove nel file iconspng.mqh inseriamo l'array png_data[].
È solo necessario ricordare che in MT4 è importante inviare tutti i calcoli costosi da OnChartEvent al timer, altrimenti si ritarderà terribilmente. Pura stronzata da MQL4.
Ora lascerò una versione non laggante.
Sto per caricare una versione non laggosa.
Sì, non lagga nemmeno se la CPU è in modalità "best perfomance".
incredibile, da quanto tempo esiste questo menu "Inserisci" in ME? :O
vivere e imparare...
Tra i miei file, dove ho sperimentato questo tipo di inserimento, ho trovato un file creato nel novembre 2019. Mi interessava anche prima. Purtroppo non ho trovato lo script in cui è stato salvato il file immagine da tale array.
Tra i miei file, dove ho sperimentato questo tipo di inserimento, ho trovato un file creato nel novembre 2019. Mi interessava anche prima. Purtroppo non ho trovato lo script in cui il file immagine è stato salvato da tale array.