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

 
msl271170: Apprenez à arrêter le conseiller expert et à le relancer lorsqu'une nouvelle bougie apparaît.

il y a un exemple de Moving Average.mq4 dans le terminal - il a ceci :

//--- go trading only for first tiks of new bar
   if(Volume[0]>1) return;

Je l'ai vu dans un autre :

datetime LastTime;  // Время начала тика для побарного режима
void OnTick()
{
  if (Time[0] == LastTime) return;
  LastTime = Time[0];
........
}
 
msl271170: Je comprends que MT5 a un langage de programmation différent. Mon code ne fonctionnera-t-il pas là-bas ?

Utilisez MT4Orders - bibliothèque pour MetaTrader 5

 

J'essaie de comprendre CopyTime, mais je ne comprends pas pourquoi DayData[] ne se remplit pas (je veux voir la date arrondie au jour entier). J'ai ajouté un exemple ci-dessous. Si vous remarquez une erreur, veuillez la signaler ou la corriger :

datetime Data[3]={D'2017.09.22 08:05',D'2017.09.22 10:05',D'2017.09.22 12:05'};
int count=0;
datetime DayData[];
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   count++;
   
   if(count<4)
     {
      int copied=CopyTime(NULL,PERIOD_D1,Data[count-1],1,DayData);
      ArrayResize(DayData,count);
      Print("0 Data[",count-1,"]= ",Data[count-1]," DayData[count-1]= ",DayData[count-1]); // 1 control
     }

   for(int i=0; i<ArraySize(DayData);i++)
      Print("1 Data[",i,"]= ",Data[i]," DayData[i]= ",DayData[i]);  // 2 control

  }
//+------------------------------------------------------------------+
 

Une page entière de messages vides (erreur de forum). J'ai dû l'effacer.

 

Bonne journée à vous tous !


J'apprends progressivement mql4 à partir du livre d'Evgeniy Zhdanov.

Il décrit un exemple d'application Enveloppes, Zigzag.

Les fonctions iCustom et iEnvelopes y sont décrites pour recevoir les données des indicateurs Enveloppes et ZigZag.

Pouvez-vous indiquer où trouver des informations et apprendre les données - que de décrire les autres indicateurs ?

Peut-être existe-t-il un lien vers une ressource où je peux apprendre quelles fonctions sont décrites par quels indicateurs ?

Ou tout cela est dans l'aide ?

Je vous en remercie sincèrement à l'avance !

 
Список функций языка MQL4 - Справочник MQL4
Список функций языка MQL4 - Справочник MQL4
  • docs.mql4.com
Читает из файла типа CSV строку одного из форматов: "YYYY.MM.DD HH:MM:SS", "YYYY.MM.DD" или "HH:MM:SS" - и преобразует ее в значение типа datetime
 
Taras Slobodyanik:

voir iRsi et iBands

https://docs.mql4.com/ru/function_indices


Merci beaucoup !


J'ai pris mon équipement de plongée et je suis allé plonger !

 

Il y a aussi cette question.

Le conseiller expert suivant est prescrit

Si ZigZag est inférieur à deux enveloppes - ouvrir l'achat.

Si le zigzag est plus grand que deux enveloppes, ouvrez la vente.

Ensuite, si un ordre est ouvert par un EA - modifiez l'ordre par un tel Take Stop et un tel Stop.

Il n'y a pas d'erreurs dans la compilation.

Et voilà le problème, peu importe comment j'essaie de le tester, le testeur de stratégie ouvre toujours le premier ordre d'achat que le testeur refuse obstinément de modifier. En outre, tous les ordres ne sont ouverts que pour Sell, qui est parfaitement modifié et ne pose aucun problème.

Y a-t-il une erreur dans le code ?

Ou est-ce une fonctionnalité du testeur ? Je commence toujours par la date que je choisis "date d'utilisation" et la première commande à acheter est toujours non modifiable. Puis tous mes ordres de vente qui sont modifiés et fonctionnent bien.

Je n'ai pas encore trouvé d'informations à ce sujet.

Merci pour votre aimable attention !

 

Pourquoi le testeur produit-il des résultats différents avec

extern bool Tral =true;

...

void OnTick()

{

    if (Tral)Trailing();....

et si Tral n'est pas déplacé vers des variables externes, mais utilise simplement la même fonction avec les mêmes variables :

void OnTick()

{

   Trailing();


 
RichLux:

Pourquoi le testeur donne-t-il des résultats différents sur .... ?

Essayez :

input bool Tral =true;

... ou avez-vous vraiment besoin de l'externalisation ?