Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1943

 
Maksim Kalachev #:

J'ai lu que seul l'indicateur est configuré comme un indicateur. Mais lors du chargement de la démo, il apparaît dans les EA.

Ne posez pas la même question dans différents fils de discussion du forum.

Je vous ai répondu là :

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Bugs, bugs, questions

Artyom Trishkin, 2022.04.05 15:13

Vous l'avez écrit en utilisant d'anciens gestionnaires.

Vous devez utiliser OnCalculate().


 
Artyom Trishkin #:

Ne posez pas la même question dans différents fils de discussion du forum.

Je vous ai répondu là :


Je le lis déjà. Merci !

 
Puis-je supprimer ma correspondance avec une personne ? Je veux fermer une discussion avec un utilisateur.
 
makssub #:

Bon après-midi.

Aidez-nous avec le code, il y a peut-être des exemples.
Tâche :

Il y a plusieurs ordres ouverts, avec différents lots, dans différentes directions. L'un d'eux est enterré avec un bénéfice, supposons 20. Cependant, il y a un ordre ouvert avec un profit négatif, supposons -55 avec 0.05 lots. Je veux fermer une partie d'un ordre négatif du montant du profit d'un ordre fermé positivement pour diminuer le drawdown.

J'ai essayé d'écrire ceci en utilisant l'opérateur while, mais cela n'a pas bien fonctionné.

Merci d'avance.

Vous n'avez pas précisé si c'est sur le même instrument ou sur des positions différentes ?
 

Pourquoi le code MT5 fonctionne-t-il mais pas le code MT4 ? construire 1Z5Z

Sauvegarde le modèle mais ne l'applique pas.

//+------------------------------------------------------------------+
//|                                              File Read Write.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string SYMBOL;
string ccname;
void OnStart()
  {

   SYMBOL = _Symbol;
   ccname = SYMBOL;
   SaveTemplate();
 
 DownloadTemplate();
     
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SaveTemplate(void)
  {
   if(ChartSaveTemplate(0, ccname))
      Print("Template successfully saved!  " + SYMBOL);
   else
      Print("Template save Failed!  " + SYMBOL);
   return;
  }
//+------------------------------------------------------------------+
void DownloadTemplate(void)
  {

   if(ChartApplyTemplate(0,ccname))
      return;
   else
      Print("Template download Failed!  " + SYMBOL);
  }

 
Pouvez-vous me dire comment faire pour que le programme ne fonctionne que lorsqu'une nouvelle bougie a démarré et, après avoir exécuté le code, rester immobile et attendre que la prochaine bougie démarre ?
 
Ivan Butko une nouvelle bougie a commencé et après avoir exécuté le code pour se tapir et attendre le début de la prochaine bougie ?

ça s'appelle les prix d'ouverture.
c'est élémentaire.

 
Pavel Malyshko #:

C'est ce qu'on appelle les prix d'ouverture.
est élémentaire.

Je ne comprends pas. Une tique arrive, le chèque passe. Le tic suivant arrive et il vérifie à nouveau. La même minuterie ne rentre pas dans l'ouverture.

La seule chose à laquelle je pense est de mémoriser l'heure d'ouverture, d'y ajouter l'heure de la bougie et de comparer l'heure actuelle avec la nouvelle valeur.

 
Ivan Butko #:

Je ne comprends pas. Une tique arrive, on la vérifie. Au prochain tic, on vérifie à nouveau. La même minuterie ne rentre pas dans l'ouverture.

Je peux seulement me souvenir de l'heure d'ouverture, y ajouter l'heure de la bougie et vérifier l'heure actuelle par rapport à la nouvelle valeur.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie.

Toutes les questions des débutants dans MQL4 et MQL5, toute aide et discussion sur les algorithmes et les codes.

Valeriy Yastremskiy, 2022.03.30 09:37

 
static datetime OldTime=0;
if(iTime(NULL,0,0)!=OldTime)
      {
      Alert("ДИВЕРГЕНЦИЯ НА "+Symbol()); OldTime=iTime(NULL,0,0);
      }

Si vous ne connaissez pas l'algorithme, vous recevrez une alerte lorsque le prix atteindra la fin de la journée. Lorsqu'une nouvelle barre apparaît,iTime(NULL,0,0) sera modifié et l'égalité ne sera pas une fois, alors l'égalité et le if seront faux.

Vous pouvez aussi le faire de cette façon.

static bool FlagNewBar=false;
   if(BarTime!=Time[0])
     {
      BarTime=Time[0];
      FlagNewBar=true;
     }

Ou nous pourrions obtenir une nouvelle barre sur n'importe quelle période.

bool FlagNewBarF(int prd, datetime &ArgBarTime,bool &FlagNbar)
  {
   FlagNbar=false;
   if(ArgBarTime!=iTime(NULL,prd,0))
     {
      ArgBarTime=iTime(NULL,prd,0);
      FlagNbar=true;
     }

   return(FlagNbar);
  }

L'appel serait le suivant

 if(FlagNewBarF(1, BarTime1,FlagNewBar1))
     {
      Alert("FlagNbar1 ",FlagNewBar1,"BarTime1 ",TimeToStr(BarTime1,TIME_DATE|TIME_SECONDS));
      
     }

   if(FlagNewBarF(5, BarTime5,FlagNewBar5))
     {
      Alert("FlagNbar5 ",FlagNewBar5,"BarTime5 ",TimeToStr(BarTime5,TIME_DATE|TIME_SECONDS));
     
     }

 
Valeriy Yastremskiy #:
Vous n'avez pas écrit si c'est sur le même instrument ou sur des positions différentes ?

Que tout soit dans la même paire de devises, EurUsd par exemple. Les deux sont ouverts à Buy.

Raison: