Fehler, Irrtümer, Fragen - Seite 1290

 
Tapochun:
Danke, ich verstehe, dass OnTrade() und OnTradeTransaction() sowieso nicht verwendet werden können?
Sie haben richtig verstanden. Das können Sie nicht.
 

1. Warum ändert sich die Sprache, wenn ich sie auf einem Terminal ändere, nach einem Neustart auch auf allen anderen?

Im Detail: Ich habe 10 MT4/765 Terminals laufen, änderte die Sprache in einem von ihnen von Russisch auf Englisch und startete es neu. Nach dem Neustart der anderen Terminals ändert sich auch deren Sprache!

2. Warum wird das Profil nicht automatisch gespeichert, wenn ich es ändere - Einstellungen von Indikatoren, Expert Advisors, Charts?

Um genau zu sein: Gestern habe ich ein Profil konfiguriert, damit gehandelt, und heute wurde es geschwärzt, und als ich die Terminals neu startete, wurden keine Änderungen gespeichert und nur die, die ich vor den Änderungen hatte, wurden heruntergeladen.
Es wäre eine gute Idee, das Profil nach einer bestimmten Zeit automatisch zu speichern, z. B. alle 10 Minuten oder alle 1 Stunde.

 
Novikov:

2. Warum wird das Profil nicht automatisch gespeichert, wenn Änderungen daran vorgenommen werden - Indikatoreinstellungen, Expert Advisors, Charts?

Das Profil wird gespeichert, wenn Sie die Anwendung normal schließen.
Wenn Sie es speichern müssen, schließen Sie das Terminal und öffnen Sie es erneut, dann werden Sie zufrieden sein :)
 
fyords:
Das Profil wird gespeichert, wenn Sie die Anwendung normal schließen.
Wenn Sie es speichern müssen, schließen Sie das Terminal und öffnen Sie es erneut, dann werden Sie zufrieden sein :)

"Was würde ich ohne dich tun?" :)

3. Wohin gehen die Zitate?

Wenn ich m1-Kurse herunterlade, um RENCO-Charts zu erstellen, müssen nach einem fehlerhaften Herunterfahren des Terminals (Stromausfall) die Kurse neu geladen werden!

 
warum gibt es beim Zugriff auf das Profil einer anderen Person von einem Android-Handy aus keine Schaltfläche, um eine Nachricht zu schreiben? bei Nachrichten muss man den Benutzernamen des neuen Gesprächspartners eingeben .... das ist sehr unangenehm...
 
Novikov:

"Was würde ich ohne dich tun?" :)

3. Wohin gehen die Zitate?

Ich lade m1-Kurse herunter, um RENCO-Charts zu erstellen, aber nachdem das Terminal fehlerhaft beendet wurde (Stromausfall), müssen die Kurse neu geladen werden!

wird Ihnen mitgeteilt, dass alle Änderungen mit der korrekten Abschaltung gespeichert werden .... einschließlich heruntergeladener Zitate
 

Ich verstehe, dass ein Strukturelement nicht als Indikatorpuffer verwendet werden kann, zum Beispiel so:

struct Buffers
{
    double buffer [];
};

aber was macht man, wenn man mehrere Dutzend Puffer braucht und es nicht so funktioniert:

struct Buffers
{
    double buffer [];
};

Buffers IndBuff;

void Func()
{
  IndBuff[0].buffer[0]=3.1415926;
}
 
paladin800:
Ja, ich bin auch über diese Funktion gestolpert. Ich kann nicht herausfinden, wie man eine Variable in externen Parametern als 4AM und die andere als 5PM macht und dann einfach das Ergebnis von TimeGMT() mit ihnen vergleicht.

Ich habe schon eine Weile nicht mehr reingeschaut.

4AM ist 04:00
5PM ist 17:00

 
joo:

Meines Erachtens kann ein Strukturelement nicht als Indikatorpuffer verwendet werden, z. B:

Dose
 
joo:

Ich verstehe, dass ein Strukturelement nicht als Indikatorpuffer verwendet werden kann, zum Beispiel so:

Aber was tun, wenn man mehrere Dutzend Puffer braucht und es so nicht funktioniert?

Ich habe ein solches Beispiel von einem nicht unbekannten Autor gefunden. )

//+------------------------------------------------------------------+
//|                                                  EMA_Rainbow.mq5 |
//|                                       Copyright 2012, MetaDriver |
//|                                            MetaDriver@rambler.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaDriver"
#property link      "MetaDriver@rambler.ru"
#property version   "1.00"
//---
#define  CountLine  50
//---
#property indicator_chart_window
#property indicator_buffers CountLine
#property indicator_plots   CountLine

//--- Внешние параметры
input int   FastPeriod   =5;
input int   PeriodStep   =5;
input color FastColor    =clrAqua;
input color MiddleColor  =clrDodgerBlue;
input color SlowColor    =clrBlue;
input color LFastColor   =clrYellow;
input color LMiddleColor =clrOrange;
input color LSlowColor   =clrOrangeRed;
//--- 
struct SBuffer
  {
   double            B[];
  };
//--- indicator buffers
SBuffer       EmaBuffer[CountLine];
//---
color Colors[CountLine];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   InitColors();
//---
   for(int i=0; i<CountLine; i++)
      InitBuffers(i);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int    rates_total,
                const int    prev_calculated,
                const int    begin,
                const double &price[])
  {
//---
   int limit=rates_total-prev_calculated;
//---
   if(limit==1)
      limit++;
//---
   if(prev_calculated==0)
     {
      limit-=begin+1;
      for(int i=0; i<CountLine; i++)
         EmaBuffer[i].B[limit]=price[limit];
     }
//---
   if(limit!=0)
     {
      for(int i=0; i<CountLine; i++)
        {
         double p=2./(FastPeriod+PeriodStep*(CountLine-i)+1);
         //---
         for(int j=limit-1; j>=0; j--)
            EmaBuffer[i].B[j]=price[j]*p+EmaBuffer[i].B[j+1]*(1.-p);
        }
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| Инициализация цветных буферов                                    |
//+------------------------------------------------------------------+
void InitColors()
  {
   int Half=CountLine/2;
//---
   for(int i=0; i<Half; i++)
     {
      if(i%4==3)
         Colors[i]=MixColor(LSlowColor,LMiddleColor,i*1.0/Half);
      else
         Colors[i]=MixColor(SlowColor,MiddleColor,i*1.0/Half);
     }
//---
   for(int i=Half; i<CountLine; i++)
     {
      if(i%4==3)
         Colors[i]=MixColor(LMiddleColor,LFastColor,(i-Half)*1.0/Half);
      else
         Colors[i]=MixColor(MiddleColor,FastColor,(i-Half)*1.0/Half);
     }
  }
//+------------------------------------------------------------------+
//| Определение цвета                                                |
//+------------------------------------------------------------------+
color MixColor(color A,color B,double mix)
  {
   int r = (int)MathRound((B     & 0xFF) * mix + (A     & 0xFF) * (1. - mix));
   int g = (int)MathRound((B>>8  & 0xFF) * mix + (A>>8  & 0xFF) * (1. - mix));
   int b = (int)MathRound((B>>16 & 0xFF) * mix + (A>>16 & 0xFF) * (1. - mix));
   return color(r|g<<8|b<<16);
  }
//+------------------------------------------------------------------+
//| Инициализация индикаторных буферов                               |
//+------------------------------------------------------------------+
void InitBuffers(int index)
  {
   SetIndexBuffer(index,EmaBuffer[index].B,INDICATOR_DATA);
   PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_LINE);
   PlotIndexSetInteger(index,PLOT_LINE_COLOR,Colors[index]);
   PlotIndexSetDouble(index,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//---
   if(index%8==7) PlotIndexSetInteger(index,PLOT_LINE_WIDTH,1);
  }
//+------------------------------------------------------------------+