Fehrler in der Liene

 

Hallo wer kann mir sagen wie ich den fehler meldung um schreiben kann im Code

der fehler habe ich weis eingekreist er sollte die Magnta farbe durch zeichnen ohne das er das andere ändert

wie kann ich das schreiben ideen sind gefragt

Dateien:
 
Frage: Was soll denn das für ein Fehler sein?
 
Carl Schreiber:
Frage: Was soll denn das für ein Fehler sein?

da ist keine Fehlermeldung, wenn der Indikator nicht richtig anzeigt, stelle den Code richtig

 
Carl Schreiber:
Frage: Was soll denn das für ein Fehler sein?

er zeichnet und wechselt die farbe durch das gibt er ein signal soll nicht sein

wie kann ich das ändern

 
amando:

da ist keine Fehlermeldung, wenn der Indikator nicht richtig anzeigt, stelle den Code richtig

er zeichnet und wechselt die farbe durch das gibt er ein signal soll nicht sein

wie kann ich das ändern

 
adriafpd:

er zeichnet und wechselt die farbe durch das gibt er ein signal soll nicht sein

wie kann ich das ändern

Für beide Puffer dieselbe Farbe verwenden.
 

ja er hat nur einen Buffer

SetIndexBuffer(1,colorBuffer);

 
adriafpd:

ja er hat nur einen Buffer

SetIndexBuffer(1,colorBuffer);

Mal ehrlich, du postest einen screenshot von einem indikator, sagst nicht was er tut nich den code und willst das dir wer sagt wo der fehler ist? 

Der indikator tut sicher genau das was du ihm in der berechnung gesagt hast

 

darum frage ich wer kann helfen und dann schicke ich ihne

 
double Up[];
double Dn[];
double Up1[];
double Dn1[];
double Direction[];
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
{
   totalBars=rates_total;
   if (ArraySize(Direction)!=rates_total)
   {
      ArrayResize(Up,rates_total);
      ArrayResize(Dn,rates_total);
      ArrayResize(Up1,rates_total);
      ArrayResize(Dn1,rates_total);
      ArrayResize(Direction,rates_total);
   }      

   //
   //
   //
   //
   //

   for (int i=(int)MathMax(prev_calculated-1,1); i<rates_total; i++)
   {
       
        double atr = 0;
         for (int k=0;k< hullPeriod  && (i-k-1)>=0; k++)
         
                atr += MathMax(high[i-k],close[i-k-1])-MathMin(low[i-k],close[i-k-1]);
               
          
         atr /= atrPeriod;
                     
        double atr1 = 0;
         
         for (int k=0;k< hullPeriod  && (i-k-1)>=0; k++)
         {
               atr1 += MathMax(high[i-k],close[i-k-1])-MathMin(low[i-k],close[i-k-1]);
                
                atr1 /= atrPeriod;      
                {
                atr1 /= atrPeriod;
                }
         }          
         //
         
         
         
   
         //
         
         //
         //
         double cprice = low[i];   // Einstieg unten bei High früher
         double aprice = close[i];
         double oprice = iCustomMa(AvgMethod,getPrice(Price,open,close,high,low,i,rates_total),AvgPeriod,tick_volume,i);
        // double uprice = iCustomMa(AvgMethod,getPrice(Price1,open,close,high,low,i,rates_total),AvgPeriod,tick_volume,i);
                Up[i]  = oprice+(atrMultiplier)*atr;  // untere Liene
                Dn[i]  = oprice-(atrMultiplier)*atr;  // Obere Liene
                {Up1[i] = oprice+(atrMultiplierDn)*atr1;
                Dn1[i] = oprice-(atrMultiplierUp)*atr1;}
         
         //
         /*if(k % 05 == 0)
            {
                atr1 /= atrPeriod;
            }*/
         //
         //
         //

         colorBuffer[i] = colorBuffer[i-1];
         Direction[i]   = Direction[i-1];
            if (cprice > Up[i-1])
                Direction[i] =  1;
            if (aprice < Dn[i-1])
               Direction[i] = -1;
            if (Direction[i] > 0)
                  {
                  Dn[i] = MathMax(Dn[i],Dn[i-1]);
                  }
            else  
                  {
                  Up[i] = MathMin(Up[i],Up[i-1]);
                  }
            if(Direction[i] > 0)
                  {
                  Dn1[i] = MathMax(Dn1[i],Dn1[i-1]-atr1);
                  st[i] = Dn1[i];
                  }
            else  
                  {
                  Up1[i] = MathMin(Up1[i],Up1[i-1]+atr1);
                  st[i] = Up1[i];
                  }
            if (Direction[i]== 1)
               colorBuffer[i] = 0;
            if (Direction[i]==-1)
               colorBuffer[i] = 1;
               
               if(ArraySize(colorBuffer)-1>i)
        {
         if(Direction[i]==1&& Direction[i-1]!=1)
           {
            ObjectCreate(0,"data "+TimeToString(time[i]),OBJ_TEXT,0,time[i],st[i]);
            ObjectSetString(0,"data "+TimeToString(time[i]),OBJPROP_TEXT,"Buy");
            ObjectSetInteger(0,"data "+TimeToString(time[i]), OBJPROP_COLOR, clrGreen);
            if(time[i]+PeriodSeconds()+30 > iTime(Symbol(),PERIOD_CURRENT,0))alert("Buy");
            ObjectSetInteger(0,"data "+TimeToString(time[i]), OBJPROP_ANCHOR, ANCHOR_UPPER);
           }
           
          if(Direction[i]!=1&& Direction[i-1]==1)
           {
            ObjectCreate(0,"data "+TimeToString(time[i]),OBJ_TEXT,0,time[i],st[i]);
            ObjectSetString(0,"data "+TimeToString(time[i]),OBJPROP_TEXT,"Sell");
            
            ObjectSetInteger(0,"data "+TimeToString(time[i]), OBJPROP_ANCHOR, ANCHOR_LOWER);
            ObjectSetInteger(0,"data "+TimeToString(time[i]), OBJPROP_COLOR, clrRed);
            if(time[i]+PeriodSeconds()+30 > iTime(Symbol(),PERIOD_CURRENT,0))alert("Sell");
           }
        }

   }
   return(rates_total);
}
 
Bitte mit codebutton posten, dann kann man es auch lesen
Grund der Beschwerde: