Question pour les connaisseurs - page 15

 
rid >> :

Voici comment procéder :

Vous avez donc StopLoss == TakeProfit et il n'y a pas cette option dans les conditions de comparaison ((

 
Je pense que vous devez compter à partir de Ask. Vendez à l'offre, fermez à la demande.
 

Oui, - il se peut très bien qu'Ask doive être fermé. Je vais essayer.

C'est-à-dire que pour la vente, le takeprofit peut aussi être à partir de l'offre.

Et stop loss - devrait être strictement de Ask, probablement ... stop leveller devrait être compté

 

Bonjour à tous.

Voici une question.

Pour une raison quelconque, l'Expert Advisor (Pips, Grider) sur le compte réel a pris l'habitude d'arrêter soudainement de fonctionner sans raison apparente ! (DC Broko).

Parfois, cela se produit après un arrêt du serveur (cela arrive souvent), et après la reprise des cotations, le conseiller expert (ou MT4) doit être redémarré et ce n'est qu'alors qu'il commence à fonctionner.

Parfois, l'EA s'arrête, à nouveau, sans raison apparente et vous devez redémarrer mt4 ou réinstaller l'EA pour le "pousser".

Les commandes sont passées correctement. Je ne veux pas avoir à poser une question sur le forum.

Il n'y a pas d'erreurs dans le fichier journal. Qui a eu des problèmes avec ce système ?

Je ne veux pas poser une question au support technique sur le forum pour ne pas attirer l'attention sur mon compte.

 
Comment simplifier le modèle de l'article "S'appuyer sur la puissance des modèles" en supprimant les SL, TP, les ordres en attente et leur modification. Sinon, il est impossible de faire des expériences.
 
shap писал(а) >>
Comment simplifier le modèle de l'article "S'appuyer sur la puissance des modèles" en supprimant les SL, TP, les ordres en attente et leur modification. Sinon, il est impossible d'expérimenter.

Il s'agit du quatrième message avec le même contenu. >> Pas bon.

 

Bonsoir. Question sur l'indicateur.

Je règle le ventilateur Gann de bas en haut et de bas en bas dans l'indicateur.

Mais pour une raison quelconque, les lignes du ventilateur ne sont pas orientées comme je le souhaite - elles sont dessinées au hasard !

Par exemple, comme ceci (ici le ventilateur s'est déplacé vers le haut à partir du maximum 1.4071 pour une raison quelconque) :

Je ne sais pas pourquoi c'est comme ça.

J'ai défini les barres dans la fonction STRAT comme ceci :

//задаем текущие значения ввера Ганна от минимума вверх
// и вычисляем масштаб веера
        ObjectMove( "GANNFAN_" ,0,Time[ xLOW], LOW);
        Масштаб_Веера_= MathAbs (MathSqrt(( LOW)*10000) ) ;

//задаем текущие значения ввера Ганна от максимума вниз
// и вычисляем масштаб веера
        ObjectMove( "GANNFAN" ,0,Time[ xHIGH], HIGH);
        Масштаб_Веера= (-1)* MathAbs(MathSqrt(( HIGH)*10000)  );

S'il vous plaît, dites-moi pourquoi et où est l'erreur ?

 

Voici tout le code de l'indicateur ;

#property indicator_chart_window
//-------------------------------------------------------------------+
extern string     _  = "---- ОБЩИЕ ПАРАМЕТРЫ -----" ; 
extern int       Bars_=200;//кол-во баров для расчета формулы
extern int       TimeFr=0;//задаем тф для расчета
extern color     Цвет_Веера = DarkViolet;     
//--------------------------------------------------------------
int     xLOW, xHIGH;
double   HIGH, LOW ;
 double       Масштаб_Веера ;
 double       Масштаб_Веера_ ;
//+------------------------------------------------------------------+
int init()
  { 
//обьявляем веер Ганна от мин вверх  
ObjectCreate("GANNFAN_",OBJ_GANNFAN,0,0,0,0,0); 
//задаем флаг фонового отображения веера 
 ObjectSet("GANNFAN_", OBJPROP_BACK,1);
 //задаем цвет веера 
ObjectSet("GANNFAN_", OBJPROP_COLOR, Цвет_Веера);
//задаем толщину линий веера Ганна
ObjectSet("GANNFAN_", OBJPROP_WIDTH,2); 
 //задаем масштаб веера Ганна   
ObjectSet("GANNFAN_", OBJPROP_SCALE, Масштаб_Веера_); 

//обьявляем веер Ганна  от макс вниз 
ObjectCreate("GANNFAN",OBJ_GANNFAN,0,0,0,0,0); 
//задаем флаг фонового отображения веера 
 ObjectSet("GANNFAN", OBJPROP_BACK,1);
 //задаем цвет веера 
ObjectSet("GANNFAN", OBJPROP_COLOR, Цвет_Веера);
//задаем толщину линий веера Ганна
ObjectSet("GANNFAN", OBJPROP_WIDTH,2); 
 //задаем масштаб веера Ганна   
ObjectSet("GANNFAN", OBJPROP_SCALE, Масштаб_Веера);  
 
//задаем вертикальные линии от экстремумов 
ObjectCreate("line",OBJ_VLINE,0,0,0,0,0);//вертикальная линия от макс
ObjectSet("line", OBJPROP_BACK,1);
ObjectSet("line", OBJPROP_COLOR,Red);//цвет
ObjectSet("line", OBJPROP_WIDTH,2); //толщина линии
ObjectCreate("line_",OBJ_VLINE,0,0,0,0,0);//вертикальная линия от мин
ObjectSet("line_", OBJPROP_BACK,1);
ObjectSet("line_", OBJPROP_COLOR,Orange);//цвет
ObjectSet("line_", OBJPROP_WIDTH,2);//толщина линии 
  }//------конец функции ИНИТ

//+------------------------------------------------------------------+
int deinit() {
ObjectDelete("GANNFAN_");
ObjectDelete("GANNFAN");
ObjectDelete("line");
ObjectDelete("line_");
//if (!IsTesting()) ObjectsDeleteAll(0,OBJ_TREND);  
               }

//+------------------------------------------------------------------+

int start()
  { 
 xHIGH =  iHighest( NULL, TimeFr, MODE_HIGH, Bars_ ,1); //номер бара максимума
 HIGH =  iHigh ( NULL, TimeFr, xHIGH) ;        // ценовое значение максимума
 xLOW  =  iLowest( NULL, TimeFr, MODE_LOW, Bars_ ,1);   //номер бара минимума
 LOW  =  iLow( NULL, TimeFr, xLOW) ;            // ценовое значение минимума
//задаем текущие горизонтальные лимнии на мин и макс
//ObjectMove( "lowline" ,0,Time[ xLOW] , LOW); 
//ObjectMove("highline",0,Time[ xHIGH], HIGH); 
        
 //задаем текущие значения ввера Ганна от
// минимума и вычисляем масштаб веера
   ObjectMove( "GANNFAN_" ,0,Time[ xLOW], LOW);
   Масштаб_Веера_= MathAbs (MathSqrt(( LOW)*10000) ) ;
        
//задаем значения для отрисовки вертик линии на минимуме
   ObjectMove( "line_" ,0,Time[ xLOW],0); 
        
          
//задаем текущие значения ввера Ганна от 
//максимума вниз и вычисляем масштаб веера
   ObjectMove( "GANNFAN" ,0,Time[ xHIGH], HIGH);
   Масштаб_Веера= (-1)* MathAbs(MathSqrt(( HIGH)*10000)  );
        
 //задаем значения для отрисовки вертик линии на максимуме
 ObjectMove( "line" ,0,Time[ xHIGH],0); 


   return(0);
  }//конец функции СТАРТ
 

Bonjour, c'est seulement mon deuxième message, c'est-à-dire que je suis nouveau sur le forum, j'ai commencé à apprendre la langue, bien sûr mes questions sont énormes, et c'est un peu difficile d'apprendre dans les livres. J'ai commencé avec un manuel, un membre respecté du forum Sergei Kovalev, et certains des articles de ce forum étudié ... Après beaucoup de théorie, a commencé la pratique, a créé un modèle et l'ébauche du premier expert, divisé en blocs, et maintenant une fonction après l'autre parse (à fond) pour comprendre comment il fonctionne, croyez-moi si vous plongez plutôt qu'un programmeur, il n'est pas facile de briser tout dans ma tête, et de comprendre ce qui à quoi. Alors voilà, quelqu'un peut-il me suggérer des Professionnels jusqu'à présent, le vrai problème : Aujourd'hui, je suis resté assis toute la journée et j'ai pu résoudre le problème.

J'exécute certaines fonctions comme un script pour vérifier si elles compilent et lesquelles ne fonctionnent pas ou pas dans le terminal. J'ai pris aujourd'hui la fonction de pré-calcul des barres dans la fenêtre :

//+------------------------------------------------------------------+

int start()
  {
      int A = 100;
//+------------------------------------------------------------------+  
      if(Bars < A)             // Недостаточно баров
      {      
      Alert("Недостаточно баров в окне инструмента.");
      return;                  // Выход из start()
      }


  return(0);
  }
//+------------------------------------------------------------------+  

Naturellement, le message *Pas assez de barres* apparaît, mais sur un nouveau tick, je comprends que ce message apparaîtra à nouveau indéfiniment.

Maintenant, j'ajoute une variable et une instruction if, et dans un futur bloc d'erreur Bloc_Error, je place une instruction switch et j'obtiens ceci :

int start()
  {
      int A = 100;
      bool Work=true;   
//+------------------------------------------------------------------+      
      int Bloc_Error    // Пользовательская функция
//+------------------------------------------------------------------+      
    switch()           // Преодолимые ошибки:
      {
      case 3:          // Неверные параметры:
      Work=false;
      return(0);
      }

//+------------------------------------------------------------------+ 

      if(Bars < A)   // Недостаточно баров
      {      
      Alert("Недостаточно баров в окне инструмента.");
      return;                  // Выход из start()
      }
      if( Work==false)          // Ошибка   
      {      
      Alert("Эксперт не работает.");     
      return;                  // Выход из start   
      }
//+------------------------------------------------------------------+   
  return(0);
   }
La question est de savoir ce que j'ai fait de mal ici dans l'instruction de commutation, pourquoi le message *Expert ne fonctionne pas* ne s'affiche pas, et pour que l'EA cesse réellement de fonctionner ?????.
 

"diviser pour mieux régner"... - ne pas mélanger les points non examinés... le point d'erreur devrait être plus facile à identifier...

https://docs.mql4.com/ru/basis/operators/switch - tout peut être vu en même temps. jusqu'à ce que le design soit fixé dans votre tête - utilisez le modèle classique. comparez-le soigneusement - vous trouverez les erreurs immédiatement.

Apprenez à utiliser le moteur de recherche.

Après avoir lu la documentation "sur le sujet", trouvez les textes avec des codes et voyez comment ils sont appliqués...