Simboli personalizzati. Errori, bug, domande, suggerimenti. - pagina 12

 
fxsaber:

Bug 16.

In precedenza, CustomTicksAdd generava barre da tick che si riferivano al giorno corrente. Questo non è il caso neanche adesso.

Questo bug sembra essere collegato al bug #14.

La rimozione del simbolo dalla panoramica del mercato è possibile per il seguente motivo. Chiamando consecutivamente CustomSymbolCreate - CustomSymbolDelete - CustomSymbolCreate con lo stesso nome di simbolo personalizzato, l'ID del simbolo veniva colpito. Pertanto, quando si controlla se un simbolo può essere rimosso dalla panoramica del mercato, il grafico di questo simbolo non è stato trovato (l'identificatore è corrotto), e il simbolo è stato rimosso in modo sicuro. Questo è stato corretto.

Quando si applica un tick a un grafico, la stessa cosa è possibile - la ricerca del grafico tramite l'identificatore del simbolo non ha dato un risultato

 
fxsaber:

Bug 15.

Eseguiamo il seguente indicatore sul simbolo di questo EA (con ChartSetSymbolPeriod-row rimosso)

Produce solo zeri.

Abbastanza giusto.

Chiamando CustomRatesUpdate si azzerano tutti i contatori delle modifiche e si ricalcolano gli indicatori da zero

 
Slava:

Giustamente.

Quando si chiama CustomRatesUpdate, tutti i contatori delle modifiche vengono azzerati e gli indicatori vengono ricalcolati da zero

Qual è la logica dietro questa decisione? Dopo tutto, ci sono barre invariate a sinistra.

 
fxsaber:

Qual è la logica dietro questa soluzione? Dopo tutto, ci sono barre invarianti a sinistra.

prev_calculated contiene un valore che è stato restituito nella precedente chiamata OnCalculate

L'indicatore può restituire qualsiasi valore in base alla propria logica. Pertanto, non ha senso correre attraverso tutti gli indicatori e cambiare il valore di prev_calculated nel proprio valore calcolato tenendo conto del timeframe. Ed è ad alta intensità di risorse, può anche essere irragionevolmente ad alta intensità di risorse.

È molto più onesto impostarlo a 0, come all'inizio, quando non si contava ancora nulla

 
Slava:

prev_calculated contiene il valore che è stato restituito nella precedente chiamata a OnCalculate

Lo scrittore di indicatori può restituire qualsiasi valore in base alla propria logica. Pertanto, non ha senso correre attraverso tutti gli indicatori e cambiare il valore di prev_calculated al proprio valore calcolato tenendo conto del timeframe. Ed è ad alta intensità di risorse, può anche essere irragionevolmente ad alta intensità di risorse.

È molto più onesto impostarlo a 0, come all'inizio, quando non si contava ancora nulla

Allora cosa dovremmo fare quando gli indicatori su un simbolo personalizzato sono completamente ricalcolati a causa di questo valore zero dopo ogni tick rollover?

Gli indicatori sono scritti appositamente per non rallentare il terminale, e qui inizia il contrario.

 
fxsaber:

Che dire poi di quando, su un simbolo personalizzato, dopo ogni tick rollover, gli indicatori sono completamente ricalcolati a causa di questo valore zero?

Questo non dovrebbe essere il caso. Controllare

 
Slava:

Non dovrebbe essere così. Controllare

Lasciami chiarire che non è solo CustomTicksAdd, ma anche RatesUpdate, che è un tick-through del passato. Infatti, anche il TicksAdd funzionante non ha formato le barre prima del giorno corrente. Dobbiamo formarli da soli. E abbiamo zero prev_calcolato a causa di questo.

 
fxsaber:

Lasciatemi chiarire che il rollover dei tick del passato non è solo CustomTicksAdd, ma anche RatesUpdate. Infatti, anche il TicksAdd funzionante non ha formato le barre prima del giorno corrente. Dobbiamo formarli da soli. E abbiamo zero prev_calcolato a causa di questo.

In ogni caso, quando si sostituiscono, rinfrescano o cancellano le barre, tutti gli indicatori saranno ricalcolati da zero. Questo è fuori questione.

L'aggiunta di zecche dovrebbe funzionare come al solito, cioè le zecche sono fresche, quelle attuali, ma non quelle di ieri/il giorno prima.

Ho eseguito il vostro Expert Advisor dalla descrizione del bug 11 e poi ho eseguito l'indicatore con una stampa su ogni OnCalculate

Ecco i registri.

2019.06.07 08:11:34.240 CustomHistoryTick (EURUSD,H1)   CustomSymbolCreate(Name,NULL,_Symbol) = true
2019.06.07 08:11:34.243 CustomHistoryTick (EURUSD,H1)   CustomRatesDelete(Name,0,0) = 0
2019.06.07 08:11:34.243 CustomHistoryTick (EURUSD,H1)   SymbolSelect(Name,false) = true
2019.06.07 08:11:34.243 CustomHistoryTick (EURUSD,H1)   CustomSymbolDelete(Name) = true
2019.06.07 08:11:34.243 CustomHistoryTick (EURUSD,H1)   CustomSymbolCreate(Name,NULL,_Symbol) = true
2019.06.07 08:11:34.321 CustomHistoryTick (EURUSD,H1)   CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,(TimeCurrent()-3600)*1000) = 1114
2019.06.07 08:11:46.158 Custom Moving Average (EURUSD11608,M1)  13  prev_calculated=0  begin=0  data=1.126668940063615
2019.06.07 08:11:46.173 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=13  begin=0  data=0.2989269387755102
2019.06.07 08:11:46.209 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.228 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989297959183673
2019.06.07 08:11:46.246 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989312244897959
2019.06.07 08:11:46.271 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989312244897959
2019.06.07 08:11:46.305 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.399 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989269387755102
2019.06.07 08:11:46.427 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989255102040816
2019.06.07 08:11:46.460 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989269387755102
2019.06.07 08:11:46.494 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989255102040816
2019.06.07 08:11:46.521 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989269387755102
2019.06.07 08:11:46.561 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.586 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.614 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989297959183673
2019.06.07 08:11:46.645 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.676 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989297959183673
2019.06.07 08:11:46.708 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.775 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.803 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989269387755102
2019.06.07 08:11:46.835 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989283673469387
2019.06.07 08:11:46.869 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989269387755102
2019.06.07 08:11:46.898 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989255102040816
2019.06.07 08:11:46.930 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989255102040816
2019.06.07 08:11:46.972 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.298924081632653
2019.06.07 08:11:46.993 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989226530612245
2019.06.07 08:11:47.024 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.298924081632653
2019.06.07 08:11:47.050 Custom Moving Average (EURUSD11608,M1)  14  prev_calculated=14  begin=0  data=0.2989255102040816
2019.06.07 08:11:47.085 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=14  begin=0  data=0.4171804373177843
2019.06.07 08:11:47.116 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171790087463557
2019.06.07 08:11:47.175 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.198 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171790087463557
2019.06.07 08:11:47.215 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171790087463557
2019.06.07 08:11:47.242 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.270 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171761516034985
2019.06.07 08:11:47.302 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.335 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171790087463557
2019.06.07 08:11:47.370 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171761516034985
2019.06.07 08:11:47.398 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171804373177843
2019.06.07 08:11:47.434 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171790087463557
2019.06.07 08:11:47.466 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.494 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.528 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.586 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.617 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.646 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.41717472303207
2019.06.07 08:11:47.679 Custom Moving Average (EURUSD11608,M1)  15  prev_calculated=15  begin=0  data=0.4171775801749271
2019.06.07 08:11:47.716 Custom Moving Average (EURUSD11608,M1)  16  prev_calculated=15  begin=0  data=0.5185379258642233
2019.06.07 08:11:47.740 Custom Moving Average (EURUSD11608,M1)  16  prev_calculated=16  begin=0  data=0.5185364972927947

Significa che tutto funziona correttamente in una situazione normale (le zecche sono di oggi, come dovrebbero essere sempre). Le zecche sono aggiunte, e l'indicatore è considerato con parsimonia

 
Slava:

In ogni caso, quando si sostituiscono, aggiornano, cancellano le barre, tutti gli indicatori saranno ricalcolati da zero. Questo è fuori questione.

L'aggiunta di zecche dovrebbe funzionare come al solito, cioè le zecche sono fresche, quelle di oggi, non quelle di ieri - quelle dell'altro ieri.

Eseguite il vostro Expert Advisor dalla descrizione del bug 11, poi eseguite l'indicatore con la stampa su ogni OnCalculate

Ecco i registri.

Significa che tutto funziona correttamente in una situazione normale (le zecche sono di oggi, come dovrebbero essere sempre). Le zecche sono aggiunte, e l'indicatore è considerato con parsimonia

È un'affermazione corretta?

Clicca sull'immagine per vedere l'animazione.


Inoltre, se è 00:00:01, non possiamo usare CustomTicksAdd per rimodellare una barra che era solo due secondi fa.

 
fxsaber:

È un'affermazione corretta?

Per il tester, il tick dell'altro ieri è fresco, quello di oggi dell'altro ieri.

Capisco il tuo punto di vista. Il tuo esercizio con i tic personalizzati di sei mesi fa è di natura decisamente tester. La tua situazione non è normale (nel senso di pratica normale)