Frage für Kenner - Seite 15

 
rid >> :

So wird's gemacht:

Sie haben also StopLoss == TakeProfit und es gibt keine solche Option in den Vergleichsbedingungen ((

 
Ich glaube, man muss von Ask aus zählen. Zum Geldkurs verkaufen, zum Briefkurs schließen.
 

Ja, - es kann sehr gut sein, dass Ask geschlossen werden muss. Das werde ich versuchen.

D.h. für den Verkauf kann der Take-Profit auch von Bid sein.

Und Stop-Loss - sollte streng aus Ask, wahrscheinlich... Stop-Leveller sollte gezählt werden

 

Guten Tag, liebe Kolleginnen und Kollegen.

Hier ist eine Frage.

Aus irgendeinem Grund hat der Expert Advisor (Pips, Grider) auf dem realen Konto die Angewohnheit, plötzlich und ohne ersichtlichen Grund nicht mehr zu funktionieren! (DC Broko).

Manchmal passiert es nach einem Serverausfall (das passiert dort häufig), und nach der Wiederaufnahme der Notierungen muss der Expert Advisor (oder MT4) neu gestartet werden, und erst dann beginnt er zu funktionieren.

Manchmal hält der EA auch ohne ersichtlichen Grund an, und Sie müssen mt4 neu starten oder den EA neu installieren, um ihn zu "pushen".

Die Aufträge werden korrekt erteilt. Ich möchte nicht im Forum eine Frage stellen müssen.

In der Logdatei sind keine Fehler enthalten. Wer hat damit Probleme gehabt, bitte um Rat?

Ich möchte keine Frage an den technischen Support im Forum stellen, um keine Aufmerksamkeit auf mein Konto zu lenken.

 
Vereinfachung des Musters aus dem Artikel "Relying on the power of patterns" durch Entfernen von SL, TP, Pending Orders und deren Modifikation. Andernfalls ist es unmöglich, zu experimentieren.
 
shap писал(а) >>
Vereinfachung der Vorlage aus dem Artikel "Auf die Kraft der Vorlagen vertrauen" durch Entfernen von SL, TP, schwebenden Aufträgen und deren Änderung. Sonst ist es unmöglich, zu experimentieren.

Dies ist der vierte Beitrag mit demselben Inhalt. >> Nicht gut.

 

Guten Abend. Frage zum Indikator.

Ich stelle den Gann-Fächer im Indikator von niedrig auf hoch und von niedrig auf niedrig.

Aber aus irgendeinem Grund sind die Linien des Fächers nicht so ausgerichtet, wie ich es möchte - sie sind willkürlich gezeichnet!

Zum Beispiel so (hier hat sich der Fächer aus irgendeinem Grund vom Höchstwert 1,4071 nach oben bewegt):

Ich weiß nicht, warum das so ist.

Ich stelle die Balken in der Funktion STRAT wie folgt ein:

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

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

Bitte sagen Sie mir, warum und wo der Fehler liegt?

 

Hier ist der gesamte Code für den Indikator;

#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);
  }//конец функции СТАРТ
 

Hallo, dies ist erst mein zweiter Beitrag, d.h. ich bin neu im Forum und habe angefangen, die Sprache zu lernen, natürlich sind meine Fragen enorm, und es ist ziemlich schwer, aus Büchern zu lernen. Ich begann mit einem Lehrbuch, ein angesehenes Forum Mitglied Sergei Kovalev, und einige der Artikel von diesem Forum studierte ... Nach viel Theorie, begann die Praxis, erstellt eine Vorlage und Gliederung der ersten Experten, teilte sie in Blöcke, und nun eine Funktion nach der anderen zu analysieren (gründlich) zu verstehen, wie es funktioniert, glauben Sie mir, wenn Sie Taucher eher als ein Programmierer, ist es nicht einfach, alles in meinem Kopf zu brechen, und zu verstehen, was zu was. Also hier ist die Sache, kann jemand vorschlagen, dass für mich Profis so weit, das eigentliche Problem: Heute saß ich den ganzen Tag und war in der Lage, das Problem zu lösen.

Ich führe einige Funktionen als Skript aus, um zu prüfen, ob sie kompiliert werden können und welche Funktionen nicht funktionieren oder nicht im Terminal angezeigt werden. Habe heute die Vorberechnungsfunktion von Balken im Fenster genommen:

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

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


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

Natürlich erscheint die Meldung *Nicht genug Balken*, aber bei einem neuen Tick wird diese Meldung meines Wissens nach auf unbestimmte Zeit wieder erscheinen.

Jetzt füge ich eine Variable und eine if-Anweisung hinzu, und in einem zukünftigen Fehlerblock Bloc_Error füge ich eine switch-Anweisung ein und erhalte Folgendes:

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);
   }
Die Frage ist, was habe ich hier in der switch-Anweisung falsch gemacht, warum ist nicht die *Expert nicht arbeiten* Nachricht auftaucht, und für die EA tatsächlich aufhören zu arbeiten?????
 

"Teile und herrsche"... - mischen Sie keine ungeprüften Punkte... sollte der Fehlerpunkt leichter zu identifizieren sein...

https://docs.mql4.com/ru/basis/operators/switch - alles ist auf einmal zu sehen. bis der entwurf im kopf feststeht - verwenden sie das klassische muster. vergleichen sie es sorgfältig - sie werden die fehler sofort finden.

Lernen Sie, die Suchmaschine zu benutzen.

Nachdem Sie die Dokumentation "zum Thema" gelesen haben, suchen Sie die Texte mit den Codes und sehen Sie, WIE sie angewendet werden...

Grund der Beschwerde: