Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 1099

 
alvlaf:
Ich habe es ausprobiert, die ersten fünf Minuten haben gut funktioniert, dann habe ich angefangen, mehrere Trades gleichzeitig zu eröffnen (4) und zwar für dasselbe Paar mit einem größeren Lot. Alexander, mir ist in Ihrer Version nicht ganz klar, wie die globale Variable ihren Wert erhält und ändert?
Beginnen Sie also nacheinander. Testen Sie zunächst alle möglichen Geschäfte mit einem Paar, und führen Sie es dann mit mehreren Paaren durch. (4) ist die Anzahl der Gewerke?
Wenn der EA gestartet wird, wird der Variable eine 1 zugewiesen, wenn es keine solche Variable gibt (in Ihrem Fall ist sie sicherlich vorhanden, da sie für 4 Wochen gespeichert wird). Bei jedem Tick erlaubt oder verbietet diese Variable neue Abschlüsse - das ist ihre einzige Bedeutung. Ist ein Handel verlustbringend oder unrentabel, ist AllowNewOrders=0, andernfalls - 1. Vor der Prüfung auf Kauf-/Verkaufssignale wird diese Variable geprüft, und die Schleife wird aus der Schleife entfernt, ohne einen Auftrag zu eröffnen. Wenn 4 Aufträge auf ein Symbol eröffnet werden, noch dazu mit einem größeren Lot, funktioniert CountTrades offensichtlich nicht. Ich kann es nicht selbst überprüfen, da das Internet bei mir sehr, sehr schlecht ist. Übrigens, bei mir kommt ein neuer Tick bei Grand Capital Optionen auf jedem Zeitrahmen nur mit einer neuen Kerze - ist das bei Ihnen auch so?

 
A13ksandr:
Sie beginnen also der Reihe nach. Testen Sie zunächst an einem Paar alle möglichen Geschäfte, dann nur noch an einigen wenigen. (4) - ist dies die Anzahl der Geschäfte?
Wenn der EA gestartet wird, wird der Variable eine 1 zugewiesen, wenn es keine solche Variable gibt (in Ihrem Fall ist sie sicherlich vorhanden, da sie für 4 Wochen gespeichert wird). Bei jedem Tick erlaubt oder verbietet diese Variable neue Abschlüsse - das ist ihre einzige Bedeutung. Ist ein Handel verlustbringend oder unrentabel, ist AllowNewOrders=0, andernfalls - 1. Vor der Prüfung auf Kauf-/Verkaufssignale wird diese Variable geprüft, und die Schleife wird aus der Schleife entfernt, ohne einen Auftrag zu eröffnen. Wenn 4 Aufträge auf ein Symbol eröffnet werden, noch dazu mit einem größeren Lot, funktioniert CountTrades offensichtlich nicht. Ich kann es nicht selbst überprüfen, da das Internet bei mir sehr, sehr, sehr schlecht ist. Übrigens, bei mir kommt ein neuer Tick bei Grand Capital Optionen auf jedem Zeitrahmen nur mit einer neuen Kerze - ist das bei Ihnen auch so?

Alexander, ich denke, es ist nicht korrekt, der globalen Variablen beim Start eine 1 zuzuweisen, da wir warten müssen, bis mindestens ein Auftrag geöffnet wird. Ich denke, wir sollten den Wert von AllowNewOrders anOrdersTotal oder CountTrades binden, damit er sich ändert, wenn die erste Serie eröffnet wird. Ich werde versuchen, es heute zu tun, aber ich bin sehr unerfahren, so dass, wenn Sie mir sagen, wie man es richtig in den Code zu erklären, werde ich Ihnen sehr dankbar sein. In meinem Terminal kommen die Ticks zu jedem Zeitpunkt des aktuellen Balkens, sogar auf M1. (4) - ist die Anzahl der Geschäfte, die der Bot gleichzeitig eröffnet. Und ich habe es so getestet, wie Sie es empfehlen.
 
trader_fx:
https://docs.mql4.com/ru/objects/objectgetdouble
https://docs.mql4.com/ru/objects/objectgetinteger

Ich danke Ihnen! Ich habe sie. Ich habe eine Frage. Diese Funktionen dienen dazu, Werte von Objekten zu erhalten. Aber wie erhält man die Werte von, sagen wir, Pfeilen,

die im Diagramm sichtbar sind, aber nicht in der Liste der Objekte erscheinen. Zum Beispiel, wenn die Pfeile gezeichnet werden, zum Beispiel :

SetIndexStyle(0, DRAW_ARROW);

SetIndexArrow(0, 234);

\\\\

ObjectsTotal() (und andere Objektfunktionen) sehen diese Pfeile nicht....

 
ilmel:

Ich danke Ihnen! Ich habe sie. Ich habe eine Frage. Diese Funktionen dienen dazu, Werte von Objekten zu erhalten. Aber wie erhält man die Werte von, sagen wir, Pfeilen,

die im Diagramm sichtbar sind, aber nicht in der Liste der Objekte erscheinen. Zum Beispiel, wenn die Pfeile gezeichnet werden, zum Beispiel :

SetIndexStyle(0, DRAW_ARROW);

SetIndexArrow(0, 234);

\\\\

ObjectsTotal() (und andere Objektfunktionen) sehen diese Pfeile nicht....

iCustom als Retter in der Not

 
Hallo! Weiß jemand, was es am 2. September war?
 

Guten Abend, könnten Sie mir sagen, wo der Fehler ist, nahm ich den Indikator aus mql4 Tutorialhttps://book.mql4.com/ru/samples/icustom. Ich möchte aber, dass der Umschlag in einem separaten Fenster angezeigt wird. Im Screenshot im Hauptfenster der Indikator aus dem Tutorial, im unteren Fenster habe ich

.Bildschirmfoto

#property strict
#property indicator_separate_window
#property indicator_minimum 1
#property indicator_buffers 1
#property  indicator_color1 Blue

double Buf_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
  SetIndexBuffer(0,Buf_0);
  SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,clrAqua);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
   int i,                           // Индекс бара
       Counted_bars;                // Количество просчитанных баров 
    Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Buf_0[i]=Close[i];             // Значение 0 буфера на i-ом баре     
      i--;                          // Расчёт индекса следующего бара
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
bobrush:

Guten Abend, könnten Sie mir sagen, wo der Fehler ist, nahm ich den Indikator aus mql4 Tutorialhttps://book.mql4.com/ru/samples/icustom. Ich möchte aber, dass der Umschlag in einem separaten Fenster angezeigt wird. Sie können den Indikator aus dem Buch im Hauptfenster und im unteren Fenster sehen - meinen Indikator


Warum sollte ich das Minimum festlegen?

#property indicator_minimum 1???

Warum muss ich zwei verschiedene Farben verwenden?

Aber der Hauptfehler liegt in der Art des Puffers, die Anzahl der Parameter war ein wenig falsch.

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,0,indicator_color1);

Nun, es sieht so aus:

#property strict
#property indicator_separate_window
#property indicator_buffers 1
#property  indicator_color1 Blue

double Buf_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
  SetIndexBuffer(0,Buf_0);
  SetIndexStyle(0,DRAW_LINE,0,0,indicator_color1);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
   int i=rates_total-prev_calculated-1;
   if(prev_calculated>0)     i++;

   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Buf_0[i]=сlose[i];             // Значение 0 буфера на i-ом баре     
      i--;                          // Расчёт индекса следующего бара
     }
   return(rates_total);
  }
 
evillive:

Warum ein Minimum festlegen?

#property indicator_minimum 1???

Ja, und zweimal Farbe, warum, und anders?

Aber der Hauptfehler liegt in der Art des Puffers, die Anzahl der Parameter war ein wenig falsch.

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,0,indicator_color1);

Nun, es sieht so aus:

Ich danke Ihnen vielmals! Über#propertyindicator_minimum1 Ich weiß nicht, wofür es ist :) wenn nicht sogar schwer zu erklären? Meine Programmiererfahrung ist 3 gescheiterte EAs

 
bobrush:Über#propertyindicator_minimum1 Ich weiß nicht, wofür es ist :) Wenn das nicht schwer zu erklären ist?

Die untere Grenze der Skala eines separaten Anzeigefensters; alles, was über diese Grenze hinausgeht, wird in dem Fenster nicht angezeigt. Normalerweise wird das Minimum-Maximum eingestellt, wenn Sie eine feste Indikatorskala benötigen und wissen, dass die Werte nicht über diese Grenze hinausgehen.
 
evillive:

Die untere Grenze der Skala des individuellen Indikatorfensters; alles, was außerhalb dieser Grenze liegt, wird im Fenster nicht angezeigt. In der Regel wird das Minimum-Maximum festgelegt, wenn eine feste Indikatorskala benötigt wird und bekannt ist, dass die Werte diese Grenze nicht überschreiten dürfen.
oh, genau das, wonach ich gesucht habe, danke)
Grund der Beschwerde: