[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 618

 

rigonich

J'ai enlevé les supports pour laisser un nombre pair de supports. C'est-à-dire que les deux fonctions sont insérées sans crochets.

Le résultat est le suivant :

int init()
{
    fGet_MineGV();
//... и далее мой код
//...разрыв кода...
if ((SUA==100)&&(zigNN>4.5))
{
BUA=0;
BUA1=0;
}

fSave_MineGV();
//... продолжение моего кода...

Ensuite, après tout le code EA, j'ai inséré

}
}
}


Comment(fd+f+d);

}
//... тут мой советник закончился


        void fGet_MineGV (string fs_PrefName = "") // префикс имени переменной
     {
        string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
        if (GlobalVariableCheck (ls_Name)) SUA = GlobalVariableGet (ls_Name);
        ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
        if (GlobalVariableCheck (ls_Name)) SUA1 = GlobalVariableGet (ls_Name);
        ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
        if (GlobalVariableCheck (ls_Name)) BUA = GlobalVariableGet (ls_Name);
        ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
        if (GlobalVariableCheck (ls_Name)) BUA1 = GlobalVariableGet (ls_Name);
     }
               
      void fSave_MineGV (string fs_PrefName = "") // префикс имени переменной
{
 static datetime ldt_NewBar;
 datetime ldaTBeginBar = iTime (Symbol(), 1, 0)
 //---- Сохраняемся в начале каждой минуты
 if (ldt_NewBar == ldaTBeginBar) return;
 ldt_NewBar = ldaTBeginBar;
 //---- Сохраняем поочереди значения каждой переменной
 string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
 GlobalVariableSet (ls_Name, SUA);
 ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
 GlobalVariableSet (ls_Name, SUA1);
 ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
 GlobalVariableSet (ls_Name, BUA);
 ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
  GlobalVariableSet (ls_Name, BUA1);
}

Je le prends ainsi, après la dernière accolade, en fait, séparément de l'EA. Est-ce correct ?

Si c'est juste, alors c'est ce que vous obtenez après la compilation :

'fGet_MineGV' - function already defined and has a body         K:\TEST\experts\01___AUDUSD.mq4 (1679, 14)
'ls_Name' - variable already defined                            K:\TEST\experts\01___AUDUSD.mq4 (1681, 16)
2 error(s), 0 warning(s)        

Извиняюсь, ошибся, сложно, когда нет кода пнред глазами.Вот так.
Si le code était court, je le posterais ici et tous mes problèmes seraient rapidement résolus. MAIS l'EA a 1700 lignes, plus 3 indicateurs externes supplémentaires, dans lesquels la plupart des calculs sont effectués... Donc uniquement par courrier, mais il est évident que cela n'est plus fait gratuitement.
 
xant:

rigonich

J'ai enlevé les supports pour laisser un nombre pair de supports. C'est-à-dire que les deux fonctions sont insérées sans crochets.

Le résultat est le suivant :

Ensuite, après tout le code EA, j'ai inséré

Je le prends ainsi, après la dernière accolade, en fait, séparément de l'EA. Est-ce correct ?

Si c'est juste, alors c'est ce que vous obtenez après la compilation :


Ces avertissements indiquent que la fonction et la variable dans votre EA ont déjà été définies auparavant. regardez si vous n'avez pas oublié de supprimer le code que vous avez inséré auparavant ? si non -- envoyez-moi le code du hibou et je collerai les fonctions dedans pour vous.
 
lottamer:


Exactement. Vous devez d'abord prendre le ticket de la dernière position fermée GetTicketLastPos , puis utiliser les fonctions standard pour extraire ce dont vous avez besoin de ce ticket.

Merci.


Mince... il n'existe pas de fonction comme GetTicketLastPos,

il existeun ticket GetTicketLastPos pour la dernière positionouverte...

 
xant:

rigonich

J'ai enlevé les supports pour laisser un nombre pair de supports. C'est-à-dire que les deux fonctions sont insérées sans crochets.

Le résultat est le suivant :

Ensuite, après tout le code EA, j'ai inséré

Je le prends ainsi, après la dernière accolade, en fait, séparément de l'EA. Est-ce correct ?

Si c'est juste, alors c'est ce que vous obtenez après la compilation :

Si le code était court, je l'aurais posté ici et tous mes problèmes auraient été résolus rapidement. MAIS l'EA a 1700 lignes, plus 3 indicateurs externes supplémentaires, dans lesquels la plupart des calculs sont effectués... Donc uniquement par courrier, mais ce n'est évidemment plus fait gratuitement.

Je pense que cela a plus de sens :

//+------------------------------------------------------------------+
//|                                                       Priner.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


double Var1, Var2, Var3, Var4;// 4-ре переменных для сохранения (у Вас они свои !!!)
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   fGet_MineGV();
//----
//Здесь ваш код
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   //Здесь ваш код
//----
   fSave_MineGV();
   return(0);
  }
//+------------------------------------------------------------------+
void fSave_MineGV (string fs_PrefName = "")     // префикс имени переменной
  {
    static datetime ldt_NewBar;
    datetime ldaTBeginBar = iTime (Symbol(), 1, 0);
//----
    //---- Сохраняемся в начале каждой минуты
    if (ldt_NewBar == ldaTBeginBar) return;
    ldt_NewBar = ldaTBeginBar;
    //---- Сохраняем поочереди значения каждой переменной
    string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
    GlobalVariableSet (ls_Name, Var1);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
    GlobalVariableSet (ls_Name, Var2);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
    GlobalVariableSet (ls_Name, Var3);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
    GlobalVariableSet (ls_Name, Var4);
//----
  }
void fGet_MineGV (string fs_PrefName = "")     // префикс имени переменной
  {
    string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
//----
    //---- Восстанавливаем значения переменных
    if (GlobalVariableCheck (ls_Name)) Var1 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
    if (GlobalVariableCheck (ls_Name)) Var2 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
    if (GlobalVariableCheck (ls_Name)) Var3 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
    if (GlobalVariableCheck (ls_Name)) Var4 = GlobalVariableGet (ls_Name);
  }  
//----
 
lottamer:


merde...il n'y a pas de fonction comme unticket pour la dernière position fermée,

il existeun ticket GetTicketLastPos pour la dernière position ouverte...


le ticket de la dernière position fermée est dans l'historique.
 
не забыли ли вы удалить код, который вставляли раньше? если нет -- пришлите мне код сова и я вам вставлю в него функции.

Peut-être qu'il en reste vraiment un quelque part.

Je l'ai inséré dans un autre EA, propre, qui n'avait pas mes expériences, et il a donné d'autres erreurs :

'if' - too complex expression     K:\test2\experts\02___AUDUSD.mq4 (1664, 2)
'=' - assignment expected         K:\test2\experts\02___AUDUSD.mq4 (1662, 24)
'if' - semicolon expected         K:\test2\experts\02___AUDUSD.mq4 (1664, 2)
3 error(s), 0 warning(s)        

Bref, j'ai envoyé un e-mail à

 

Je regarde attentivement - j'ai fait exactement ce que vous avez écrit.

Mais je n'ai aucun retour ou deinit dans mon EA. Est-ce que ça va ? Je reçois toujours des erreurs.

 
xant:

Je regarde attentivement - j'ai fait exactement ce que vous avez écrit.

Mais je n'ai pas de retour ou de désinit dans mon EA. Est-ce que ça va ? Je reçois toujours des erreurs.

TarasBY répond, mais il y a une petite erreur dans son code, c'est pourquoi le compilateur s'en plaint.

Dans mon poste, il n'y a pas de jurons.
 
rigonich:

le dernier ticket fermé est dans l'historique.


Pouvez-vous m'apprendre comment accéder à l'historique ?

comment faire sortir le dernier billet de là ?

 

r772ra

Oui ! Le compilateur a passé sans aucune erreur.

Respect !