Toute question d'un PROFI à un SUPER PROFI - 1. - page 44

 
TheXpert:

Irréaliste sans contrôle dans l'EA elle-même.

En termes généraux, apparemment, oui.

Mais si nous stipulons que le recalcul ne doit pas être effectué plus d'une fois en X ms, alors nous pouvons résoudre le problème simplement et directement.


LeXpert:

Et ce n'est pas tout, vous n'êtes pas obligé de le faire.

Eh bien, un inlude de ligne unique est toujours plus pratique que le chamanisme dans chaque conseiller expert qui l'utilise.

 
Andrey Khatimlianskii:

Eh bien, un inlude d'une ligne est toujours plus commode que de faire de l'esbroufe dans chaque EA qui l'utilise.

vous pouvez probablement faire, à la manière de fxsaber, avec des fonctions d'entrée remplacées par des définitions

 
vous pouvez essayer "directement" : par exemple, lire les ticks par temps depuis le début de la barre de la dernière minute jusqu'au moment actuel. vérifiez leur nombre, c'est-à-dire comparez la taille du tableau résultant - si elle reste la même, alors le tick est toujours le même, déjà compté. un nouveau tick arrive - le tableau augmente ; une nouvelle barre arrive - il diminue
 
Andrey Khatimlianskii:

Non, il sera certainement plus lent que la comparaison bid/ask/ms.

Quel est le problème de la fiabilité ? Tout ce qui compte, c'est le fait que quelque chose a changé.

Ou peut-être l'immuabilité, le tick est le même, ni le bid ni le ask n'ont changé.

 
Andrey Khatimlianskii:

En termes généraux, probablement oui.

Mais si nous stipulons que le recalcul ne doit pas être effectué plus d'une fois en X ms, alors nous pouvons le résoudre simplement et directement.


Eh bien, l'inlude d'une ligne est toujours plus pratique que le chamanisme dans chaque conseiller expert qui l'utilise.

Le chamanisme, outre l'inlude, consiste à insérer une ligne supplémentaire au début de

OnTick(){ Count_tick++;

Si defyne n'aide pas, Ctrl-H aide :)

Vous devez toujours appeler la fonction de bibliothèque à partir d'un include, c'est-à-dire l'insérer dans votre code d'une manière ou d'une autre.

//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. théoriquement sur un marché rapide il peut y avoir plusieurs ticks en une ms, parmi lesquels le premier et le dernier ont le même bid et ask.

 
Igor Zakharov:
vous pouvez essayer "directement" : lisez les ticks, par exemple, par temps depuis le début de la barre de la dernière minute jusqu'au moment actuel. vérifiez leur nombre, c'est-à-dire comparez la taille du tableau obtenu - s'il reste le même, alors le tick est toujours le même, déjà calculé. un nouveau tick arrive - le tableau augmentera ; une nouvelle barre diminuera

Bien sûr ! Il y a un volume (qui fait tic-tac). C'est le numéro de tique unique (dans une barre, mais c'est suffisant) !

Je vais vérifier si un tel truc donne une accélération.

 
TheXpert:

peut probablement être fait, à la manière de fxsaber, en remplaçant les fonctions d'entrée par des définitions.

Aleksey Mavrin:

c'est quoi le chamanisme, à part l'inlude, mettre une ligne de plus au début du

Si définir n'aide pas, Ctrl-H aide :)

Vous devez toujours appeler la fonction de bibliothèque à partir d'un include, c'est-à-dire l'insérer dans le code d'une manière ou d'une autre.

C'est ce qu'il semble. Si le volume sera lent, je vais désarchiver tout ce dont j'ai besoin.


Merci à tous d'avoir participé !

 
Aleksey Mavrin:

c'est quoi le chamanisme, à part l'inlude, mettre une ligne de plus au début de la

Si définir n'aide pas, Ctrl-H aide :)

Vous devez toujours appeler la fonction de bibliothèque à partir de l'inlude, c'est-à-dire l'insérer dans le code d'une manière ou d'une autre.

s.s. théoriquement sur un marché rapide, il peut y avoir plusieurs ticks en une ms, parmi lesquels le premier et le dernier ont le même bid et ask.

Aleksey Mavrin:

et c'est quoi le chamanisme, à part l'inlude une ligne de plus à insérer au début

Si définir n'aide pas, Ctrl-H aide :)

Vous devez toujours appeler la fonction de bibliothèque à partir d'un include, c'est-à-dire l'insérer dans votre code comme ceci

s.w. Théoriquement, dans un marché rapide, il peut y avoir plusieurs ticks en une ms, parmi lesquels le premier et le dernier ont la même offre et demande.

La statique n'est initialisée que lorsqu'elle est attachée au graphique, il y aura donc une erreur de calcul.

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

Static ne s'initialise que lorsqu'il est attaché au graphique, il y aura donc une erreur de calcul.

Je ne comprends pas quelle sera l'erreur. Elle est déclarée au niveau mondial, cela ne fait aucune différence.

 
Andrey Khatimlianskii:

Bien sûr ! Il y a un volume (qui fait tic-tac). C'est le numéro de tique unique (dans une barre, mais c'est suffisant) !

si un nouveau tick arrive pendant que le tick est en cours de traitement, est-il susceptible de changer ?