Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 146

 
Das weiß jeder. IN MT4. Es gibt einen Strategietester. Es ist möglich, die Aufzählung der Parameter durch Optimierung zu erweitern.

Die Frage lautet wie folgt.

Können wir diese Optimierung, die Suche nach den Parametern, in den Expert Advisor verschieben? Wenn der Expert Advisor von Zeit zu Zeit Parameter optimiert, wählt er diejenigen aus, die profitabel sind und arbeitet mit ihnen? Angenommen, der Expert Advisor optimiert alle 7 Tage für 7 Tage. Und ausgewählte Parameter zur Rentabilität. Und die Eulen, die schon 7 Tage weiterarbeiten?

Ich möchte die Antwort hören, von jemandem, der das versteht. Sagen wir, der Arbeitsaufwand. Der Schweregrad der Arbeit. et cetera. Worum es geht.

 
Aleksey Radzisheuski:
Jeder weiß das. IN MT4. Es gibt einen Strategietester. Es ist möglich, die Aufzählung der Parameter durch Optimierung zu erweitern.
Die Frage lautet wie folgt.
Können wir diese Optimierung, die Suche nach den Parametern, in den Expert Advisor verschieben? Wenn der Expert Advisor von Zeit zu Zeit Parameter optimiert, wählt er diejenigen aus, die profitabel sind und arbeitet mit ihnen? Angenommen, der Expert Advisor optimiert alle 7 Tage für 7 Tage. Und ausgewählte Parameter zur Rentabilität. Und die Eulen, die schon 7 Tage weiterarbeiten?

Ich möchte die Antwort hören, von jemandem, der das versteht. Sagen wir, der Arbeitsaufwand. Der Schweregrad der Arbeit. et cetera. Worum es geht.

Hier ist der Artikel https://www.mql5.com/ru/articles/1467...

Автоматическая оптимизация торгового робота в процессе реальной торговли
Автоматическая оптимизация торгового робота в процессе реальной торговли
  • 2007.04.16
  • Igor Malcev
  • www.mql5.com
В статье описана и представлена библиотека функций, позволяющая проводить оптимизацию входных параметров советника, запуская оптимизацию непосредственно из советника.
 
Alekseu Fedotov:


Haben Sieeine Trendlinie?

Und visuell geht über (unter) 0 bar, nein, überprüfen Sie das Feld in Eigenschaften, Strahl.


Die Linie ist eine Trendlinie. Die Eigenschaften wurden in einen Strahl geändert. Es hat nicht geholfen. Im Idealfall möchte ich, dass der Preis unabhängig von der Position des Nullbalkens (oben, unten) angezeigt wird.

Auch dieser Code funktioniert nicht.

int start() {

double pr=ObjectGetValueByShift("line",0);

Wenn (Gebot==pr){

Alert (pr);}

return(0);}

 
Valerius:

Guten Tag zusammen!

Frage: Wenn ich auf Insta versuche, eine Bestellung abzuschicken, sagt es, dass die Stopps falsch sind.

Hier ist die Zeile selbst:

OrderSend(Symbol(),OP_BUYSTOP,Lots,HiP,3,0,0,NULL,111,0,clrBlue);

Stop Loss und Take Points haben 0. Wenn ich eine Zahl in Stop Loss einstelle, ist alles normal.

Ich brauche keinen Stop Loss. Was sollte ich tun?

Dies ist kein Problem des StopLoss, sondern des Eröffnungskurses eines schwebenden Auftrags. Wenn der Preis des schwebenden Auftrags falsch ist, tritt der Fehler 130 auf.
 
Kot:


Die Linie ist im Trend. Die Eigenschaften wurden in einen Strahl geändert. Es hat nicht geholfen. Idealerweise sollte der Preis unabhängig von der Position des Nullbalkens (oben, unten) angezeigt werden.

Auch dieser Code funktioniert nicht.

int start() {

double pr=ObjectGetValueByShift("line",0);

Wenn (Gebot==pr){

Alert (pr);}

return(0);}


Haben Sie den Zeilennamen richtig eingegeben?

Probieren Sie dieses Skript aus, und zeigen Sie, was es in den Protokollen sagt.

void OnStart()
  {
     double pr;
     int obj_total=ObjectsTotal(); 
     string name;
     int i; 
     
   for(i=0;i<obj_total;i++) 
     { 
      name=ObjectName(i); 
      if(ObjectType(name)!=OBJ_TREND) continue; 
      PrintFormat("Объект %d:     Имя объекта - %s",i,name); 
      pr=ObjectGetValueByShift(name,0);
      PrintFormat("Объект %d:     Цена - %.5f",i,pr);
      
     } 
  }
 

Wir haben eine Aufgabe. Die Daten der Indikatoren für die höheren Zeitrahmen werden in den iCustom Expert Advisor übernommen. Nennen wir ihre Unterstützungs- und Widerstandslinien.

Angenommen, die drei Zahlen x1 x2 x3. Bitte helfen Sie mir, einen Code zu schreiben, der Linien mit diesen drei Zahlen direkt in EA zeichnet.

Ich habe versucht, ObjCreate (ich möchte, dass sie auf einem Diagramm als Punkte auf jedem Tick gezeichnet werden, aber nichts funktioniert)

Zur Verdeutlichung: 3 getrennte Zeilen. Bitte beziehen Sie sich nicht auf das mql4-Tutorial. Teilen Sie einfach den funktionierenden Code

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • 2011.03.28
  • MetaQuotes Software Corp.
  • www.mql5.com
В чем различия между тремя режимами тестирования в MetaTrader 5 и на что обратить внимание? Как происходит тестирование эксперта, торгующего одновременно на нескольких инструментах? Когда и как вычисляются значения индикаторов при тестировании и как обрабатываются события? Как синхронизировать бары с разных инструментов при тестировании в режиме "Только цены открытия"? Статья призвана дать ответы на эти и многие другие вопросы.
 
Artyom Trishkin:

In diesem Thread möchte ich damit beginnen, denjenigen zu helfen, die wirklich das Programmieren in der neuen MQL4 verstehen und lernen wollen und einfach zu MQL5 wechseln wollen - die Sprachen sind sehr ähnlich.

Dies ist ein guter Ort, um Aufgaben, Algorithmen zu ihrer Lösung und andere Fragen zur MT-Programmierung zu diskutieren.

Ich hoffe, dass sich andere erfahrene Teilnehmer unseres Forums an der Diskussion zu diesem Thema beteiligen werden und der Zweig für alle interessant sein wird.


Hier ist die Aufgabe. Zum iCustom Expert Advisor werden wir die Daten der Indikatoren aufrufen, die auf den höheren Timeframes stehen. Nennen wir ihre Unterstützungs- und Widerstandslinien.

Angenommen, die drei Zahlen x1 x2 x3. Bitte helfen Sie mir, einen Code zu schreiben, der Linien mit diesen drei Zahlen direkt in EA zeichnet.

Ich habe versucht, ObjCreate (ich möchte, dass sie auf einem Diagramm als Punkte aufjedem Tick gezeichnet werden, aber nichts funktioniert)

Zur Verdeutlichung: 3 getrennte Zeilen. Ich würde nicht auf mql4 primer verlinken. Teilen Sie einfach den funktionierenden Code

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • 2011.03.28
  • MetaQuotes Software Corp.
  • www.mql5.com
В чем различия между тремя режимами тестирования в MetaTrader 5 и на что обратить внимание? Как происходит тестирование эксперта, торгующего одновременно на нескольких инструментах? Когда и как вычисляются значения индикаторов при тестировании и как обрабатываются события? Как синхронизировать бары с разных инструментов при тестировании в режиме "Только цены открытия"? Статья призвана дать ответы на эти и многие другие вопросы.
 
BoBoforex:

Wir haben eine Aufgabe. Die Daten der Indikatoren für die höheren Zeitrahmen werden in den iCustom Expert Advisor übernommen. Nennen wir ihre Unterstützungs- und Widerstandslinien.

Angenommen, die drei Zahlen x1 x2 x3. Bitte helfen Sie mir, einen Code zu schreiben, der Linien mit diesen drei Zahlen direkt in EA zeichnet.

Ich habe versucht, ObjCreate (ich möchte, dass sie auf einem Diagramm als Punkte aufjedem Tick gezeichnet werden, aber nichts funktioniert)

Zur Verdeutlichung: 3 getrennte Zeilen. Bitte beziehen Sie sich nicht auf das mql4-Tutorial. Teilen Sie einfach den Code, der funktioniert.


Die Funktion

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.03.2008                                                     |
//|  Описание : Установка объекта OBJ_HLINE горизонтальная линия               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    cl - цвет линии                                                         |
//|    nm - наименование               ("" - время открытия текущего бара)     |
//|    p1 - ценовой уровень            (0  - Bid)                              |
//|    st - стиль линии                (0  - простая линия)                    |
//|    wd - ширина линии               (1  - по умолчанию)                     |
//+----------------------------------------------------------------------------+
void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (p1<=0) p1=Bid;
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_COLOR , cl);
  ObjectSet(nm, OBJPROP_STYLE , st);
  ObjectSet(nm, OBJPROP_WIDTH , wd);
}

Platzieren Sie es außerhalb der Funktion void OnTick()

Und dies ist in void OnTick()

  SetHLine(clrRed,"x1",x1); 
  SetHLine(clrRed,"x2",x2);
  SetHLine(clrRed,"x3",x3);  
 

Bitte helfen Sie mir - ich kann nicht verstehen, warum ich bei der Berechnung des VesMass-Arrays bei i>0-Werten Null erhalte?

   int NumberTotal=3;
   int VesTotal=NumberTotal;//всего веслов в массиве
   double VesMass[];//массив с весами
   ArrayResize(VesMass,VesTotal);



   for(int i=0;i<VesTotal;i++)
     {
      if(i==0)
        {
         VesMass[i]=1;
         Print("VesMass ",i,"=",VesMass[i]);
        }
      if(i>0)
        {
         VesMass[i]=VesMass[i-1]*(4/5);
         Print("VesMass ",i-1,"=",VesMass[i-1]);
         Print("VesMass ",i,"=",VesMass[i]);
        }
     }
 
Alexey Viktorov:
Dies ist nicht das Problem des Stop-Loss, sondern des offenen Preises des schwebenden Auftrags. Wenn der Preis des schwebenden Auftrags nicht korrekt ist, ist der Fehler 130.


Ich habe versucht, den schwebenden Auftrag innerhalb der doppelten Spanne des Kurses zu platzieren. Erst dann verschwindet der Fehler. Ich verstehe nicht, ob das richtig ist?

Ein Beispiel: Die BUYSTOP-Order wird bei 60 Punkten von Bida gesetzt. Der TakeProfit kann auch nicht um den Wert des Spreads verringert werden.

Ich verstehe nicht, warum das so ist. Es funktioniert nicht auf dem echten Konto, sondern im Demo-Modus.

Grund der Beschwerde: