[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 579

 

Je vais dupliquer ma question dans ce fil - je ne la trouve pas dans l'autre fil :(

Veuillez me conseiller :

1.comment fonctionne l'EA s'il y a eu une interruption de la connexion ?

2. il recommencera la fonction init() ?

3. comment puis-je utiliser l'événement "old tick" dans le journal d'EA ?

 

1. cela dépend de l'EA, si la logique prévoit son arrêt, il s'arrêtera de fonctionner, sinon il continuera à fonctionner pendant un certain temps... vérifiez vous-même lundi, démarrez l'EA et tirez le cordon d'alimentation et vous verrez...

2. non, l'init ne fonctionnera pas, tout recommencera depuis le début, donc prévoyez une interruption de la connexion - enregistrez l'heure du dernier démarrage de l'EA, et s'il y a eu un décalage entre les deux démarrages, faites un appel à l'init.

3. écrivez une fonction qui lit les dernières lignes du journal pour cet événement.

 
SergNF >>:


Вы заполняете массив, а потом на него натравливаете "стандартный индикатор" (RSIOnArray, CCIOnArray и т.п. - около 7 штук).

Крайнее упоминание на форуме , а вообще F1, учебник и т.п.


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

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 SeaGreen
#property indicator_color2 SeaGreen
#property indicator_color3 SeaGreen
#property indicator_color4 SeaGreen

extern int maper = 14;
extern int bbper = 14;

double Buf_0[],Buf_1[],Buf_2[],Buf_3[];
//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
SetIndexBuffer(0,Buf_0);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(1,Buf_1);
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(2,Buf_2);
SetIndexStyle (2,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(3,Buf_3);

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
   int i,Counted_bars;
   Counted_bars=IndicatorCounted();
   i=Bars-Counted_bars-1;
   while(i>=0)
   {
      Buf_3[i]=iMA(Symbol(),0,maper,0,MODE_SMA,PRICE_CLOSE,i);
      Buf_0[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,0,i);
      Buf_1[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,1,i);
      Buf_2[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,2,i);
      Print(Buf_0[0]);
      i--;
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+


Donc, seule la ligne du milieu est dessinée, mais les lignes du haut et du bas ne le sont pas.

 
keekkenen >>:


3. напишите функцию, которая бы читала из лога последние строки на предмет этого события


OK

plus sur le 3ème point s'il vous plaît, les deux premiers je n'ai pas de questions à ce sujet.

merci

 
trader_fx >>:

Правильно?, Так только средняя отрисовывается, а верхняя и нижняя линии не отрисовываются.

Mettez le remplissage du tampon Buf_3 dans une boucle séparée.
 
IgorM >>:


OK

про 3-й пункт плз подробнее, первые два у меня вопросов не возникает

спс

Je ne l'ai pas fait, mais la solution ne devrait pas être trop compliquée, car vous ne pouvez pas obtenir les journaux dans votre propre langue, vous devez obtenir le fichier et le lire en utilisant WinAPI,

il y a peut-être une solution plus simple...

 
keekkenen >>:

..решение не должно быть сложным, т.к. родным языком логи не достать..


il est étrange que les capacités de mql ne permettent pas de lire les logs du terminal

Il ne semble pas y avoir de problème de connectivité, il y a une fonction sur laquelle nous devrons construire un bloc de contrôle.

bool IsConnected(

)

 

Bon après-midi. J'essaie de comprendre comment écrire un EA dans mql4. Pour commencer, j'ai pris l'exemple proposé dans le tutoriel : Simple Expert Advisor. En voici le lien : https://c.mql4.com/book/mq4/experts/tradingexpert.mq4

Lorsque j'ai essayé de le tester sur des contrats à terme RTS (plateforme Broco) par le biais de Strategy Tester, j'ai obtenu un résultat intéressant - les transactions positives sont considérées comme "négatives" - qu'est-ce que cela a à voir ?

Je n'ai rien changé dans le code, j'ai juste mis SP et TP dans OrderSend à "0" pour faire un pur renversement sans prendre de profit au stop et take.


 
Je ne suis pas un expert en contrats à terme, mais j'ai une question : avez-vous pris en compte le spread ?
 

Je ne connais pas grand-chose au forex. En fait, les actions et les contrats à terme n'ont pas de spread dans le jeu de cotation, mais je ne sais pas comment cela fonctionne dans MetaTrader (je viens de regarder dans les propriétés du symbole dans MT, spread = 0). Je n'ai rien changé dans l'algorithme, sauf SP = TP = 0, comment le spread est-il pris en compte ?

Raison: