Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1170

 
Carcass77:

Mein Indikator funktioniert, ich erweitere nur.

OK, ich hole es selbst.

Wenn dies Ihr Indikator ist, sieht die Frage, gelinde gesagt, alarmierend aus...

 
Сергей Таболин:

Wenn dies Ihr Indikator ist, sieht die Frage, gelinde gesagt, alarmierend aus...

Es klappt. Die Frage bezog sich auf die "Form" der Deklaration der String-Variablen. Ich lerne immer noch, wenn überhaupt, Herren Programmierer.

 
Carcass77:

Es hat funktioniert. Die Frage bezog sich auf die "Form" der Deklaration der String-Variablen. Ich lerne immer noch, wenn überhaupt, Herren Programmierer.

Jeder lernt dazu, das ist normal.

Meine Frage entstand, weil Ihr Beispiel nicht auf Anfängerniveau war, und die Frage nach Variablentypen und Geltungsbereich ist das erste, was man verstehen muss, wenn man zum ersten Mal versucht, seinen Code zu schreiben - ohne dieses Verständnis wird man in Zukunft überhaupt nichts erreichen

 
Carcass77:

Es hat funktioniert. Die Frage bezog sich auf die "Form" der Deklaration der String-Variablen. Ich lerne immer noch, wenn überhaupt, Herren Programmierer.

Auch ich bin noch am Lernen )))) Und hoffentlich kann ich noch eine Menge lernen ;)

 

Wie kann man der Schaltfläche Name + Wert übergeben (Beispiel Schaltfläche Lots = 0.1)?

Vielen Dank im Voraus!

 
Hallo! Ich versuche, eine Trendlinie mit unteren Fraktalen zu zeichnen, und es funktioniert nicht. Nimmt den Anfang der Zeiten als ersten Punkt, zieht eine Linie und das war's. Er geht nicht zum nächsten Fraktal über. Was mache ich falsch, wie kann ich es beheben?
datetime firsttime1;
datetime firsttime2;
datetime secondtime1;
datetime secondtime2;
double  firstprice1;
double  firstprice2;
double  secondprice1;
double  secondprice2;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  if(Hour()>=9 && Hour()<22)
   {
    Fun_New_Bar();
    if(New_Bar)      
     {

double vallo=iFractals(NULL,0,MODE_LOWER,2);Alert("vallo = ",vallo);
      {if(vallo>0)
       {
       //забиваем координаты второй точки для линии Low
       secondtime1=(TimeCurrent()-7200);
       secondprice1=iLow(NULL,0,2);
       
       //рисуем трендовую линию Low
       ObjectCreate("LowLine",OBJ_TREND,0,firsttime1,firstprice1,secondtime1,secondprice1);

      firsttime1=secondtime1;
      firstprice1=secondprice1;
   
       }
      }
     }
   }
  } 
 

Dem von kodobase heruntergeladenen SuperTrend Indikator wurden Pfeile hinzugefügt. Er zeichnet die Pfeile beim Start normal,


aber wenn ich im Diagramm nach hinten/links blättere, erscheint das Kauderwelsch und alles stürzt ab.


Hier ist der Code:

//+------------------------------------------------------------------+
//|                                                   SuperTrend.mq4 |
//|                   Copyright © 2008, Jason Robinson (jnrtrading). |
//|                                   http://www.spreadtrade2win.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, Jason Robinson."
#property link      "http://www.spreadtrade2win.com"
#property strict
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 clrLime
#property indicator_color2 clrRed
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 3
#property indicator_width4 3

enum en_trend {
   Modern,   // Modern
   Classic,  // Classic
};

//+------------------------------------------------------------------+
//| Universal Constants                                              |
//+------------------------------------------------------------------+
#define  PHASE_NONE 0
#define  PHASE_BUY  1
#define  PHASE_SELL -1

//+------------------------------------------------------------------+
//| User input variables                                             |
//+------------------------------------------------------------------+
input en_trend TrendMode      = Modern;   // Trend Line Mode
input int      ATR_Period     = 10;       // ATR Period
input double   ATR_Multiplier = 3.0;      // ATR Multiplier
input int      BarsToCount    = 0;        // Bars to count (0 - all bars)
input color    clr_Up         = clrLime;  // Arrow Up Color
input color    clr_Dn         = clrRed;   // Arrow Down Color

//+------------------------------------------------------------------+
//| Universal variables                                              |
//+------------------------------------------------------------------+
double buffer_line_up[];
double buffer_line_down[];
double ArrowUpBuffer[];
double ArrowDnBuffer[];

double atr,
       band_upper,
       band_lower,
       shift;
int    phase=PHASE_NONE;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
  
   IndicatorShortName("Super Trend");
   IndicatorDigits((int)MarketInfo(Symbol(),MODE_DIGITS));
   SetIndexBuffer(0,buffer_line_up);
   SetIndexLabel(0,"Up Trend");
   SetIndexBuffer(1,buffer_line_down);
   SetIndexLabel(1,"Down Trend");

//--- 2 additional arrows buffers
//---- drawing settings
   SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,EMPTY,clr_Up);
   SetIndexArrow(2,233);
   SetIndexStyle(3,DRAW_ARROW,STYLE_SOLID,EMPTY,clr_Dn);
   SetIndexArrow(3,234);
//---- indicator buffers
   SetIndexBuffer(2,ArrowUpBuffer);
   SetIndexBuffer(3,ArrowDnBuffer);
   SetIndexEmptyValue(2,0.0);
   SetIndexEmptyValue(3,0.0);  
  
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
   if(counted_bars==0) limit-=1+2;

   for(int i=limit; i>=0; i--) 
     {
      atr   = iATR(Symbol(),0,ATR_Period,i);
      shift = 0.5*iATR(Symbol(),0,100,i);;
      band_upper = (High[i]+Low[i])/2 + ATR_Multiplier * atr;
      band_lower = (High[i]+Low[i])/2 - ATR_Multiplier * atr;

      if(phase==PHASE_NONE) 
        {
         buffer_line_up[i]=(High[i+1]+Low[i+1])/2;
         buffer_line_down[i]=(High[i+1]+Low[i+1])/2;
        }

      if(phase!=PHASE_BUY && Close[i]>buffer_line_down[i+1] && buffer_line_down[i+1]!=EMPTY_VALUE) 
        {
         phase = PHASE_BUY;
         buffer_line_up[i]=band_lower;
         buffer_line_up[i+1]=buffer_line_down[i+1];
        }

      if(phase!=PHASE_SELL && Close[i]<buffer_line_up[i+1] && buffer_line_up[i+1]!=EMPTY_VALUE) 
        {
         phase = PHASE_SELL;
         buffer_line_down[i]=band_upper;
         buffer_line_down[i+1]=buffer_line_up[i+1];
        }

      if(phase==PHASE_BUY
         && ((TrendMode==0 && buffer_line_up[i+2]!=EMPTY_VALUE) || TrendMode==1)) 
        {
         if(band_lower>buffer_line_up[i+1]) 
           {
            buffer_line_up[i]=band_lower;
           }
         else 
           {
            buffer_line_up[i]=buffer_line_up[i+1];
           }
        }
      if(phase==PHASE_SELL
         && ((TrendMode==0 && buffer_line_down[i+2]!=EMPTY_VALUE) || TrendMode==1)) 
        {
         if(band_upper<buffer_line_down[i+1]) 
           {
            buffer_line_down[i]=band_upper;
           }
         else 
           {
            buffer_line_down[i]=buffer_line_down[i+1];
           }
        }
        
        // Make Arrows
        if (buffer_line_up[i+1]  !=EMPTY_VALUE && 
            buffer_line_up[i+2]  !=EMPTY_VALUE && 
            buffer_line_down[i+2]!=EMPTY_VALUE) {
           ArrowUpBuffer[i+1]=Low[i+1]-shift;
           ArrowDnBuffer[i+1]=0.0;

        }
        if (buffer_line_down[i+1] !=EMPTY_VALUE && 
            buffer_line_down[i+2] !=EMPTY_VALUE && 
            buffer_line_up[i+2]   !=EMPTY_VALUE) {
           ArrowDnBuffer[i+1]=High[i+1]+shift;
           ArrowUpBuffer[i+1]=0.0;

        }
     }

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

Bitte sagen Sie mir, was daran falsch ist.

Supertrend
Supertrend
  • www.mql5.com
AudioPrice Revision 1 Have audio output of latest price in stereo! Revised to cater for fractional pips as now offered by some brokers to MT4. Stochastic Net Stochastic net for the the classification problems with the instruction provided.
Dateien:
 
Grigori.S.B:

Bitte sagen Sie mir, was ich falsch gemacht habe.

Ich habe einen Fehler gemacht, indem ich dieses Add-on separat eingefügt habe. Die Pfeile sollten nur zum Zeitpunkt des Pufferwechsels gesetzt werden. Vergessen Sie dabei nicht, in allen anderen Fällen einen leeren Wert in den Puffer zu schreiben.

Noch besser ist es, sofort einen leeren Wert zu setzen und einen der Puffer mit einem Pfeil zu füllen, wenn sich der Trend ändert.

 
Grigori.S.B:

aber wenn ich rückwärts/links scrolle, erscheint das Kauderwelsch und alles bricht ab.

Sie haben keine Neuberechnung für diesen Fall und die neuen Indikatorpuffer, die erscheinen, sind mit Müll gefüllt.

 
Verpasse ich wieder etwas Elementares, weil niemand antworten will?
Grund der Beschwerde: