Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 158

 
pronych:

Come attivare un aggiornamento forzato degli indicatori dall'interno, cioè l'evento OnCalculate?

Quindi, se non viene riparato (di seguito sono i problemi che possono sorgere).

O per timer (qualcosa del genere).

 
Silent:

Quindi, se non viene aggiustato (qui sotto ci sono i problemi che possono sorgere).

O con un timer (qualsiasi cosa).

Capisco. )) Avete provato a chiedere una funzionalità interna?

 
pronych:

Capisco. )) Avete provato a chiedere una funzionalità interna?

Non l'ho fatto, in generale sì (credo che MetaDraiver abbia scritto a SD), e la questione è stata sollevata più volte sul forum.

La risposta degli sviluppatori, se c'è, non lo so.

PS può essere utile.

Sviluppo dell'indicatore di volatilità multivaluta in MQL5

Lo sviluppo di un indicatore multivaluta per l'analisi della divergenza dei prezzi

Credo che dovrebbe essere stato pubblicato qui, non sono riuscito a trovarlo.

Nel primo, se c'è un errore

Linea 40 di CCanvas canvas; errore

variabile statica irrisolta 'CCanvas::m_default_colors'

aggiungere

uint CCanvas::m_default_colors[9]={0};

Discusso molto tempo fa, non l'ho controllato, cosa è cambiato.

Разработка мультивалютного индикатора волатильности на MQL5
Разработка мультивалютного индикатора волатильности на MQL5
  • tol64.blogspot.com
В этой статье рассмотрим разработку мультивалютного индикатора волатильности. Начинающий разработчик на MQL5 может столкнуться с некоторыми сложностями при разработке мультивалютных индикаторов, но после прочтения этой статьи всё станет намного проще. Основные вопросы при разработке мультивалютного индикатора относятся к синхронизации данных...
 

Proviamo a prendere Metadriver. Forse può far luce su ciò che gli sviluppatori hanno risposto. Volodya...

Володя (песня измученного ангольского народа)
Володя (песня измученного ангольского народа)
  • my.mail.ru
Песня посвящена ангольскому революционеру одному из командиров MPLA, убитому в 1975 году (в Луанде в честь него названа одна из улиц). Валодя – это было его боевое прозвище. После 75го года песня про Валодю была очень популярна в Анголе. Где только я ни слышал это имя, Незабываемое для сынов Анголы. Володя, Володя, Володя, славный защитник ангольского народа! Володя, Володя, Володя, противник империалиста, Который собирается установить режим...
 
pronych:

Proviamo a prendere Metadriver. Forse può far luce su ciò che gli sviluppatori hanno risposto. Volodya...

Non ho capito bene la domanda, non ho chiesto un ticker regolare. Come Silent al contrario stava per ..., insomma, speravamo l'uno nell'altro.

C'è stato un caso indiretto - già dopo che si è scoperto che la richiesta di dati al di fuori di TERMINAL_MAX_BAR causa il refresh di tutti gli indicatori sul grafico.

Ho rielaborato il mio ricaricatore di carte di pulsanti e l'ho inviato al Service Desk con la nuova versione. Ho anche chiesto nei commenti se speravo che il chip continuasse a funzionare... Non hanno detto niente... Mi andava bene... Ne ho ricavato un servizio.

;)

--

Beh, in senso stretto, non è un bug in realtà. Il terminale non va in crash, non rallenta nemmeno molto, semplicemente aggiorna i dati sul grafico. Capisco cosa stanno facendo lì. Tipo: richiesta al di fuori dei dati esistenti -> il terminale cerca di caricare i dati, seguito dall'aggiornamento del grafico. Semplice ed efficiente. Perché cambiare se non ci sono vittime?

// Riguardo al "ricalcolare l'indicatore dall'interno", non capisco il problema. La domanda non è chiara. Internamente, l'indicatore è il proprio master, ricalcola quello che vuole. Ma se utilizza un segnale esterno, è un'altra questione. Poi giriamo...

 

Amico, forse non dovresti.))

Non è abbastanza chiaro come prev_calculated influenzi specificamente il rendering dell'indicatore.

Nel mio caso, il tentativo di aggiornamento avviene sia da OnCalculate() che da timer. Multi-strumento.

Al tentativo fallito di ottenere righe, la funzione viene interrotta fino al prossimo tick o timer, nessun disegno ha luogo, ma valori non inizializzati (come sembra) appaiono sul grafico da qualche parte.

Anche se in Init() ArrayInitialize(Buffer ,...) è presente.

Forse ho un bug da qualche parte. Succede piuttosto raramente ed è difficile prenderlo.

Mi sembra che la normale funzione di accodamento forzato a OnCalculate() permetterebbe di minimizzare il gioco del tamburello negli indici multistrumento per i grafici con tick rari.

A proposito, è scritto nell'aiuto ;)

Все необходимые расчеты пользовательских индикаторов необходимо размещать в предопределенной функции OnCalculate().

PS. Ho capito il "chip".

PSPS/ Ho la sensazione che nel caso di cui sopra sia più affidabile utilizzare il calcolo dei valori senza utilizzare un indicatore per un EA. E separatamente un indicatore per la visualizzazione.

Ma poi dovrei calcolare la stessa cosa due volte.

 
MetaDriver:

Non ho capito bene la domanda, non l'ho chiesta a chi la fa regolarmente. Pensavo che Silent stesse per..., insomma, facevamo affidamento l'uno sull'altro.

...

Voglio dire questo.

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Errori, bug, domande

MetaDriver, 2013.08.03 17:55

"

Se volete essere sicuri di avere un segnale di ingresso per gli indicatori, dovreste usare il suggerimento di Pascal.

Per i miei scopi non è sempre adatto, ma in generale molti "problemi del fine settimana" verrebbero rimossi.

PerEsperti di trading, sistemi di trading automatizzati e test di strategie di trading.

Bug, bug, domande

MetaDriver, 2013.08.03 18:02

Sono d'accordo.

Sarebbe anche utile un "comando" per azzerare forzatamente tutti i prev_calcolati per il simbolo selezionato. Con la successiva generazione di zecche sarebbe una buona combinazione.



 

Durante i test visivi, nel momento in cui l'indicatore viene reinizializzato nell'Expert Advisor, l'indicatore con le vecchie impostazioni continua ad essere visualizzato sul grafico nel tester (infatti, ogni volta durante la reinizializzazione viene aggiunta un'altra "linea parallela"). Ho provato a fare IndicatorRelease ogni volta prima di ottenere un nuovo manico - non aiuta.

Ottenere nuove maniglie nel codice.

void f_indicator_reinit()
 { 
    
   IndicatorRelease(firstHandle);
   IndicatorRelease(secondHandle);
   IndicatorRelease(thirdHandle);
   IndicatorRelease(fourthHandle);  

   bughelper=bughelper+1;
   
   firstHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,HotPink,HotPink,10,MODE_SMA,PRICE_CLOSE,1);
   secondHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,White,White,10,MODE_SMA,PRICE_CLOSE,2);   
   thirdHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,Red,Red,10,MODE_SMA,PRICE_CLOSE,3);   
   fourthHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,Gold,Gold,10,MODE_SMA,PRICE_CLOSE,4); 
 }  

Ho introdotto la variabile bughelper perché l'indicatore non si ricalcolava da solo senza cambiare i suoi parametri di input.

 
Silent:

Questo è quello che voglio dire.

Ho risolto il problema del ricalcolo richiedendo i dati al di fuori di TERMINAL_MAX_BAR.

E poiché il grafico viene aggiornato in generale - non importa se la richiesta viene fatta dall'interno dell'indicatore o da un programma esterno. L'importante è che il programma (richiedente) richieda i dati proprio per questo simbolo e timeframe.

In realtà non ho incontrato casi in cui ho bisogno di aggiornare il grafico "sulla macchina". Sono completamente soddisfatto del mio pulsante // vedi il link sopra.

Con la generazione di tick (senza aggiornamento del grafico) il problema non è risolto, ma non l'ho risolto molto - può essere evitato nella maggior parte dei casi in molti modi (soprattutto con un timer).

 
IndicatorRelease(firstHandle);
Функция возвращает ошибку 4014 - 

ERR_FUNCTION_NOT_ALLOWED

4014

La funzione di sistema non può essere chiamata

Per favore, cosa potrebbe essere la ragione per cuiIndicatorRelease() non viene chiamato?

Motivazione: