[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 548

 
artmedia70 писал(а) >>
Was ist der Fehler 4051 und wie kann man ihn beheben?


https://docs.mql4.com/ru/constants/errors

ERR_INVALID_FUNCTION_PARAMVALUE 4051 Ungültiger Wert eines Funktionsparameters

 
artmedia70 >>:
А кто сказал, что именно тот кусочек работает неправильно? Если б я выложил весь код - места бы не хватило...
Сначала вызываете на общение, потом в кусты... :)


Nein. Ich habe vorgeschlagen, dass Sie ein Stück Code, das nicht funktioniert, auseinandernehmen. Nehmen Sie es in allen Einzelheiten auseinander. Stattdessen haben Sie den gesamten Code dargelegt. :)

Ich werde mich nicht in einem Gebüsch verstecken. >> Ich zitiere:

>>Nehmen wir einen Teil Ihres Codes, der nicht korrekt funktioniert, Zeile für Zeile auseinander...

>> sollen wir?

Hier sind meine Worte. Anstelle eines Stücks, das nicht funktioniert, haben Sie einen Haufen unverständliches Zeug herausgebracht - eine Reihe von Funktionen. Das ist es, was ich nicht mag.

 

Um einen Fehler zu finden, müssen Sie im Allgemeinen einige Teile des Codes ausblenden. Der Code besteht beispielsweise aus den folgenden Blöcken:

- Blockprüfung für Handelssignale

- Sperren von Eröffnungs-/Schluss-/Stornoaufträgen

- Blockierung der Aufrechterhaltung offener Positionen.

Wir blockieren die letzten beiden Blöcke mit dem mehrzeiligen Kommentar /**/, führen den EA aus und überprüfen mit print oder alert die Werte der Schlüsselvariablen - nur um sicherzustellen, dass dieser Block korrekt funktioniert. Wenn wir auf einen Fehler stoßen, beheben Sie ihn. Entriegeln Sie dann den nächsten Codeblock und wiederholen Sie den Vorgang. Und so weiter, bis der gesamte Code debugged ist. Der andere Weg wäre mühsamer.

 
drknn >>:

Вообще, чтоб найти ошибку, нужно заблокировать некоторые участки кода. Например, код состоит из следующих блоков:

- Блок проверки наличия торгового сигнала

- Блок открытия/закрытия/переворота ордеров

- Блок сопровождения открытых позиций.

Блокируем при помощи многострочного комментария /**/ два последних блока, запускаем советника и с помощью принта или алерта снимаем значения ключевых переменных - просто убеждаемся, что этот блок работает корректно. Если натыкаемся на ошибку, то исправляем её. Затем снимаем блокировку со следующего блока кода и повторяем процедуру. И так далее до тех пор, пока весь код ни окажется отлажен. Другой путь будет более утомителен.

Ja, danke, das ist mir schon bekannt... Mir fehlt es ein wenig an Wissen. Und ich habe den gesamten Code gepostet, weil ich nicht weiß, welcher Teil davon nicht funktioniert. Es muss nicht unbedingt der ursprünglich eingestellte Text sein. Vielen Dank für Ihre Teilnahme... :)
 
Könnten Sie mir bitte sagen, wie ich einen Indikator in einen Expert Advisor einfügen kann, um Daten aus dem CF Н4 zu übernehmen?
#property copyright "Krokus"
#property link      ""
//----
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
//----
extern int       N=20; // период канала 
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int limit;
   double upPrice,downPrice;
//---- 
   if (counted_bars==0) limit=Bars-N;
   if (counted_bars>=0) limit=Bars-counted_bars;
   limit--;
   for(int i=limit;i>=0;i--)
     {
      upPrice=High[iHighest(Symbol(),0,MODE_HIGH,N,i)];//максимум за N баров 
      downPrice=Low[iLowest(Symbol(),0,MODE_LOW,N,i)]; //минимум за N баров 
      ExtMapBuffer1[i]=(upPrice-downPrice)/Point;

     }
//---- 
   return(0);
  }
//+------------------------------------------------------------------+
 
in den Code des Prüfers, nicht in den Aufruf
 
Andrei01 >>:
Скажите, должны ли рисоваться графические объекты советником в тестере не в ценовом окне, а в отдельном? Почему-то это не работает при замене нуля на единицу при создании объекта.

Erstellen Sie einen leeren iCustom-Indikator mit einem separaten Fenster und rufen Sie ihn aus dem EA auf,

Wenn Sie kein Fenster haben, dann geben Sie einen Befehl zum Zeichnen, und es gibt keine Notwendigkeit, es zu tun.

Das Einzige, worauf Sie achten müssen, ist die Skala,

Am einfachsten ist es, zwei Puffer auf die Hintergrundfarbe zu setzen,

Wenn Sie den Maximalwert in einem Fenster und den Minimalwert im anderen Fenster einstellen, ist das praktisch, und Sie können es über externe Parameter des Indikators anpassen.

 
sllawa3 >>:
подскажите пожалуйста как вписать индюк в эксперт чтоб снимал данные с тф н4 ???
for(int i=limit;i>=0;i--)
     {
      int ii=iBarShift(Symbol(), 240, i);//Symbol() или NULL

      upPrice=iHigh( NULL, 240,  iHighest(NULL, 240 ,MODE_HIGH,N, ii) );//максимум за N баров 
      downPrice=iLow( NULL, 240,  iLowest(NULL, 240 ,MODE_LOW, N, ii) ); //минимум за N баров 

      ExtMapBuffer1[i]=(upPrice-downPrice)/Point;

     }
um die rechte TF (H4) unabhängig vom Chart zu berechnen, etwa wie folgt
 
das wird nicht funktionieren... Der Grenzwert ist nicht vorgeschrieben und wie kann man ihn vorschreiben?
int    counted_bars=IndicatorCounted();
тоже в эксперте не потянет
 
BARBARA!!! Offene Positionen werden jeweils aufgesucht, während sie auf den TP und SL "anderer Leute" schließen... Folglich ist es ein einziges Durcheinander... Wie kann man gewinnen?
Grund der Beschwerde: