Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1268

 
Alexey Viktorov:

Es ist sehr wahrscheinlich, dass nach der Umbenennung eines Objekts noch nicht auf dieses zugegriffen werden kann. Sie können versuchen, ChartRedraw nach der Umbenennung einzufügen. Wenn das nicht funktioniert, müssen Sie die Sequenz auf andere Weise aufbauen.

ps; Eine andere Möglichkeit ist, zuerst mit dem Namen sparam zu malen und dann umzubenennen.

Nochmals vielen Dank!!! Was würde ich ohne Sie tun? ))))

 
Vladimir Karputov:

Beispiel imFibonaci RR-Code-

Danke für das Beispiel, aber das ist nur die Festlegung von Handelsstufen. Ich interessiere mich für die Festlegung von Fibonacci-Levels wie 0,0%, 23,6%, 38,2%, 50%, 61,8%, 100%, 161,8%, 261,8%...

https://www.metatrader5.com/ru/terminal/help/objects/fibo/fibo_retracement

Der Autoindikator zeichnet standardmäßig und nach Standard-Fibo-Levels. Es sollte einen Quellcode der Fibo-Tools im Terminal geben, der geändert oder kopiert werden kann... Ich kann ihn nicht finden, wenn Sie ihn kennen, geben Sie mir bitte einen Hinweis.

Oder wie man die folgenden Stufen in den benutzerdefinierten Indikator einfügt:0,0%, 23,6%, 38,2%, 50%, 61,8%, 100%, 161,8%, 261,8%...

   ObjectCreate(chart_id,name,OBJ_EXPANSION,nwin,time1,price1,time2,price2,time3,price3);
   ObjectSetInteger(chart_id,name,OBJPROP_COLOR,Color);
   ObjectSetInteger(chart_id,name,OBJPROP_STYLE,style);
   ObjectSetInteger(chart_id,name,OBJPROP_WIDTH,width);

   if(ray>0)ObjectSetInteger(chart_id,name,OBJPROP_RAY_RIGHT,true);
   if(ray<0)ObjectSetInteger(chart_id,name,OBJPROP_RAY_LEFT,true);

   if(ray==0)
     {
      ObjectSetInteger(chart_id,name,OBJPROP_RAY_RIGHT,false);
      ObjectSetInteger(chart_id,name,OBJPROP_RAY_LEFT,false);
     }

   ObjectSetString(chart_id,name,OBJPROP_TEXT,text);
   ObjectSetInteger(chart_id,name,OBJPROP_BACK,true);

   for(int numb=0; numb<10; numb++)
     {
      ObjectSetInteger(chart_id,name,OBJPROP_LEVELCOLOR,numb,Color);
      ObjectSetInteger(chart_id,name,OBJPROP_LEVELSTYLE,numb,style);
      ObjectSetInteger(chart_id,name,OBJPROP_LEVELWIDTH,numb,width);
     }

Bitte informieren Sie

 
Kira27:

Nochmals vielen Dank!!! Was würde ich ohne Sie tun? ))))

Vielleicht würde ich lernen, logisch zu denken.)))

 
VVT:

Danke für das Beispiel, aber das ist nur die Festlegung von Handelsstufen. Ich interessiere mich für die Festlegung von Fibonacci-Levels wie 0,0%, 23,6%, 38,2%, 50%, 61,8%, 100%, 161,8%, 261,8%...

https://www.metatrader5.com/ru/terminal/help/objects/fibo/fibo_retracement

Der Indikator zeichnet standardmäßig und nach Standard-Fibo-Ebenen. Es sollte einen Quellcode der Fibo-Tools im Terminal geben, der geändert oder kopiert werden kann... Ich kann ihn nicht finden, wenn Sie ihn kennen, geben Sie mir bitte einen Hinweis.

Oder wie man die folgenden Stufen in den benutzerdefinierten Indikator einfügt:0,0%, 23,6%, 38,2%, 50%, 61,8%, 100%, 161,8%, 261,8%...

Bitte informieren Sie

Das Beispiel, das ich oben angeführt habe, enthält nur die Einstellung der Stufen. Wenn Sie fragen, könnten Sie den Code öffnen und überprüfen?

 
Vladimir Karputov:

Das oben genannte Beispiel zeigt, wo die Stufen festgelegt werden. Wenn Sie danach fragen, machen Sie sich die Mühe, den Code zu öffnen und zu überprüfen.

Danke, ja, es ist ein bisschen verwirrend, aber ich versuche es zu verstehen.

 

Wie der Code in Mql5 aussehen würde


extern int    StartHour   = 12;    //Час начала торговли(терминальное время)

int start()
{
if  (Hour()==StartHour)
    {
     OrderSend(Symbol(),OP_BUY,Lot,Ask,0,Ask-StopLoss*Point,Bid+TakeProfit*Point,"советник",MAGIC,expiration,Blue);
    }  
return(0);
}
 
Dmitriywelcome:

Wie würde der Code in Mql5 aussehen?

   MqlDateTime tm;
   TimeCurrent(tm);
   if(tm.hour==12) {
    ...
   }

Genau so, wie es in mql4 aussehen würde


Ein bisschen Hilfe

MqlDateTime

Die Datumsstruktur enthält acht Felder vom Typint.

structMqlDateTime
{
intyear;// Jahr
intmon;// Monat
intday;// Tag
intStunde;// Stunde; // Stunde
intmin;// Minuten
intsec;// Sekunden
intday_of_week;// Tag der Woche (0-Sonntag, 1-Montag, ....,6-Samstag)
intday_of_year;// laufende Nummer in einem Jahr (der 1. Januar hat die Nummer 0)
};

Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
  • www.mql5.com
Целый тип char занимает в памяти 1 байт (8 бит) и позволяет выразить в двоичной системе счисления 2^8 значений=256. Тип char может содержать как положительные, так и отрицательные значения. Диапазон изменения значений составляет от -128 до 127. uchar # Целый тип uchar также занимает в памяти 1 байт, как и тип char, но в отличие от него, uchar...
 
Vladimir Karputov:

Ich habe Ihnen oben ein Beispiel gegeben - es geht nur um die Festlegung der Stufen. Wenn Sie danach fragen, öffnen Sie bitte den Code und überprüfen Sie ihn.

Netter Auto-Drawer) mit verschiedenen Objekten, Ebenen, Zeitrahmen, vielen Dank

 
int OnInit()
  {
//---
   ChartSetInteger(ChartID(), CHART_EVENT_OBJECT_CREATE, true);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  }
//+------------------------------------------------------------------+

/***********************OnChartEvent function************************/
void OnChartEvent(const int id,         // идентификатор события
                  const long& lparam,   // параметр события типа long
                  const double& dparam, // параметр события типа double
                  const string& sparam  // параметр события типа string
                 )
  {
   if(id == CHARTEVENT_OBJECT_CREATE)
     {
      //----------------------------------------------------------------------------------------
      double   Level_0= ObjectGetDouble(
                           0,          // идентификатор графика
                           sparam,              // имя объекта
                           OBJPROP_PRICE,           // идентификатор свойства
                           0     // модификатор свойства
                        );


      double   Level_1= ObjectGetDouble(
                           0,          // идентификатор графика
                           sparam,              // имя объекта
                           OBJPROP_PRICE,           // идентификатор свойства
                           1     // модификатор свойства
                        );
      //------------------------------------------------------------------------------------------------------
      if(Level_0 > Level_1)
         ObjectSetInteger(0,sparam,OBJPROP_COLOR,clrDeepSkyBlue);
      else
         ObjectSetInteger(0,sparam,OBJPROP_COLOR,clrYellow);
      //+------------------------------------------------------------------+
      ulong timeCreate = ObjectGetInteger(0, sparam, OBJPROP_CREATETIME); //  получим время создания объекта
      string newName = "fibka"+string(timeCreate); //  сформируем новое имя объекта
      ObjectSetString(0, sparam, OBJPROP_NAME, newName);  //  переименуем объект
     }
  }/******************************************************************/

//+------------------------------------------------------------------+
Alexey Viktorov
:

Vielleicht würde ich lernen, logisch zu denken)))).

Ich habe alles ausprobiert, was Sie mir gesagt haben, ich habe gedreht und gewendet, aber alle die gleiche Farbe Linien in MT5. In MT4 es neu färbt in einer normalen Weise, ohne jede Verzögerung.

 

wie man einen Algorithmus in einem Indikator organisiert, um Punkte zu nehmen und sie in einen anderen Puffer zu übertragen.

- So zeichnen Sie die Trendlinien. (wie auf dem Bild)

Schnappschuss eines Punktes

-----------------------------------------

Ich habe alles mit Bauchgefühl probiert, sie sind gezeichnet, aber an seltsamen Stellen.

//---
   ArraySetAsSeries(open,true);
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);
   ArraySetAsSeries(close,true);
//---
   z=Z_;
   for(i=limit; i>=0; i--)
     {
      if(!CalculatePivot())
         return(0);
      if(rates_total!=prev_calculated && i==0)
         Z_=z;
      //---
      DnArrowiCustom[i]=0.0;
      UpArrowiCustom[i]=0.0;
      CoralDn=((Inpyna && BufferC[i]<BufferC[i+1]) || (Inpdoy && BufferCcop[i]<BufferCcop[i+1]) ||
               (Inptrei && BufferC[i]<BufferCcop[i]) || (Inppatry && BufferCcop[i]<BufferC[i]) ||
               (Inpcinc && close[i]<m_Coral_price) || (Inpshase && close[i]<BufferC[i]) || (Inpshapt && close[i]<m_p_price));
      CoralUp=((Inpyna && BufferC[i]>BufferC[i+1]) || (Inpdoy && BufferCcop[i]>BufferCcop[i+1]) ||
               (Inptrei && BufferC[i]>BufferCcop[i]) || (Inppatry && BufferCcop[i]>BufferC[i]) ||
               (Inpcinc && close[i]>m_Coral_price) || (Inpshase && close[i]>BufferC[i]) || (Inpshapt && close[i]>m_p_price));
      if(CoralDn)
         z = 1;
      if(CoralUp)
         z = 2;
      if(CoralDn && (z==1 || z==0))
        {
         if(((InpFiltryP && close[i]<m_p_price) || (!InpFiltryP && !InpFiltryM && !InpFiltryC)) ||
            ((InpFiltryC && close[i]<m_Coral_price) || (!InpFiltryP && !InpFiltryM && !InpFiltryC)) ||
            ((InpFiltryM && close[i]<m_Coral_price) || (!InpFiltryP && !InpFiltryM && !InpFiltryC)))
            if(OldTrend>0)
               UpArrowiCustom[i]=high[i];
         if(i!=0)
            OldTrend=-1;
         //if(FractalUpBuffer[i]==UpArrowiCustom[i])
           // return(rates_total);
        }
      if(CoralUp && (z==2 || z==0))
        {
         if(((InpFiltryP && close[i]>m_p_price) || (!InpFiltryP && !InpFiltryM && !InpFiltryC)) ||
            ((InpFiltryC && close[i]>m_Coral_price) || (!InpFiltryP && !InpFiltryM && !InpFiltryC)) ||
            ((InpFiltryM && close[i]>m_Coral_price) || (!InpFiltryP && !InpFiltryM && !InpFiltryC)))
            if(OldTrend<0)
               DnArrowiCustom[i]=low[i];
         if(i!=0)
            OldTrend=+1;
        // if(FractalDownBuffer[i]==DnArrowiCustom[i])
           // return(rates_total);
        }
     }
   m_left_Ctime=time[rates_total-2];
//---
   /*if(prev_calculated==0)
     {
      //---
      for(int u=rates_total-4; u>=10; u--)
        {
         if(FractalUpBuffer[u]!=0.0 && FractalUpBuffer[u]!=EMPTY_VALUE)
           {
            if(upper_left==0.0)
              {
               upper_left=FractalUpBuffer[u];
               upper_left_date=time[u];
              }
            else
               if(upper_right==0.0)
                 {
                  upper_right=FractalUpBuffer[u];
                  upper_right_date=time[u];
                 }
           }
         if(FractalDownBuffer[u]!=0.0 && FractalDownBuffer[u]!=EMPTY_VALUE)
           {
            if(lower_left==0.0)
              {
               lower_left=FractalDownBuffer[u];
               lower_left_date=time[u];
              }
            else
               if(lower_right==0.0)
                 {
                  lower_right=FractalDownBuffer[u];
                  lower_right_date=time[u];
                 }
           }
         if(upper_left!=0.0 && upper_right!=0.0 && lower_left!=0.0 && lower_right!=0.0)
            break;
        }
      if(upper_left==0.0 || upper_right==0.0 || lower_left==0.0 || lower_right==0.0)
         return(rates_total);
      //---
      TrendPointChange(0,m_Upper_line,0,upper_right_date,upper_right);
      TrendPointChange(0,m_Upper_line,1,upper_left_date,upper_left);
      TrendPointChange(0,m_Lower_line,0,lower_right_date,lower_right);
      TrendPointChange(0,m_Lower_line,1,lower_left_date,lower_left);
      //---
      return(rates_total);
     }*/
//---

-----------------------------------------------------------------------------------------------------

Ich habe den Indikator beigefügt - er funktioniert - aber diese Linien können nicht eingestellt werden.

Dateien:
1.mq5  82 kb
Grund der Beschwerde: