[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 317

 
kon12 писал(а) >>

Gente, un consiglio a chi lo sa. Diciamo che disegno un indicatore personalizzato sul grafico principale. Poi uso un altro indicatore personalizzato che coinvolge il primo indicatore tramite la funzione iCustom. Possiamo collegarli in modo che il parametro del primo indicatore nel grafico sia automaticamente cambiato nel secondo indicatore personalizzato?

Non capisco bene il compito, ma forse questo andrà bene:

Aiuto di MT Analytics - Indicatori tecnici

- Per esempio, potete creare l'indicatore Moving Average da Awesome Oscillator e ottenere così una linea di segnale oltre all'AO. Per questo dovreste disegnare prima l'indicatore AO, e poi usando la tecnica Drag`n'Drop imporre MA su AO e selezionare "Previous Indicator Data" nelle sue impostazioni nel campo "Apply to" (imporre l'indicatore sui dati dell'indicatore precedente). Se scegliete "First Indicator Data" allora verrà creata la MA, basata sui dati del primo indicatore, che non necessariamente sarà AO.

 
kon12 >> :

Gente, un consiglio a chi lo sa. Diciamo che disegno un indicatore personalizzato sul grafico principale. Poi uso un altro indicatore personalizzato che coinvolge il primo indicatore tramite la funzione iCustom. Posso collegarli in modo che il parametro del primo indicatore nel grafico sia automaticamente cambiato nel secondo indicatore personalizzato?

Se chiamate l'indicatore sorgente attraverso iCustom, lo salverete da qualche parte, quindi contrassegnatelo come un indicatore buffer e fate uscire l'indicatore sorgente e convertito come due buffer di un indicatore, sarà più facile da eseguire e cambiare i parametri. Se volete scherzare, potete usare globolvariabili.

 
Urain >> :

Non dovete cancellarlo, potete semplicemente cambiare i parametri tramite ObjectSet.

ps Ma in generale, il tuo caso deve essere esaminato caso per caso.

Grazie!

 
kon12 >> :

Gente, un consiglio a chi lo sa. Diciamo che disegno un indicatore personalizzato sul grafico principale. Poi uso un altro indicatore personalizzato che coinvolge il primo indicatore tramite la funzione iCustom. Posso legarli in modo che quando il parametro del primo indicatore cambia sul grafico, il parametro nel secondo indicatore personalizzato cambierà automaticamente?

Ho capito che vuoi cambiare manualmente il valore del parametro di ingresso dell'indicatore nel terminale e gli altri indicatori reagiranno a questo cambiamento?

Allora la risposta è chiara: usare iCustom non funzionerà. Questa funzione funziona nel seguente modo - l'indicatore con i parametri che avete specificato viene "creato" nella memoria del programma (non sul grafico) ("come se", cioè non viene tracciato), e alla prima chiamata viene elaborato utilizzando le funzioni init() e start(), cioè se c'è un ciclo "standard" come for(i=limit;i>=0;i--), vengono calcolate tutte le barre necessarie. Poi la prossima volta che iCustom viene chiamato, il ricalcolo non viene eseguito (se non è esplicitamente specificato nel corpo dell'indicatore). Non ci sono buffer separati assegnati per tali indicatori in MQL, quindi se avete bisogno di memorizzare i valori, è ragionevole copiarli in un buffer separato. Non c'è accesso diretto ai grafici anche in MQL (ma sarebbe utile IMHO).

 

Grazie per le vostre risposte, forse non ho formulato accuratamente ciò che voglio. Mi spiego: uso un indicatore ZigZag sul grafico principale. Inoltre uso il mio indicatore personale che mostra le lunghezze d'onda indicate dallo zigzag. L'indicatore accede allo zigzag attraverso iCustom. Ma al cambiamento dei parametri dello zigzag, dovrei entrare nel secondo indicatore e impostare lì gli stessi parametri. Come cambiare il parametro solo a zig zag. In Metastocke, sovrappongo semplicemente il secondo indicatore al primo ed è tutto.

 
Dato che mi sembra di aver capito bene la domanda, risponderò di nuovo: usando Metatrader e MQL - non c'è modo
 
alsu >> :
Visto che mi sembra di aver capito bene la domanda, rispondo ancora una volta: usando Metatrader e MQL, non c'è modo

No, perché. Potete passare i parametri attraverso una variabile globale, un oggetto grafico. Basta un segno di spunta per ridisegnarlo, ma voi lo sapete.

Certo, sarebbe meglio unire gli indici.

 
Svinozavr >> :

No, perché. Potete passare i parametri attraverso una variabile globale, un oggetto grafico. Hai solo bisogno di un tick per ridisegnarlo, ma puoi farlo, lo sai.

Certo, sarebbe meglio unire gli indici.

Beh, per renderlo "tale", non è un livello per principianti... In generale, mi sono chiesto per molto tempo se non ci sia un ambiente universale per ogni indicatore per registrare i suoi buffer reali (beh, quelli dove "effettivamente" i dati sono memorizzati) in uno spazio di indirizzi condiviso o, al peggio, come variabili globali. Allora sarebbe possibile applicare ai grafici direttamente da MQL invece di iCustom... Non l'ho ancora fatto.

 
alsu >> :

beh, per renderlo "così", è un po' oltre il livello del principiante... In generale, mi sono chiesto per molto tempo se non fare un ambiente universale, in modo che ogni indicatore registri i suoi buffer reali (sapete, quelli dove vengono memorizzati i dati "reali") in uno spazio di indirizzi condiviso o, al peggio, sotto forma di variabili globali. Allora sarebbe possibile applicare ai grafici direttamente da MQL invece di iCustom... Non l'ho ancora fatto.

Sarebbe bello. Molto limitante è l'incapacità di sincronizzare normalmente gli indicatori. Devo sincronizzarli come ho scritto o combinarli.

Ma il problema del disegno non può essere risolto con i mezzi standard, tranne che per disegnare in diverse sottocurve da un indicatore. E probabilmente nemmeno con mezzi interni. Se fossimo in grado di legare il buffer al numero della finestra come un gr.object, o anche generare una tale finestra dall'indicatore, allora... Beh, è solo fuori tema.

===

Ma l'idea dell'ambiente è molto pratica. Ha qualche idea al riguardo?

 
Forse un thread separato?
Motivazione: