Indikator Frage - Seite 8

 
heelflip43:

Ich glaube, Ihr Problem liegt darin, dass Sie val1 und val2 nicht zurückgesetzt haben. Sobald Sie also den Höchst- und den letzten Tiefstwert gefunden haben, müssen Sie sie zurücksetzen:

Hoffentlich wird das helfen.
Ahhh, ich werde es ausprobieren, sobald ich heute zu Windows gebootet habe, danke

Ich dachte, dass wenn die erste if(Anweisung) wahr wäre, dann würde es den Start() wieder neu starten und vom Anfang des Codes zurücksetzen und somit val1 und val2 wieder zurücksetzen

Nun, die Art und Weise, wie ich darüber nachdachte, war - if(erste Anweisung) wahr, dann druckt, und geht dann zum Text die nächste if(zweite) wahrscheinlich falsch, dann geht zurück zum Anfang des Starts wieder und setzt val1 und val2 zurück

Ich bekomme die richtigen Drucke und Werte, aber druckt nur kontinuierlich.

Jetzt, wo ich darüber nachdenke, habe ich wirklich nie herausgefunden, dass dies für jede if(-Anweisung) gilt, selbst die einfachsten EMA-Kreuze erzeugen kontinuierliche Ausdrucke

Ich werde Ihren Code testen, den Sie gepostet haben, aber ich wäre überrascht, wenn ich Druckanweisungen hinzugefügt hätte, um diese Variablen zu drucken, und es nicht auch kontinuierlich gedruckt hätte

Ich werde es heute noch ausprobieren

Danke
 
Ok, ja, das Zurücksetzen von val1 und val2 gibt mir die A-Highs zurück, aber es wird immer noch alles kontinuierlich gedruckt, nicht so viele wie vorher.
Ich bin sicher, dass ich etwas mit currentTime und iTime tun muss, um dies zu beheben, ich muss es noch einmal überprüfen.

Scheint, wie es sollte bereits ein ABCD-Schema in der Code-Basis zu lernen, aber dies scheint zu sein etwas, das nicht verfügbar ist, außer auf der Grundlage von ZigZag, die ich jetzt überprüfen, um zu sehen, wenn dies gibt mir irgendwelche Hinweise. Aber auch hier handelt es sich um einen Indikator

Wenn ich && macd oder etwas hinzufüge, werden sie nur einmal gedruckt, was mich wirklich verwirrt
 
Ich glaube, ich habe es, nachdem ich noch ein bisschen darüber nachgedacht und es noch ein bisschen durchgearbeitet habe.

Wie wäre es damit:

//+------------------------------------------------------------------+
//|                                                  Agent86_5min.mq4 |
//|                                                    Unfinished POS |
//|                                    
//+------------------------------------------------------------------+
#property copyright "Unfinished POS by Agent86"


//---- input parameters
extern double    TakeProfit=20.0;
extern double    Lots=0.1;
extern double    StopLoss=10.0;
extern int MagicNumber=123486;

double val1;
double val2;
bool traded = false;
bool A = false;

//++++ These are adjusted for 5 digit brokers.

int     pips2points;    // slippage  3 pips    3=points    30=points
double  pips2dbl;       // Stoploss 15 pips    0.0015      0.00150
int     Digits.pips;    // DoubleToStr(dbl/pips2dbl, Digits.pips)

    // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   if (Digits == 5 || Digits == 3)
   {    // Adjust for five (5) digit brokers.
      pips2dbl    = Point*10; pips2points = 10;   Digits.pips = 1;
   } 
   else 
    {    
      pips2dbl    = Point;    pips2points =  1;   Digits.pips = 0; 
    }
    // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
     
   
    
//---- 

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
   
//----
   return(0);
  }
    
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   
        
   int i=0;
   int ticket,total,result;
   total = OrdersTotal();                 
   val1=iFractals(NULL, 0, MODE_UPPER,3);
   val2=iFractals(NULL, 0, MODE_LOWER,3); 


     
     if(val1 > 0 && traded == false && val2==0)
      { 
      // in the absence of an && indicator above I get continous print statements
      // also does not print A high this is not desired
      // with indicator added && indicator above, then it prints A and B once as it should ???
      // I need to work this out so it won't print all the time aka trade all the time
      // A and B first values seems to initialize the whole block
      // just a reminder that they time stamps coordinate after this FYI
      // now work on C retrace and possibly signals
      // add options for user to select some candle patterns
      // add options to select indicators
      // add bells and whistles to make things fun
      // alerts,sounds,maybe poppup video animation or something
      
      double B = val1;
      Print(B, " B high");
         if(val2==0)
            {
            for (i=0; val2==0; i++)
               {
               val2=iFractals(NULL, 0, MODE_LOWER, i);
               double A = val2;
                  if(A!=0)
                     {
                     Print(A, " A low");
                     }
               }
             }  
      traded=true;
      }
     
     val1=iFractals(NULL, 0, MODE_UPPER,3);
     val2=iFractals(NULL, 0, MODE_LOWER,3); 
     
     if(val2 > 0 && traded == true && val1 == 0)
      {
      B = val2;
      Print(B, " B low");
         if(val1==0)
            {
            for (i=0; val1==0; i++)
               {
               val1=iFractals(NULL, 0, MODE_UPPER, i);
               A = val1;
                  if(A!=0)
                     {
                     Print(A, " A high");
                     }
               }
             }  
      traded=false;
      }
     
                    
                
   return(0);
  }    

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


      

Dies wird nur einmal beim Hinzufügen von

if(val1 > 0 && traded == false && val2==0)

und

if(val2 > 0 && traded == true && val1 == 0)


So bin ich ein wenig näher naw ich kann es einige mehr zu bewerten.

Vielen Dank für die Hilfe alle, das war eine riesige Hilfe, weil es Spiel mir die Ideen, dies zu beheben und erweitert mein Wissen ein bisschen mehr über das Zurücksetzen von Dingen zu.
Ich muss das in meiner Hosentasche behalten.

Danke

 

Meistens habe ich das Problem nicht. Es scheint, dass es nur passiert, wenn es eine obere und untere Fraktal in der gleichen Bar, die in unsicheren Märkten manchmal passiert. Der einzige Weg, um dies zu umgehen ist nur die Berechnung einmal pro Bar so laufen:

static datetime currTime;
if(Time[0]!=currTime){
currTime = Time[0];
// Rest of code
}

Das sollte bedeuten, dass es nicht falsch gehandelt wird, wenn Fraktale in beide Richtungen gehen.

 
Jetzt kann ich beginnen, durch den Rest davon zu arbeiten, ich wünschte nur, ich war erfahren genug, um die Umwandlung eines iCustom Indikator zu einem EA zu verstehen, dann würde ich wahrscheinlich schon hatte dies vor langer Zeit ausgearbeitet.

Die Art, wie ich es jetzt tue, wird komplizierter sein, weil ich immer noch iCustom Indikatoren neben meiner Codelogik hinzufügen muss; und all der Schnickschnack, anstatt einen bereits funktionierenden iCustomer Indikator als meine Codelogik zu verwenden

Wie auch immer, nochmals vielen Dank für die tollen Neuigkeiten des Tages.
 
Oder Ihre Lösung würde auch funktionieren, ich war gerade dabei, meine Theorie zu testen und habe Ihren Beitrag nicht gesehen.
 
heelflip43:

Meistens habe ich das Problem nicht. Es scheint, dass es nur passiert, wenn es eine obere und untere Fraktal in der gleichen Bar, die in unsicheren Märkten manchmal passiert. Der einzige Weg, um dies zu umgehen ist nur die Berechnung einmal pro Bar so laufen:

Das sollte bedeuten, dass es nicht falsch gehandelt wird, wenn Fraktale in beide Richtungen gehen.

Ich muss lernen, wie dieser Teil funktioniert ein wenig besser Ich habe es gesehen, bevor und andere ähnliche Versionen aber nur teilweise verstehen

Ich muss das noch etwas genauer studieren. Dies könnte der Punkt sein, an dem ich die meisten meiner Codes verliere, aufgrund der kontinuierlichen Druckanweisungen beim Testen.

Ich bin sicher, es gibt andere Möglichkeiten, um es zu umgehen, und doch habe ich vor, auch den Indikator für diese zu erstellen und zeichnen die Linien von AtoB etc.

Ich werde noch etwas mehr studieren
 
Hier sind einige Fortschritte, die ich bis jetzt gemacht habe

Vielleicht kann es jemand gut gebrauchen, ich bin sicher, dass es von einem Guru besser überarbeitet werden kann

Jedenfalls druckt es, was ich will, und ich habe einige externe Werte für Fibo-Levels hinzugefügt, so dass die Benutzer auswählen können, welche Levels sie haben wollen

Mein erster Code-Beitrag in den Foren LOL

Hat jemand einen besseren Weg, um diese Aufgabe zu erfüllen? Ich rechne schon damit, dass ich den Code verdoppeln muss, weil ich iCustom-Indikatoren hinzufüge, um zu zeigen, was mein Code tut, aber das bedeutet eine Art Doppelcodierung für einen Array-Puffer usw. und dann die Verwendung von iCustom

Wie auch immer, hier ist was ich habe

//+------------------------------------------------------------------+
//|                                          Unfinished_POS_slate.mq4 |
//|                                                    Unfinished POS |
//|                                    
//+------------------------------------------------------------------+
#property copyright "Unfinished POS slate by Agent86"


//---- input parameters
extern double    TakeProfit=20.0;
extern double    Lots=0.1;
extern double    StopLoss=10.0;
extern int MagicNumber=123486;
extern double fibo_retrace=0.500; //this is C retracement level
extern double fibo_extension=1.618;  // coming soon, D extention 


double val1;
double val2;
bool traded = false;


//++++ These are adjusted for 5 digit brokers.

int     pips2points;    // slippage  3 pips    3=points    30=points
double  pips2dbl;       // Stoploss 15 pips    0.0015      0.00150
int     Digits.pips;    // DoubleToStr(dbl/pips2dbl, Digits.pips)

    // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   if (Digits == 5 || Digits == 3)
   {    // Adjust for five (5) digit brokers.
      pips2dbl    = Point*10; pips2points = 10;   Digits.pips = 1;
   } 
   else 
    {    
      pips2dbl    = Point;    pips2points =  1;   Digits.pips = 0; 
    }
    // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
     
   
    
//---- 

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
   
//----
   return(0);
  }
   
    
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   
        
   int i=0;
   int ticket,total,result;
   total = OrdersTotal();                 
   val1=iFractals(NULL, 0, MODE_UPPER,3);
   val2=iFractals(NULL, 0, MODE_LOWER,3); 

     
     if(val1 > 0 && val2 == 0 && traded == false)
      { 
      double B = val1;
      Print(B, " B high");
      if(val2==0)
         {
         for (i=0; val2==0; i++)
            {
            val2=iFractals(NULL, 0, MODE_LOWER, i);
            double A = val2;
            if(A!=0)
              {
              Print(A, " A low");
              }
            }
          }
       double C = B-(B-A)*fibo_retrace; //retrace 50% no fractal
       Print(C, " UP ABC retrace level");
       if(Bid <= C)
         {
         Print (Bid, " UP ABC C Retrace Hit");
         }  
      
      
      traded=true;
      }
     
     //val1=iFractals(NULL, 0, MODE_UPPER,3); been suggested I might need to reset these here
     //val2=iFractals(NULL, 0, MODE_LOWER,3); I'll investigate this some more
     
     
     if(val2 > 0 && val1 == 0 && traded == true)
      {
      B = val2;
      Print(B, " B low");
      if(val1==0)
        {
        for (i=0; val1==0; i++)
           {
           val1=iFractals(NULL, 0, MODE_UPPER, i);
           A = val1;
           if(A!=0)
             {
              Print(A, " A high");
             }
           }
        }        
             
        C = B+(A-B)*fibo_retrace; //retrace 50% no fractal  //recheck my math on this one
        Print(C, " DOWN ABC retrace level");
        if(Bid <= C)
           {
           Print (Bid, " DOWN ABC C Retrace Hit");
           } 
                 
      traded=false;
      }
     
                    
                
   return(0);
  }    

//+------------------------------------------------------------------+
Mit meinen begrenzten Kenntnissen und Erfahrungen ist dies alles, was mir für ein ABCD-Schema einfällt

Ich werde weiter daran arbeiten, um dem Benutzer zu ermöglichen, die A- und B-Werte auf Werte zu ändern, die die vorherigen A- und B-Werte nicht verletzen, um wirklich innerhalb eines Trends zu bleiben usw.

Ich hoffe, jemand kann dies nutzen oder vielleicht mit besseren Ideen ergänzen.

Jetzt werde ich an Kerzenmustern und Indikatoren arbeiten, um sie zu ergänzen, und Popup-Warnungen, vielleicht Sounds und ein Popup-Video könnten Spaß machen.

Vielen Dank für die Hilfe aller.

 

Доброго времени суток уважаемые форумчане!

Меня зовут Герман, мне 23 года, я являюсь трейдером компаниии "Инстафорекс"

Помогите в поиске нужного скрипта! Скрипт нужен для сетки отложенных ордеров.

 
GERICH:

Доброго времени суток уважаемые форумчане!

Меня зовут Герман, мне 23 года, я являюсь трейдером компаниии "Инстафорекс"

Помогите в поиске нужного скрипта! Скрипт нужен для сетки отложенных ордеров.

Dude Ich bin nicht in InstaForex interessiert und wenn Sie ein Grid-Skript wollen, bitte ein Projekt in der Coders for hire Abschnitt
Und bitte posten in Englisch

Happy Handel