[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 103

 
Reshetov:

Non, elle ne doit rien à personne. Il y a une différence entre un démonstrateur et un testeur. Par exemple, le testeur n'affichera jamais d'erreur lors de l'ouverture des commandes, si tous les paramètres de OrderSend() sont corrects. Mais un serveur commercial, au contraire, le fera.

C'est pourquoi nous devons modifier les programmes après le testeur et les exécuter ensuite sur la démo, afin qu'ils puissent gérer de manière adéquate les situations exceptionnelles, qui ne se produisent pas dans le testeur.

Merci ! !!
C'est une information très utile pour moi))
 
Reshetov:
Utilisez la barre de temps Time[x].


Cela ne fonctionnera pas ici, car dans la ligne suivante sur la même barre, cette première figure formée sera initiée comme la seconde aussi.... Et je dois les séparer... séparé

pour ensuite comparer les bas - si long et les hauts - si court...

......
if (AO3 < 0 && AO3 > AO2 && AO2<0 && AO2 < AO1 && AO1 < 0 && fl1==false && fl2==false) {a1 = AO2; fl1=true;Time_Figure1=TimeCurrent(); Print ("образование первого пика",DoubleToStr(a1, 6),"Время: ",Time_Figure1);}// определение наличия 1-го пика, флаг установлен
 Print ("Образование первого пика",DoubleToStr(a1, 6),"Время1: ",Time_Figure1);
 sleep (2000);
 if (AO3<0 && AO3>AO2 && AO2<0 && AO2<AO1 && AO1<0 && fl1==true && fl2==false && TimeCurrent() > Time_Figure1)  // определение наличия 2-го пика, флаги установлены
      { 
        a11 = AO2; fl1=true; fl2=true; Print ("Образование второго пика", DoubleToStr (a11,6), "Время2: ",Time_Figure2);
.....

 
robot:

Si ce n'est pas difficile d'écrire un modèle, je n'ai pas encore les idées claires).

Merci de votre attention.
Je vous suggère de regarder des exemples de codage de trading, par exemple, ici
 
Roman.:


Cela ne fonctionnera pas ici, car dans la ligne suivante sur la même barre, cette première figure formée sera initiée comme la seconde aussi.... Et je dois les séparer... séparé

pour une comparaison ultérieure des bas - si long et des hauts - si court...

Pas comme ça. Si vous avez la barre de signal AO en premier, alors regardez à partir d'elle et cherchez le reste dans l'histoire. Lorsque vous ouvrez une position, retenez l'heure d'ouverture de la barre et n'ouvrez pas à nouveau sur celle-ci. Dès que la prochaine barre AO est formée, recommencez à chercher un modèle.
 
artmedia70:
Ce n'est pas le cas. Si vous avez la première barre de signal de l'AO, alors partez d'elle et cherchez les autres dans l'historique. Lorsque vous ouvrez une position, mémorisez l'heure d'ouverture de la barre et ne la rouvrez pas. Dès que la prochaine barre AO est formée, recommencez à chercher un modèle.


Pouvez-vous préciser - je n'ai pas besoin de chercher dans l'histoire...

Il me suffit de déterminer dans le présent si un pic est apparu, que c'est la Fig.1, et si après quelques barres comme dans la figure un autre pic est apparu, alors je peux les comparer et prendre une décision....

La question est que les deux pointes de la première et de la deuxième figure sont les mêmes, et je ne peux pas (même en utilisant des drapeaux pour distinguer une figure d'une autre)... Je suis ennuyeux quoi-quoi...

P.S. Les pointes ne se succèdent pas nécessairement, elles peuvent passer par plusieurs barres égales, etc. Elles peuvent être différentes - l'essentiel est que le principe de leur construction soit le même.

L'essentiel est de séparer l'un de l'autre pour une comparaison ultérieure.

 
Reshetov:
Utilisez la barre de temps Time[x].

En général, il est possible d'interrompre l'EA à un certain point du code avant que la barre suivante ne se forme après l'exécution de certaines commandes.
 
Roman.:

En général, il est possible d'interrompre l'EA à un certain endroit du code avant que la barre suivante ne se forme après l'exécution de certaines commandes.
Si, il y en a un. Vous stockez la valeur actuelle de Time[0] dans une variable statique et la comparez à chaque nouveau tick. S'il n'a pas changé, nous retournons(0). Si elle a changé, nous avons affaire à une nouvelle barre. Retenez l'heure de la nouvelle barre, c'est-à-dire Time[0] et commencez vos propres calculs.
 

eddy:

for(k=0; k<KPeriod; k++)           // перебрать KPeriod баров
if(Low[k]<minimum) minimum=Low[k]; // найти минимум

comment remplacer correctement cette fonction par la fonction iLowest ?

minimum=Low[iLowest (NULL, 0, MODE_LOW, KPeriod, 0)] - est-ce correct ?

On me l'a dit. Merci à tous d'ignorer mutuellement une simple question)
 
Reshetov:
Oui, c'est vrai. Vous stockez la valeur actuelle de Time[0] dans une variable statique et la comparez à chaque nouveau tick. S'il n'a pas changé, vous quittez avec return(0). Si elle a changé, nous avons affaire à une nouvelle barre. Retenez l'heure de la nouvelle barre, c'est-à-dire Time[0] et commencez vos propres calculs.


Je l'ai su il y a longtemps... :-)) Plus d'un manuel... Merci...

Je compare maintenant, je pense que je suis sur la bonne voie, mais jusqu'à présent, ça ne fonctionne pas comme ça devrait...

double AO1 =  iAO(Symbol(), signal_period, 1);
 double AO2 =  iAO(Symbol(), signal_period, 2);
 double AO3 =  iAO(Symbol(), signal_period, 3);
 
 
 //  Расчет переменных для доливки 2-а пика
  
 if (AO3 < 0 && AO3 > AO2 && AO2<0 && AO2 < AO1 && AO1 < 0 && fl1==false && fl2==false) {a1 = AO2; fl1=true;Time_Figure1=Time[0]; Print ("Oбразование первого пика",DoubleToStr(a1, 6),"Время: ",Time_Figure1);}// определение наличия 1-го пика, флаг установлен
 Print ("Образование первого пика",DoubleToStr(a1, 6),"Время1: ",Time_Figure1);
 if (Time_Figure1<Time[0] && Time_Figure1!=0)    // условие наличия первого пика...
   {
    if (AO3<0 && AO3>AO2 && AO2<0 && AO2<AO1 && AO1<0 && fl1==true && fl2==false )  // определение наличия 2-го пика, флаги установлены
      { 
        a11 = AO2; fl1=true; fl2=true; Time_Figure2=Time[0]; Print ("Образование второго пика", DoubleToStr (a11,6), "Время2: ",Time_Figure2);
        if (a1<a11 && High [0] > High [1]) 
           { signal_buy = true; a1=a11; fl1=true;fl2=false; Time_Figure1=Time[0];}   //  активируем бай и устанавливаем сигнал на бай и записываем параметры как первого пика  
        else { a1=a11; fl1=true;fl2=false;Time_Figure1=Time[0];}                     //  просто запоминаем новый минимум - "первый" сигнал   
      }                                                       
   }
 
 if (AO2>0 || High [0] < High [1]) {fl1=false; fl2=false; Time_Figure1=0;}// если какой - либо столбец гистограммы  пересекает 0-ю линию между сигналами 2-а пика
                                                               // то сигнал считается недействительным. Cбрасываем флаги 1-го и 2-го пика вниз,
 if (Mas_Tip[0]!=0 && signal_buy == true )  return(10);        // при доливке и сигнале к покупке открываемся с рынка 
 signal_buy = false;                                           // сбрасываем сигнал к покупке
Vous m'avez correctement suggéré l'utilisation de Time[x] - en essayant d'implémenter...
 
Les gars ont vraiment besoin d'un script pour ajouter les jours de repos au graphique dans MT4, où le trouver ?