Questions des débutants MQL4 MT4 MetaTrader 4 - page 77

 
John Smith:


Dans le code, les valeurs sont prises comme suit :

Valeur[1] = courant/courant+6

Valeur[2] = courant+1/courant+7

Valeur[3] = courant+2/courant+8


La division est un morceau de formule de momentum avec une fenêtre de 6 mesures.

Y a-t-il une erreur dans cette entrée ?

Où avez-vous trouvé la fenêtre ?

Et que pensez-vous que votre expression Valeur[1] = courant/courant+6 sera égale à, si courant=1, je pense 7 ?

 

Bonjour, tout le monde !

J'ai besoin d'aide. Je suis en train d'écrire un EA. Il utilise un panneau de négociation basé sur CAppDialog. Le problème est que lorsque je commence à changer d'horizon temporel, le panel n'est pas toujours mais souvent divisé. Les entrailles de l'ancien panneau restent et un nouveau panneau est dessiné, mais pas correctement. Il ne me reste plus qu'à supprimer le graphique et à en commencer un nouveau, car il est impossible de continuer à travailler avec ce graphique et le panneau.

Je joins l'évaluation environnementale pour examen et analyse.

Merci pour toute votre aide.

Dossiers :
6f5djt.mq4  18 kb
 
Rustem71:

Bonjour, tout le monde !

J'ai besoin d'aide. Je suis en train d'écrire un EA. Il utilise un panneau de négociation basé sur CAppDialog. Le problème est que lorsque je commence à changer d'horizon temporel, le panel n'est pas toujours mais souvent divisé. Les entrailles de l'ancien panneau restent et un nouveau panneau est dessiné, mais pas correctement. Il ne me reste plus qu'à supprimer le graphique et à en commencer un nouveau, car il est impossible de continuer à travailler avec ce graphique et le panneau.

Je joins l'évaluation environnementale pour examen et analyse.

Merci pour toute votre aide.


Lorsque vous changez de TF, vous devez réinitialiser le panneau...

et creuser dans les classes, le panneau n'est pas supprimé complètement lors de la désinitialisation

 
Taras Slobodyanik:


Lors du changement de TF, le panneau doit être réinitialisé...

et de creuser dans les classes, le panneau n'est pas complètement supprimé lors de la désinitialisation.

Je n'ai pas encore tout à fait compris. Je dois fouiller dans beaucoup de classes. Mais la question est de savoir pourquoi le premier interrupteur fonctionne bien et le suivant tue le panneau. J'ai déjà enlevé toutes les choses inutiles. Je n'ai laissé que le cadre pour ainsi dire. Mais le problème demeure. Je suis en train de travailler dessus. Si vous avez des idées, je serais ravi d'en entendre parler.

Merci !


J'ai découvert que la première fois, le panneau est supprimé et recréé par l'init, et que la deuxième fois, le panneau reste suspendu.

Peut-être que l'iniit ne doit pas être chargé la deuxième fois ? Ou le supprimer d'une autre manière.

Dossiers :
mrdv0d.mq4  7 kb
 

Je commence à peine à comprendre, j'ai besoin de l'aide des pros.

Je veux utiliser l'indicateur stochastique intégré pour recevoir une notification d'un signal (croisement des stochastiques lent et rapide en dehors des limites 80/20).

J'ai compris comment obtenir des données avec iStochastic : j'écris mon propre indicateur, j'appelle iStochastic pour les barres, je l'analyse et j'envoie une alerte.

Je ne comprends pas ce qu'il faut faire dans cette situation : si j'utilise un grand cadre temporel, par exemple 4 heures, une nouvelle barre apparaîtra à la fin du cadre temporel,

et l'indicateur est appelé pour recalculer. C'est-à-dire que le délai d'attente est de 4 heures.

Mais je veux analyser l'information en permanence, c'est-à-dire dès que le prix change (bid ask) recalculer les stochastiques et

si les critères répondent à la condition, je veux être notifié. Je ne veux pas attendre la fin du timeframe et l'apparition d'une nouvelle bougie.

Veuillez indiquer où chercher et si la mise en œuvre est possible.

Peut-être que je ne comprends pas bien l'essence des processus et que je creuse au mauvais endroit, je suis un novice).

 
Rustem71:

Je n'ai pas encore tout à fait compris. Il y a beaucoup de classes à fouiller. Mais la question est de savoir pourquoi le premier interrupteur fonctionne bien et le suivant tue le panneau. J'ai déjà enlevé toutes les choses inutiles. Je n'ai laissé que le cadre pour ainsi dire. Mais le problème demeure. Je suis en train de travailler dessus. Si vous avez des idées, je serais ravi d'en entendre parler.

Merci !


J'ai découvert que la première fois, le panneau est supprimé et recréé par l'init, et que la deuxième fois, le panneau reste suspendu.

Peut-être que l'iniit ne doit pas être chargé la deuxième fois ? Ou le supprimer d'une autre manière.


C'est fait ! MerciTaras Slobodyanik m'a donné une idée.

Pendant l'init, interdit de créer un panneau s'il y avait un changement de TF. Et dans deinit interdit de supprimer le panneau si un changement de TF se produit.

 
VladPro77:

Je commence à peine à comprendre, j'ai besoin de l'aide des pros.

Je veux utiliser l'indicateur stochastique intégré pour recevoir une notification d'un signal (croisement des stochastiques lent et rapide en dehors des limites 80/20).

J'ai compris comment obtenir des données avec iStochastic : j'écris mon propre indicateur, j'appelle iStochastic pour les barres, je l'analyse et j'envoie une alerte.

Je ne comprends pas ce qu'il faut faire dans cette situation : si j'utilise un grand cadre temporel, par exemple 4 heures, une nouvelle barre apparaîtra à la fin du cadre temporel,

et l'indicateur est appelé pour recalculer. C'est-à-dire que le délai d'attente est de 4 heures.

Mais je veux analyser l'information en permanence, c'est-à-dire dès que le prix change (bid ask) recalculer les stochastiques et

si les critères répondent à la condition, je veux être notifié. Je ne veux pas attendre la fin du timeframe et l'apparition d'une nouvelle bougie.

Veuillez indiquer où chercher et si la mise en œuvre est possible.

Peut-être que je ne comprends pas bien l'essence des processus et que je creuse au mauvais endroit, je suis un novice).


// Инициализируем переменную для проверки
datetime time_svecha;        //время предыдущей свечи 
...

// В начале исполнительного кода проверяем на приход новой свечи:
if(iTime(NULL,PERIOD_CURRENT,0) == time_svecha) return;

...

// В конце исполнительного кода присваиваем время новой свечи 
time_svecha = iTime(NULL,PERIOD_CURRENT,0);
 
Pouvez-vous me dire ce qu'il faut faire dans le panneau de négociation pour qu'il puisse fonctionner dans le testeur, notamment en mode visualisation. Ou est-ce très compliqué ?
 
Rustem71:
Pouvez-vous me dire ce qu'il faut faire dans le panneau de trading pour qu'il puisse fonctionner dans le testeur, notamment en mode visualisation. Ou est-ce très compliqué ?


Si pour un indicateur, cela devrait fonctionner
Si c'est pour les conseillers experts, les événements ne se produisent pas dans le testeur de stratégie (pour les conseillers experts) et la minuterie ne fonctionne pas...

Si cela fonctionne dans le testeur, alors le panneau est dessiné différemment - demander des objets (changés / déplacés) et redessinés si nécessaire, réagir aux clics...
De même, émulez la minuterie, si nécessaire.

 
Rustem71:


Merci, mais ce n'est pas tout à fait la même chose)

Je décris la situation suivante.

1. Le cadre temporel s'est terminé, une bougie a été formée. L'indicateur est recalculé, il est dessiné.

2. Une nouvelle période de temps commence.( Il n'y a pas denouvelle bougie jusqu'à sa fin). L'offre et la demande changent pendant ce laps de temps.

Je veux réagir à ces changements de prix (dans l'intervalle de temps actuel, la bougie n'est pas encore formée).

Il ne s'agit même pas de dessiner les cartes, mais de fixer le moment par une condition. Je veux recevoir une alerte dès que les stochastiques ont traversé (il nous reste trois heures avant la fin de la période et la condition est remplie maintenant).

Et le graphique peut être dessiné lorsque la trame temporelle se termine.