Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 656

 
evillive:

Il problema non è per i principianti, ad essere onesti. È necessario salvare tutto sul grafico in un modello, poi bisogna aggiungere a questo modello l'indicatore richiesto con tutti i parametri e caricare un nuovo modello sul grafico. Il salvataggio e il caricamento del modello è possibile per mezzo di MQL, ma per modificare il file del modello è probabilmente necessario scrivere una DLL, non sono sicuro che lo script personalizzato abbia accesso alla scrittura dei file del modello.

Operazioni con i grafici

Funzioni per lavorare con i grafici. Tutte le operazioni sui grafici sono applicabili solo agli Expert Advisor e agli script.

Le funzioni che impostano le proprietà del grafico servono in realtà per inviargli i comandi di modifica. Se queste funzioni vengono eseguite con successo, il comando arriva alla coda generale degli eventi del grafico. La modifica del grafico viene eseguita nel processo di elaborazione della coda di eventi del grafico dato.

Per questo motivo, non ci si deve aspettare un immediato aggiornamento visivo del grafico dopo la chiamata delle funzioni. In generale, il grafico viene aggiornato automaticamente dal terminale in base agli eventi di cambiamento - arrivo di una nuova quotazione, cambiamenti nella dimensione della finestra del grafico, ecc. Per l'aggiornamento forzato dell'aspetto del grafico, usate il comando ChartRedraw().

Funzione

Azione

ChartApplyTemplate

Applica al grafico specificato un modello dal file specificato

ChartSaveTemplate

Salva le impostazioni correnti del grafico in un modello con il nome specificato

ChartWindowFind

Restituisce il numero della sottofinestra in cui si trova l'indicatore

ChartTimePriceToXY

Converte le coordinate del grafico dalla rappresentazione tempo/prezzo alle coordinate X e Y

ChartXYToTimePrice

Converte le coordinate X e Y del grafico in valori di tempo e prezzo

ChartOpen

Apre un nuovo grafico con il simbolo e il periodo specificati

ChartFirst

Restituisce l'ID del grafico che segue quello specificato

ChartNext

Restituisce l'ID del primo grafico del terminale client

ChartClose

Chiude il grafico specificato

ChartSymbol

Restituisce il nome del simbolo del grafico specificato

ChartPeriod

Restituisce il valore del periodo dell'elemento

 
Vinin:

Operazioni con i grafici


Sì, sì esattamente. Dov'è la modifica del modello (o l'aggiunta di un indicatore, come in MT5)? No. Quindi la DLL è necessaria, giusto? O ci sono altri metodi per aggiungere un indicatore a un grafico MT4 oltre alla modifica del modello?


La domanda riguardava l'aggiunta di un indicatore con l'aiuto di un Expert Advisor, qui

 
evillive:

Il compito non è per i principianti, ad essere onesti. È necessario salvare tutto ciò che si trova sul grafico in un modello, poi aggiungere l'indicatore richiesto con tutti i parametri a questo modello e caricare un nuovo modello sul grafico. Il salvataggio e il caricamento del modello è possibile per mezzo di MQL, ma per modificare il file del modello è probabilmente necessario scrivere una DLL, non sono sicuro che lo script personalizzato abbia accesso alla scrittura dei file del modello.

Cosa succede se apro gli indicatori necessari in una finestra separata, salvo tutto in un modello e poi eseguo il programma in un grafico "vuoto" e apro questo modello?
 
waroder:

Cosa succede se apro gli indicatori di cui ho bisogno in una finestra separata, salvo il tutto in un template. poi faccio partire il programma su un grafico "vuoto" e apro questo template. si apriranno anche tutti gli indicatori? o devo prescrivere l'apertura degli indicatori nel template stesso?

Dopo aver applicato il modello, tutti gli indicatori saranno automaticamente collegati alla finestra del grafico.
 
barabashkakvn:

Dopo aver applicato il modello, tutti gli indicatori saranno automaticamente collegati a questa finestra del grafico.


oceani) capito) grazie, altri

 
waroder:

Cosa succede se apro gli indicatori di cui ho bisogno in una finestra separata, salvo tutto in un modello. poi eseguo il programma su un grafico "vuoto" e apro questo modello. si apriranno anche tutti gli indicatori? o devo prescrivere l'apertura degli indicatori nel modello stesso?
dovete anche aggiungere il prog al template, altrimenti sarà scaricato quando si carica il template stesso, perché non è prescritto lì. Questo è un buon metodo per spegnere un EA, a proposito ;)
 
Mandami un indicatore che suoni quando due auto si incrociano)
 

Domanda 1 - Nelle nuove build dei parametri esterni EA (ME5 Build 934; MT4 Build 646), i commenti vengono visualizzati al posto dei nomi delle variabili. Come liberarsene? Per favore non suggerite di non scrivere commenti - ne ho bisogno (vedi domanda 2).

Domanda 2 - Per quanto ho capito, i commenti sono destinati al programmatore stesso per scrivere i suoi pensieri, note e simili mentre scrive il codice. Se è così (e questo è quello che insegnano nei libri e nei corsi), allora è un compito unico. E ci viene insegnato: una funzione - un compito. Di conseguenza, quando questo compito ha un altro compito - questo è esattamente il gioco di parole per quello che si fa nelle nuove costruzioni - si ottiene una vinaigrette. - È la cosa giusta da fare? Altrimenti, come faccio a scrivere i miei commenti, di cui ho bisogno, e non voglio che nessun altro li veda. Perché se i miei commenti si riflettono nel pubblico, allora che tipo di commenti sono? Questo è un compito completamente diverso.

Quindi abbiamo due compiti diversi: "commentare per me stesso mentre scrivo il codice" e "descrivere le variabili esterne".

Sembra che per il nuovo compito "descrizione delle variabili esterne", un'altra opzione indipendente del compilatore dovrebbe essere allocata. O almeno rendere questa opzione la scelta dell'utente (anche se questo già contraddice i principi di programmazione di base).

Se mi sbaglio, correggetemi.

 
Chiripaha:

Domanda 1 - Nei parametri esterni dell'EA nelle nuove build (ME5 Build 934; MT4 Build 646), i commenti vengono visualizzati al posto dei nomi delle variabili. Come liberarsene? Per favore non suggerite di non scrivere commenti - ne ho bisogno (vedi domanda 2).

Domanda 2 - Per quanto ho capito, i commenti sono destinati al programmatore stesso per scrivere i suoi pensieri, note e simili mentre scrive il codice. Se è così (e questo è quello che insegnano nei libri e nei corsi), allora è un compito unico. E ci viene insegnato: una funzione - un compito. Di conseguenza, quando questo compito ha un altro compito - questo è esattamente il gioco di parole per quello che si fa nelle nuove costruzioni - si ottiene una vinaigrette. - È la cosa giusta da fare? Altrimenti, come faccio a scrivere i miei commenti, di cui ho bisogno, e non voglio che nessun altro li veda. Perché se i miei commenti si riflettono nel pubblico, allora che tipo di commenti sono? Questo è un compito completamente diverso.

Quindi abbiamo due compiti diversi: "commentare per me stesso mentre scrivo il codice" e "descrivere le variabili esterne".

Sembra che per il nuovo compito "descrizione delle variabili esterne", un'altra opzione indipendente del compilatore dovrebbe essere allocata. O, almeno, rendere questa opzione la scelta dell'utente (anche se questo già contraddice i principi di programmazione di base).

Se mi sbaglio, correggetemi.


Quindi è conveniente che le variabili esterne possano essere rese più leggibili per se stessi e/o per gli utenti.

E per rendere i commenti sulle variabili esterne non visibili (visibili solo nel codice), potete semplicemente scriverli come seconda linea.

Così, per esempio, invece di:

input double AbcD=1.2345;//Хочу профит на отметке:

trasformarlo in due righe:

input double AbcD=1.2345;
//Желаемый уровень профита

Nel primo caso, invece di Abcd, le variabili esterne verrebbero visualizzate:"Voglio guadagnare a: 1,2345",

nel secondo:"AbcD 1.2345"

 
DiPach:

È conveniente che tu possa rendere le variabili esterne più leggibili per te stesso e/o per i tuoi utenti.

E affinché i commenti alle variabili esterne non vengano visualizzati (solo visibili nel codice), potete semplicemente scriverli come seconda linea.

Così, per esempio, invece di:

trasformarlo in due righe:

Nel primo caso, invece di Abcd, le variabili esterne verrebbero visualizzate:"Voglio guadagnare a: 1,2345",

nel secondo caso:"AbcD 1.2345".


Sì, non mi dispiace affatto, il che è comodo. Inoltre, capisco cosa volevano ottenere. Ma non si può implementare un compito mentre se ne uccide un altro.

È meno conveniente scrivere in 2 righe, perché se ci sono 5-10 variabili, possiamo sopportarlo (anche se, di nuovo, perché dovremmo sopportarlo?). Ma cosa succede se ci sono circa 200 di queste variabili? In questo caso la dimensione del codice diventerà molto più grande.
D'altra parte, se è un'altra opzione, dovrete comunque aumentare la dimensione del codice a spese della descrizione della variabile. Quindi forse la soluzione che suggerisci è più ottimale e concisa che introdurre la 2a opzione. Sono pronto a concordare.

Se ho capito bene, la traduzione a carrello è un vincolo per la descrizione delle variabili?

E ho un'altra domanda:

Sarebbe possibile fare le descrizioni opzionalmente in più lingue a scelta? Sarebbe ancora più conveniente. : )) In questo caso è meglio fare comunque un optional, piuttosto che usare i soliti commenti per la descrizione.

A proposito. Queste descrizioni di variabili sono comunque visualizzate con parsimonia nel dialogo delle opzioni, poiché le dimensioni delle colonne non mantengono alcuno stiramento e lamaggior parte della descrizione è "mangiata" dalla ristrettezza della colonna della descrizione. Ma c'è irragionevolmente molto spazio per i valori variabili. Quindi, abbiamo voluto migliorarlo... Ma questo è anche un passo avanti. : ))

Motivazione: