So ein Ding habe ich auch mal gemacht ... - Seite 14

 

Privaval ist gesperrt und schweigt irgendwie, also fange ich mit einer Nachricht für ihn an: Sergey, wenn du das hier liest, lass mich doch mal wissen, ob du meine Antwort auf deine E-Mail bekommen hast.


In der Zwischenzeit habe ich ein Skript erstellt, das die Ebenen nach einer anderen Idee markiert - und diese Ebenen sehen großartig aus. Leider ist es ein bisschen schwer, um gute Statistiken zu sammeln. Aber ich habe den Verdacht, dass fast jedes Levelsystem auf einem Preisdiagramm gut aussehen kann :)


Außerdem habe ich mir die Zeit genommen, einen Strategy Tester Expert Advisor zu schreiben, der den oben beschriebenen Algorithmus verwendet. Ich habe es jedoch noch nicht getestet, weil ich es gerade erst fertiggestellt habe und ich keine Expert Advisors mag. Aber es scheint zu funktionieren. Im Anhang finden Sie den vollständigen Code zur Veranschaulichung.

int start() {
  if (Start) {
    Start = false;
    HalfPoint = 0.5*Point;
    DLvl = 1000*Point;
    RecDLvl = 1.0/DLvl;
    dStopLevel = StopLevel*Point;
  }

// Блок сопровождения ордеров
  double Price;
  bool IsBuyStop = false;
  bool IsSellStop = false;
  for(int ord=OrdersTotal();ord>=0;ord--) {
    if(OrderSelect(ord,SELECT_BY_POS,MODE_TRADES)==false) continue;
    switch(OrderType()) {
      case OP_BUY: 
        if (TimeCurrent()-OrderOpenTime() > LT) OrderClose(OrderTicket(),OrderLots(),Bid,5,Blue);
        break;
      case OP_SELL: 
        if (TimeCurrent()-OrderOpenTime() > LT) OrderClose(OrderTicket(),OrderLots(),Ask,5,Yellow);
        break;
      case OP_BUYSTOP: 
        IsBuyStop = true;
        Price = GetBuyStopLevel(dStopLevel);
        if (OrderOpenPrice()-Price > HalfPoint) OrderModify(OrderTicket(),NormalizeDouble(Price,Digits),0,0,0,Blue);
        break;
      case OP_SELLSTOP: 
        IsSellStop = true;
        Price = GetSellStopLevel(dStopLevel);
        if (Price-OrderOpenPrice() > HalfPoint) OrderModify(OrderTicket(),NormalizeDouble(Price,Digits),0,0,0,Yellow);
        break;
    }  //  switch(OrderType())
  }  //  for(int ord=OrdersTotal();ord>=0;ord--)
  
//  Блок установки орлеров  
  static int Mnt;
  static int PreMnt;
  Mnt = TimeMinute(TimeCurrent());
  if (Mnt != PreMnt) {
    PreMnt = Mnt;
    if (!IsBuyStop) OrderSend(Symbol(),OP_BUYSTOP,Lots(),NormalizeDouble(GetBuyStopLevel(dStopLevel),Digits),5,0,0,NULL,0,0,Blue);
    if (!IsSellStop) OrderSend(Symbol(),OP_SELLSTOP,Lots(),NormalizeDouble(GetSellStopLevel(dStopLevel),Digits),5,0,0,NULL,0,0,Yellow);
  }
  return(0);
}

Ich kann nicht ohne Prival weitermachen, er wird sagen müssen, ob der Test von ihm ist oder nicht.


P.S. Expert Advisor nur für fünf Ziffern.

Dateien:
 

Wenn wir den Expert Advisor ändern und uns auf die Umkehrung des Niveaus konzentrieren, sollte bei der ersten Annäherung an das Niveau kein Stopp-Auftrag erteilt werden. Grob gesagt, sollte der vorherige EA auf jedem Niveau die gleiche Anzahl von Käufen und Verkäufen auslösen, während dieser EA einen weiteren Kauf auslösen sollte, wenn er sich von oben nähert, und einen weiteren Verkauf, wenn er sich von oben nähert, und andersherum.

Die Steigung der Pflaume für die 00-Ebene und die 20 ppt (fünfstellige) stopwave hat eine etwas geringere Spanne pro Handel, es ist Eurodollar vom Sommer 2004

Die Abhängigkeit des Gleichgewichts von der Höhe (d. h. die Optimierung durch den Parameter Delta in Schritten von 50 Punkten (fünf Ziffern)) steht im Einklang mit den zuvor erhaltenen Daten zu den Schnittpunkten der einminütigen Balken


Logischerweise ist es jetzt an der Zeit, über viele Dinge zu sprechen; über Slips, über Schiffe, über Robben, über Kohlköpfe und Könige und über andere Zusammenhänge und Filter. :)

 

Versuchen Sie, Stopps einzuführen und Ausbruchs- und Abprallstrategien nach Zeit/Volatilität zu trennen.

 

Die Zahl der möglichen Varianten ist sehr groß, weshalb es sinnvoll ist, sie gemeinsam zu untersuchen. Es ist klar, dass es notwendig ist, den Code zu variieren, das heißt, ohne einige anfängliche Kenntnisse in mql wird schwierig sein, zu tun. Das Wichtigste ist, dass die Ergebnisse und die Art und Weise, wie sie erzielt werden, nur dann von Nutzen sind, wenn sie veröffentlicht werden. Nun, okay, der Gral mag verboten sein :), aber die Leute sollten auf jeden Fall die negativen Ergebnisse kennen.


Hält an, um einzugeben - das ist eine ganz normale Einfügung in den Code. Aber meiner Meinung nach, wenn es sich nicht um eine entfernte "Versicherung" stoppt dann wird es nicht geben, aber eine andere Art der Anpassung.


Machen Sie eine Strategie Breakout, als ob es einfach wäre - nur deaktivieren, um die Einstellung, wenn es eine Bestellung der gleichen Richtung (nicht nur schwebende) und setzen eine ausreichend große Stop (vergleichbar mit dem Abstand zwischen den Ebenen). Aber aus diesem einfachen und schönen Schema einen richtigen Rebound zu machen, war für mich nicht so einfach. Der Gedanke ist, dass wir den Zeitpunkt des Bahnübergangs abwarten und erst dann einen Auftrag erteilen sollten, wenn dieser erfolgt ist. Der Clou ist, dass diese Tatsache für die nächstgelegene Stufe nicht auf herkömmliche Weise registriert werden kann - schließlich prallt die nächstgelegene Stufe in dem Moment ab, in dem sie überschritten wird. Er kann bis zu drei Ticks dauern, wenn der Durchschnittswert genau auf der Höhe des Niveaus liegt. Deshalb wurden die Ergebnisse des vorigen Beitrags mit dem erheblich veränderten Expert Advisor erzielt. Ich habe ihn nicht hier gepostet, weil er für Codobase vorgeschlagen wurde (wie sonst könnte man das Niveau des echten Interesses an diesem Thema verstehen :)).


Die Zeitfilter gelten als einer der wirksamsten und sind in der Regel recht einfach zu implementieren; es wäre interessant, die Ergebnisse zu sehen. Sie können mir gerne eine Nachricht schicken :)


Natürlich sind auch Volatilitätsfilter von großem Interesse, aber es gibt noch mehr Konstruktionsvarianten, für die wir spezifische Varianten und Ergebnisse benötigen.

 
Hier können Sie einen Experten hinzuziehen.
 

In LevelsTrade_1.mq4 wurde eine Ungenauigkeit gefunden, die zu einer Asymmetrie bei einem Kauf/Verkauf führt. Hier müssen wir eine Zeile in dieser Funktion ersetzen:

double GetSellStopLevel(double StopLvl) {
  int ILvl = (Bid+HalfPoint)*RecDLvl;
  double DownLvl = DLvl*ILvl;
//  if (DownLvl > Bid-StopLvl-HalfPoint) DownLvl -= DLvl ;
  if (Bid-StopLvl < DownLvl-HalfPoint) DownLvl -= DLvl ;
  return (DownLvl);
}

Hier ist die falsche Zeile auskommentiert. Die richtige Version ist dem Beitrag beigefügt.

Dateien:
 
Balbesik06:



Aufrichtig!

Ich habe Sie gesehen und ich spreche Sie an.

Off-Topic-Frage.

Möchten Sie zu Zig-Zag zurückkehren?

Ich habe Ihnen "privat" geschrieben, Sie haben nicht geantwortet.

Und auf der EA (argumentieren oder nicht), ich habe Statistiken (auf meinem) 7(+) - 1(-), aber die EA eines anderen Autors.

Und es gibt eine Menge Fragen.

Wenn Sie es überprüfen (privat) und die Statistik bestätigt wird, dann korrigieren Sie Zig-Zag für mich nach Ihrem Schema.

Und Algorithmus (für Expert Advisor) haben Sie das Recht, später zu buchen.

Gefällt Ihnen das?

Mit freundlichen Grüßen.

 
Balbesik06:

...

Ich habe Ihnen in der Rubrik "Privat" geschrieben, und Sie haben mir nicht geantwortet.

Ich habe unter vier Augen nichts gehört, versuchen Sie es noch einmal. Als letzten Ausweg können Sie mir eine E-Mail schicken. In meinem Profil steht die Adresse meiner Seite, dort ist meine E-Mail leicht zu finden.
 
Balbesik06:

"... Zumindest können Sie eine E-Mail schreiben"...

Ja, versuchen Sie es - über das Thema hinaus.

Der Punkt ist einfach - auf ONIX demonstriert alle "fliegen weg" außer Ihre.

Ich sehe keinen Sinn in einem Sevetnik, wenn er Anführungszeichen "NICHT HÄLT".

Herzliche Grüße.


P.S. Versuchen Sie (wenn es nicht zu schwierig ist) zu schreiben - Hallo.
 

Hmm, ich habe den Onyx-Briefkasten überprüft (und ich schaue dort nur selten nach), er ist leer. Und die Probleme mit der Post sind ziemlich mysteriös.

Eugene, lass es mich so sagen: Schau in deinem persönlichen Konto in diesem Forum nach, dort sollte seit vorgestern eine Nachricht von mir stehen. Beantworten Sie sie einfach, beschreiben Sie das Problem oder geben Sie einen Link zu dessen Beschreibung an, schreiben Sie, was genau Sie brauchen.

Soweit ich weiß, gibt es ein Problem mit hängenden Scheitelpunkten verschiedener Zickzacklinien. Bei mir gibt es dieses Problem nicht. Ich erinnere mich, als ich schrieb, dass das Zickzack-Problem (höchstwahrscheinlich war es CZZ) mit hängenden Scheitelpunkten fast universell war. Ich habe versucht, die Ursache zu verstehen, und ich glaube, ich habe es geschafft. Aber seither ist viel Wasser geflossen, und ich glaube, dass jetzt auch viele Zickzacklinien nicht mehr gefrieren.

In jedem Fall ist nicht klar, was genau Sie brauchen? Damit ich alle Zickzacklinien, die in der ZUP enthalten sind, neu machen kann?