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

 
yosuf:
Un EA qui fonctionne correctement ne passe pas d'ordres pendant exactement 1 heure, puis il fonctionne normalement pendant 23 heures supplémentaires. La "pause" de 23 à 24 heures et ça marche à nouveau. Mais il est écrit dans les paramètres : HourStart 0, HourEnd 24.


Vous êtes petit ?

Les tiques entrent-elles ?

Si oui, l'EA tente-t-il d'ouvrir un ordre ?

Si oui, quel est le numéro du ticket renvoyé par OrderSend()?

Si "-1", quel est le code d'erreur renvoyé par GetLastError()?

 
PapaYozh:


Pourquoi es-tu si petit ?

Les tiques entrent-elles ?

Si oui, l'EA tente-t-il d'ouvrir un ordre ?

Si oui, quel est le numéro du ticket renvoyé par OrderSend()?

Si "-1", quel est le code d'erreur renvoyé par GetLastError()?

1. J'arrive ;

2. Ils arrivent, comme d'habitude, et avec persistance ;

3., 4. - Maintenant, vérification du journal.

Je me suis souvenu, et sur le testeur ne passe pas de commandes pendant cette période.

Merci.

 

Bonjour chers amis. J'avais l'habitude de programmer en C++ (institut il y a environ 10 ans).

J'ai besoin d'aide pour répondre à cette question :

L'algorithme ouvre 2 ordres en attente par condition. Un BUYSTOP s'ouvre toujours en premier, un SELLSTOP après.

Il s'agit d'un nouveau TIC :

Comment savoir s'il y a déjà des commandes en cours (BUY ? SELL ? BUYSTOP? SELLSTOP? ) ?

Comment savoir avec un nouveau tick si un ordre TakeProfit déclenché est fermé + dans ce cas fermer l'ordre opposé (s'il y en a encore un) ?

 

Bonjour, pourriez-vous me donner le code d'un indicateur permettant de tracer une ligne comme celle-ci, ou mieux encore un faisceau basé sur ces deux points.

 
silhouette: (с. 259)

Un conseil, s'il vous plaît :

Je veux créer une MA multi-temporelle, qui change de couleur lorsque la tendance change. J'ai fait l'affichage du prix moyen à partir d'autres horizons temporels, mais je ne sais pas comment résoudre le problème du changement de couleur.


Alors, quelqu'un peut-il suggérer une idée ou même une façon directe de procéder ?
 
Bonjour, l'indicateur ne dessine pas du tout. Je n'arrive pas à comprendre quelle est l'erreur, tout semble correctement écrit. Je ne sais pas quoi penser. Et à peu près le même code, sans la fonction et sans un gros ajout à la fin, des tirages ! !! Veuillez me dire s'il y a quelque chose que je ne sais pas, que je ne comprends pas, ou simplement si je ne vois pas l'erreur que j'aurais pu comprendre.
//+------------------------------------------------------------------+
//|                                            ИндюкДимонакомпил.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
#import "user32.dll"
   int   PostMessageA(int  hWnd,int  Msg,int  wParam,string lParam);
#import
#define WM_COMMAND                     0x0111
int delimiter = 0;

#property indicator_chart_window
double ВерхняячертаBuffer1[];
double НижняячертаBuffer2[];
double СинняячертаBuffer3[];
 double вершина; 
 double основание_первого_снижения;
 double начало;
 double вершина_волны_3;
 extern int T=4,K=200;
 int timeframe, start ;
 int бар_вершина ;
 int бар_основание_первого_снижения;
 int бар_начало;
int pereklutsatel;
double naklon,linija2; int P;extern int RO=1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int limit=Bars-counted_bars-1;

   for (int i=limit;i>=0;i--) {
//----
 for ( int J=0;J<=RO;J++){
//----

  // for(int i=Bars; i>=0;i--)
   i=Bars;
      бар_вершина=iHighest( NULL,  timeframe, MODE_HIGH, K, start ) ;
       вершина =High[ бар_вершина ];
       бар_основание_первого_снижения=iLowest( NULL,  timeframe, MODE_LOW,NormalizeDouble ( бар_вершина/2,0), start ) ;
       основание_первого_снижения=Low[ бар_основание_первого_снижения ];
       бар_начало=iLowest( NULL,  timeframe, MODE_LOW,NormalizeDouble (бар_вершина*1.5,0), бар_вершина ) ;
       начало=Low[ бар_начало ];
       
         
  if(начало>основание_первого_снижения){naklon=(начало-основание_первого_снижения)/(бар_начало-бар_основание_первого_снижения);
 
    НижняячертаBuffer2[бар_начало]=начало;linija2=начало;for(i=бар_начало-1;i>=0;i--){linija2=linija2-naklon;
   
    НижняячертаBuffer2[i]=linija2;
     
   }
    НижняячертаBuffer2[бар_основание_первого_снижения]=основание_первого_снижения;}
    
    
         for (i=0;i<100;i++){  СинняячертаBuffer3[i]= Open[i];}
          for (i=330;i<500;i++){  СинняячертаBuffer3[i]= Open[i];}

     ВерхняячертаBuffer1[бар_начало]=начало;
     
 double точка4; int бар_точка4;   бар_точка4=iHighest( NULL,  timeframe, MODE_HIGH, бар_основание_первого_снижения, 3 ) ; 
  точка4 =High[ бар_точка4 ];  
   
   if(вершина>точка4){naklon=(начало-точка4)/(бар_начало-бар_точка4);  
   double linija1=начало;for(i=бар_начало-1;i>=0;i--){linija1=linija1-naklon;ВерхняячертаBuffer1[i]=linija1; }}
   
double vulf=НижняячертаBuffer2[0];
  if ( vulf==Ask&&vulf==Bid)vulf=1;
  else{ for (vulf=vulf+Point*10; vulf==НижняячертаBuffer2[0];vulf=vulf-Point){
           if ( vulf==Ask&&vulf==Bid){vulf=1;}} 
      for (vulf=vulf-Point*10; vulf==НижняячертаBuffer2[0];vulf=vulf+Point){
           if ( vulf==Ask&&vulf==Bid)vulf=1;} 
              
           
           
           }
           
           
   if (vulf==1){Comment ("  Есть вульв!!! "  , "  timeframe " , timeframe);return(0);  }
    if (vulf!=1&&pereklutsatel==1) {    
   
     if(delimiter<3){delimiter++;Comment(delimiter);return(0);}
   delimiter=0;
    fChangePeriod();P++;
                                 
                   }  } }
//----
   return(0);
  }
//+------------------------------------------------------------------+

void fChangePeriod(){int ii,hwd = WindowHandle(Symbol(),Period());
   switch(Period()){
      case PERIOD_W1    : ii = 33134; break; //PERIOD_D1;
      case PERIOD_D1    : ii = 33136; break; //PERIOD_H4;
      case PERIOD_H4    : ii = 33135; break; //PERIOD_H1;
      case PERIOD_H1    : ii = 33140; break; //PERIOD_M30;
      case PERIOD_M30   : ii = 33139; break; //PERIOD_M15;
      case PERIOD_M15   : ii = 33138; break; //PERIOD_M5;
      case PERIOD_M5    : ii = 33137; break; //PERIOD_M1;
      case PERIOD_M1    : ii = 33141; break; //PERIOD_W1;
   }     
   PostMessageA(hwd, WM_COMMAND, ii, 0);
   return;
}
 
Dimka-novitsek:
Bonjour, l'indicateur ne dessine pas du tout. Je n'arrive pas à comprendre quelle est l'erreur, tout semble correctement écrit. Je ne sais pas quoi penser. Et à peu près le même code, sans la fonction et sans un gros ajout à la fin, des tirages ! !! Veuillez me dire s'il y a quelque chose que je ne sais pas, que je ne comprends pas, ou simplement si je ne vois pas l'erreur que j'aurais pu comprendre.

Bien sûr que non, il n'a pas de tampons indicateurs.
 
Pourquoi pas ?
 
Dimka-novitsek:
Comment pourrais-je ne pas le faire ?


Où sont-ils ?

Nommez-en un.

 
Maintenant, je pense que j'ai quelque chose... Merci !!!!!!!!!!!!!!!!!!!!