[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 99

 
ScioMe:

Enregistré, sous ces noms, le nouveau tableau s'ouvre de la même façon, à l'ancienne. Il existe un fichier strategytester.htm dans le dossier des modèles. Je ne sais pas quoi faire avec ce fichier.

Cela signifie que quelque chose a été mal fait, peut-être que MT n'a pas été redémarré. Testé, devrait fonctionner.
 
zas:
Bonjour, pouvez-vous m'aider avec cette question ? Je ne l'ai pas trouvée sur le forum. Le problème est qu'après avoir ouvert un fichier dans Excel, les données sont représentées comme une date, et si je change le format de la date, j'obtiens les mauvaises données. J'ai essayé différents types de dates, mais la même chose. J'ai essayé de spécifier le type de données (Excel le demande) lors du chargement, mais les nombres semblent être représentés comme un nombre en pointillé (par exemple 1,5624), et Excel ne veut rien faire avec eux.

La question ne porte pas sur le sujet du forum, car vous devez suivre un cours d'informatique et apprendre à utiliser Word et Excel, ou trouver un livre sur ces programmes et étudier.

Et pour votre question spécifique, sélectionnez les cellules nécessaires, amenez le curseur dessus, cliquez sur le bouton droit de la souris, puis sur "Format cells ..." et sélectionnez le format de présentation des données souhaité.

 

Les gars, donnez-moi un tuyau...

Vous devez comparer le premier pic de l'histogramme avec le second, si le second est plus petit en valeur abs, alors ouvrez l'achat à condition que les deux soient inférieurs à zéro et ensuite assignez la valeur du second au premier pic, Si après la formation du premier pic la colonne de l'histogramme est passée de la zone négative à la zone positive, alors annulez la présence du premier pic, comme je l'ai fait - c'est-à-dire que par condition nous réinitialisons les deux drapeaux.

Il s'avère que lorsque j'identifie les paramètres du premier pic, la même condition (les mêmes paramètres) est remplie pour le second. Et ceci est une erreur... Je voudrais en quelque sorte "séparer" ces faits (avec leurs paramètres uniques) de formation des figures 1 et 2, je donne mon code et mon chiffre pour la baie...

double a1,a2,a11,a22;//  значения первого и второго пика 
bool fl1 = false;    //  флаги наличия 1-го и 2-го пика для их сравнения для входа в рынок по 3-ему варианту АО
bool fl2 = false;    //
bool signal_buy = false;
bool signal_sell = false;

double AO1 =  iAO(Symbol(), signal_period, 1);
double AO2 =  iAO(Symbol(), signal_period, 2);
double AO3 =  iAO(Symbol(), signal_period, 3);
  
 
 
if (AO3 < 0 && AO3 > AO2 && AO2<0 && AO2 < AO1 && AO1 < 0 && fl1==false && fl2==false) {a1 = AO22; fl1=true; Print ("образование первого пика",DoubleToStr(a1,6) );}
//    определение наличия 1-го пика, флаг установлен
 Print ("первый пик = ", DoubleToStr(a1, 6) );
 
// в след строке ошибка - получается, что после идентификации 1-го пика - эти же условия выполняются и для 2-го, а этого быть не должно... 
 if (AO3<0 && AO3>AO2 && AO2<0 && AO2<AO1 && AO1<0 && fl1==true && fl2==false)                        // определение наличия 2-го пика, флаги установлены
      { 
        a11 = AO2; fl1=true; fl2=true; Print ("образование второго пика", DoubleToStr (a11,6));
        if (a1<a11 && High [0] > High [1]) 
           { signal_buy = true; a1=a11; fl1=true;fl2=false;}    // активируем бай и запоминаем параметры как первого пика   
        else { a1=a11; fl1=true;fl2=false;}                     // просто запоминаем новый минимум - первый пик   
      }                                                       
  
 if (AO2>0 || High [0] < High [1]) {fl1=false; fl2=false;}     // если какой - либо столбец гистограммы  пересекает 0-ю линию между сигналами 2-а пика
                                                               // то сигнал считается недействительным. Cбрасываем флаги
 if (Mas_Tip[0]!=0 && signal_buy == true )  return(10);        // при доливке и сигнале к покупке открываемся с рынка 
 signal_buy = false;                                           // сбрасываем сигнал к покупке
 
 

 

Tous les gars qui peuvent aider à créer un robot pour le commerce, juste avoir une idée et besoin d'aide dans sa mise en œuvre, je moi-même dans la programmation n'est pas forte, vous pouvez même obtenir de l'argent, mais raisonnable !

 
ZahvatkiN:

Tous les gars qui peuvent aider à créer un robot pour le commerce, juste avoir une idée et besoin d'aide dans sa mise en œuvre, je moi-même dans la programmation n'est pas forte, vous pouvez même obtenir de l'argent, mais raisonnable!

Je peux le faire pour un montant raisonnable.
 

Je ne peux pas le comprendre.

C'est écrit en russe, mais je n'arrive pas à comprendre la section du manuel https://docs.mql4.com/ru/basis/variables/formal.

Citation :

Les paramètres par référence ne peuvent être transmis qu'au sein d'un seul module........ (De quel module s'agit-il ?)

Les tableaux peuvent également être transmis par référence, toutes les modifications seront reflétées dans le tableau d'origine . (Change les éléments du tableau ?)

 
Bonjour à tous, j'ai cherché sur le forum toute la journée et je ne l'ai pas trouvé, merci de m'indiquer où l'on peut télécharger l'historique des cotations euro usd 1 min en hst, format csv ou mieux le télécharger pour une période maximale, le terminal ne donne qu'un an. Veuillez m'envoyer des liens ou des fichiers. JE VOUS EN REMERCIE D'AVANCE.
 
Question ???

J'ai ouvert un ordre en attente -

Ticket = OrderSend(...,OP_SELLSTOP,...,TP,SL) ;

Si(Ticket>0)

{tout est ok, attendez que l'ordre en attente soit exécuté, s'il est exécuté alors tout est ok}

sinon

{attendre la fermeture de la prochaine barre et si l'ordre ne s'ouvre pas, le fermer de force avec OrderDelite();}

aide avec le code

"attendre que l'ordre en attente soit exécuté"

"attendez la prochaine barre pour CLOSE et si l'ordre n'a pas été ouvert, fermez-le de force avec OrderDelite() ;".

 
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)] - n'est-ce pas ?

 
robot:
Question ???

{attendre la prochaine barre pour CLOSE et si l'ordre n'a pas été ouvert, le fermer de force avec OrderDelite();}

aide avec le code

"attendre que l'ordre en attente soit exécuté"

"attendre la prochaine barre pour CLOSE, et si l'ordre ne s'est pas ouvert, le fermer de force avec OrderDelite() ;"

vous devez comprendre un peu de logique et l'essence du travail avec les commandes.

Pour effectuer un traitement en attente ou attendre un événement, vous devez vous souvenir de l'état actuel du système et le comparer à l'état attendu.

Dans votre cas, vous avez un événement - une nouvelle barre a été ouverte, mais l'ordre n'a pas été déclenché.

Pour ce faire, vous pouvez procéder de cette manière :

- mémorisez le paramètre Ticket, et l'heure de la barre à laquelle vous avez ouvert. S'il y a une nouvelle barre, vous pouvez immédiatement récupérer le ticket précédemment enregistré et vérifier s'il s'agit d'un ticket de marché ou d'un ticket initial en attente. Et si elle est en attente, supprimez-la.

Cette variante n'est pas destinée au commerce réel ; elle est uniquement destinée aux testeurs.

----------

Vous avez donc besoin de Time[], OrderSelect(), OrderType(), OrderCloseTime().