Qualsiasi domanda da un PROFI a un SUPER PROFI - 1. - pagina 44

 
TheXpert:

Irrealistico senza controllo nell'EA stessa.

In termini generali, a quanto pare, sì.

Ma se stabiliamo che il ricalcolo non deve essere eseguito più spesso di una volta in X ms, allora possiamo risolverlo semplicemente e direttamente.


TheXpert:

Non solo, non è necessario.

Beh, una singola linea inlude è sempre più conveniente dello sciamanesimo in ogni Expert Advisor che lo utilizza.

 
Andrey Khatimlianskii:

Beh, un inlude di una sola riga è sempre più conveniente che sputtanare in ogni EA che lo usa.

si può probabilmente fare, in stile fxsaber, con funzioni di input sovrascritte da definizioni

 
puoi provare "direttamente": per esempio, leggere i tick per tempo dall'inizio dell'ultimo minuto della barra al momento attuale. controlla il loro numero, cioè confronta la dimensione dell'array risultante - se rimane lo stesso, allora il tick è ancora lo stesso, già contato. arriva un nuovo tick - l'array aumenta; arriva una nuova barra - diminuisce
 
Andrey Khatimlianskii:

No, sarà sicuramente più lento del confronto bid/ask/ms.

Qual è il problema dell'affidabilità? Tutto ciò che conta è il fatto che qualcosa è cambiato.

O forse l'immutabilità, il tick è lo stesso, né l'offerta né la domanda sono cambiate.

 
Andrey Khatimlianskii:

In termini generali, probabilmente sì.

Ma se stabiliamo che il ricalcolo deve essere eseguito non più spesso di una volta in X ms, allora possiamo risolverlo semplicemente e direttamente.


Beh, l'inlusione di una linea è sempre più conveniente dello sciamanesimo in ogni Expert Advisor che lo utilizza.

Quello che è lo sciamanesimo, oltre all'inlude, è inserire una linea in più all'inizio di

OnTick(){ Count_tick++;

Se defyne non aiuta, Ctrl-H aiuta :)

Dovete ancora chiamare la funzione di libreria da un include, cioè inserirla nel vostro codice in qualche modo

//include file
static int Count_tick=0;
void SameTick(int &tick, bool &same_tick) { if(tick<Count_tick){tick=Count_tick;return ;} else same_tick=true; return ;}
#define  SameTick() static int my_tick=0;bool same_tick=false;SameTick(my_tick, same_tick)

// EA file

func1(){SameTick();   if (same_tick)... }
func2(){SameTick();   if (same_tick) ...}...

s.s. teoricamente su un mercato veloce ci possono essere diversi tick in un ms, tra i quali il primo e l'ultimo hanno la stessa offerta e domanda.

 
Igor Zakharov:
si può provare "direttamente": leggere i tick, per esempio, per tempo dall'inizio dell'ultimo minuto della barra fino al momento attuale. controllare il loro numero, cioè confrontare la dimensione dell'array ottenuto - se rimane lo stesso, allora il tick è ancora lo stesso, già calcolato. arriva un nuovo tick - l'array aumenta; una nuova barra diminuisce

Ma certo! C'è un Volume (che ticchetta). Questo è il numero di tick unico (all'interno di una barra, ma è sufficiente)!

Controllerò se un tale trucco dà un'accelerazione.

 
TheXpert:

probabilmente può essere fatto, in stile fxsaber, con funzioni di ingresso sovrascritte tramite definizioni

Aleksey Mavrin:

qual è lo sciamanesimo, a parte l'inludio, mettere una riga in più all'inizio del

Se definire non aiuta, Ctrl-H aiuta :)

Dovete ancora chiamare la funzione di libreria da un include, cioè inserirla nel codice in qualche modo

Sembra di sì. Se il volume sarà lento, de-filerò tutto ciò di cui ho bisogno.


Grazie a tutti per aver partecipato!

 
Aleksey Mavrin:

qual è lo sciamanesimo, a parte l'inludio, mettere una riga in più all'inizio del

Se definire non aiuta, Ctrl-H aiuta :)

Dovete ancora chiamare la funzione di libreria dall'inlude, cioè inserirla nel codice in qualche modo

s.s. teoricamente su un mercato veloce, ci possono essere diversi tick in un ms, tra i quali il primo e l'ultimo hanno la stessa offerta e domanda.

Aleksey Mavrin:

e qual è lo sciamanesimo, oltre all'inludere una linea in più da inserire all'inizio

Se definire non aiuta, Ctrl-H aiuta :)

Dovete ancora chiamare la funzione di libreria da un include, cioè inserirla nel vostro codice in questo modo

s.w. Teoricamente in un mercato veloce si possono avere diversi tick in un ms, tra i quali il primo e l'ultimo hanno la stessa offerta e domanda.

La statica viene inizializzata solo quando è attaccata al grafico, quindi ci sarà un errore di calcolo.

static int Count_tick=0;
 
Алексей Тарабанов:

Static si inizializza solo quando è attaccato al grafico, quindi ci sarà un errore di calcolo.

Non capisco quale sarà l'errore. È dichiarato a livello globale, non fa differenza.

 
Andrey Khatimlianskii:

Ma certo! C'è un Volume (che ticchetta). Questo è il numero di tick unico (all'interno di una barra, ma è sufficiente)!

se arriva una nuova zecca mentre la zecca viene elaborata, è possibile che cambi?