[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 108

 
paladin80:
Ich bitte die kollektive Intelligenz um Rat. Ich habe den Expert Advisor auf Demo gestellt und seinen Code ein wenig optimiert. (1) Kann ich, um sie in MT4 zu ersetzen, einfach ihre Aktion aussetzen (ohne MT4 zu schließen), sie durch eine neue im Ordner .../experts/ (mit demselben Namen) ersetzen und dann den Handel im oberen Panel von MT4 wieder zulassen? (2) Oder sollte ich MT4 schließen und den EA wie gewohnt nach .../experts/ übertragen und auf den Chart ziehen?

Wenn EA im Chart läuft, führt nur seine Neukompilierung dort zum automatischen Entladen und erneuten Laden im Chart. Und zwar mit Standardparametern.

Andernfalls verbleibt der EA im Speicher, und selbst das Löschen seiner ex4-Datei führt nicht dazu, dass er aus dem Diagramm entfernt wird.

 

Guten Tag.

Gibt es eine Möglichkeit, indicator_minimum und indicator_maximum Eigenschaften zu ändern, wann immer Sie wollen, anstatt sie auf konstante einmal an den Präprozessor zu setzen? Ich habe in den Unterlagen nichts Nützliches gefunden.

 
Solree:

Guten Tag.

Gibt es eine Möglichkeit, indicator_minimum und indicator_maximum Eigenschaften zu ändern, wann immer Sie wollen, anstatt sie auf konstante einmal an den Präprozessor zu setzen? Ich habe in den Unterlagen nichts Nützliches gefunden.

In den Einstellungen des Indikators, Registerkarte "Allgemein". Mit MQL-Software ist das nicht möglich.
 
alsu:
In den Einstellungen des Indikators, Registerkarte "Allgemein". Sie können keine MQL-Software verwenden.
Das ist sehr schade... Ich danke Ihnen für Ihre Antwort.
 
alsu:
In den Einstellungen des Indikators, Registerkarte "Allgemein". Sie können keine MQL-Software verwenden.
Sie können. Nur auf eine falsche Art und Weise. Durch einen zusätzlichen Puffer. Richtig, Sie können den Mindestwert nicht kleiner als den Betriebswert einstellen.
 
Zhunko:
Sie können. Nur krumm. Verwenden Sie einen zusätzlichen Puffer. Es ist jedoch nicht möglich, das Minimum unter das Arbeitsminimum zu setzen.
Und Sie können den Höchstwert auch nicht über den voreingestellten Wert hinaus einstellen))
 
alsu:
Und man kann auch nicht höher gehen als der voreingestellte Höchstwert)).

Zhunko:
Ja, das können Sie. Nur verzerrt. Durch zusätzlichen Puffer. Es ist jedoch nicht möglich, den Mindestbetrag unter dem Arbeitsminimum anzusetzen.

Warum? Wenn alles intern und programmgesteuert ist, dann können Sie es nach Belieben ändern und steuern.

Sie können die Werte auf LEER reduzieren, oder Sie können die Puffer erweitern.

 
sergeev:

Warum? Wenn alles intern und programmgesteuert ist, können Sie es nach Belieben ändern und steuern.

Wenn Sie die Werte auf LEER reduzieren wollen, oder umgekehrt, erweitern Sie die Puffer.

Beantwortet für den Puffer.

Ich habe einen Puffer, der für den vertikalen Sweep zuständig ist. Ich gebe die Linien mit grafischen Objekten aus. Deshalb wird alles in beide Richtungen richtig skaliert.

 
Können Sie das etwas näher erläutern? Ein Stück Code dazu, wenn es Ihnen nichts ausmacht :)
 
Guten Abend, es hat sich eine weitere Frage ergeben. Hier ist ein Teil des Codes:
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_width1 1
#property indicator_width2 1

extern string Symbol1.Name = "EURUSD";     // Название инструмента 1
extern bool   Symbol1.Reverse = false;     // Является ли инструмент 1 реверсивным (с обратной корреляцией) 
                                           // по отношению к остальным инструментам
extern string Symbol2.Name = "EURUSD";     // Название инструмента 2
extern bool   Symbol2.Reverse = false;     // Является ли инструмент 2 реверсивным (с обратной корреляцией) 

extern int MA.Slow = 80;                   // Период медленной МА

// Буферы для отображения данных
double Buf1[];    // Первый инструмент
double Buf2[];    // Второй инструмент

// Параметры графических объектов        
string Label.Name = "label";  
int wndNum;                                // Номер подокна индикатора
string wndName;                            // Наименование окна
string oSymb1,oSymb2;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init() { 
  // Задаем имена графическим объектам
  oSymb1=Symbol1.Name;
  oSymb2=Symbol2.Name;

  // Формируем свойства графиков индикатора
  IndicatorBuffers(2);
  
  SetIndexStyle(0,DRAW_LINE);
  SetIndexBuffer(0,Buf1);
  SetIndexLabel(0,Symbol1.Name);

  SetIndexStyle(1,DRAW_LINE);
  SetIndexBuffer(1,Buf2);
  SetIndexLabel(1,Symbol2.Name);

  return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()  {
  // Удаляем все графические объекты
  DeleteObject(oSymb1);
  DeleteObject(oSymb2); 
  return(0);  
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
  // Подсчет количества баров для построения индикатора
  int limit; int counted_bars=IndicatorCounted();
  if(counted_bars<0) return(-1);
  if(counted_bars>0) counted_bars--; 
  limit=Bars-counted_bars;
  
  // Определяем параметры окна индикатора
  wndNum=WindowFind(WindowExpertName());
  wndName=WindowExpertName()+wndNum; 
  //------------------------------------------------------------------ 
  // Отрисовка ценовых линий: рисуем и синхронизируем по наличию баров
  for(int i=0; i<limit; i++) { 
    Buf1[i]= iMA(Symbol1.Name,0,MA.Slow,0,MODE_SMA,PRICE_CLOSE,i); }
    
  for (i=0; i<limit; i++) {
    Buf2[i]= iMAOnArray(Buf1,0,MA.Slow,0,MODE_SMA,i); }
Wie kann man erreichen, dass Buf1 im Indikatorfenster überhaupt nicht angezeigt wird?