Ich schreibe kostenlos einen Ratgeber - Seite 41

 
Anton Kedo:
das Thema scheint aufgegeben worden zu sein.
Nein, warum... sie lesen es manchmal, es ist nur so, dass Anfragen wie "Ich habe eine coole Idee, wie ein Gral" selten befolgt werden. Insbesondere ohne eine ToR.
 
Guten Tag. Ich habe eine interessante Idee, wie man ilean (martingale) verbessern kann, um ein Abstürzen zu verhindern. Die Essenz ist sehr lang, um sie hier zu beschreiben. Ich werde versuchen, die Essenz der Idee in Skype zu erklären.
 
Evgeniu Semenuta:
Guten Tag. Ich habe eine interessante Idee, wie man den Illan (Martingal) modifizieren kann, um ein Abstürzen zu verhindern. Die Essenz einer sehr langen Beschreibung hier, die versuchen wird, das Wesen der Idee in Skype zu erklären.
Lesen Sie den vorherigen Beitrag!
 

Ja. Lassen Sie mich versuchen, es zu beschreiben. Nehmen wir an, der Preis sinkt, und der Kranke hat bereits mit dem Kauf begonnen. Natürlich fügt er Positionen hinzu, um die Menge zu erhöhen, und so weiter, bis der Preis zurückgeht oder bis das Depot ausverkauft ist. Ich möchte folgende Variante ausprobieren: Wenn der Preis 10 Knie erreicht, platziert die Eule sofort 2 schwebende Aufträge (Gesamt-LOS der zuvor platzierten Aufträge geteilt durch 2) in 15 Punkten.

1 Auftrag setzt nur den Stop-Loss auf das Gewinnniveau der vorherigen 10 Knien

2) Stop-Loss-Order auf dem Gewinnniveau der vorherigen 10 Biegungen, Gewinn 15

Dann gibt es zwei Möglichkeiten: Der Kurs setzt einen Stop-Loss, kommt zurück, schließt das Raster von 10 Biegungen und wir haben keine zwei Verlustaufträge mehr. Oder der Markt sinkt anhaltend, die 2. Order schließt auf dem Gewinn und stellt eine oder zwei weitere negative Orders aus dem Netz von 10 Kurven nach etwa 10 Punkten und schließt eine oder zwei negative. Die zweite schwebende Order zieht einen Stop Loss auf Breakeven und wartet bis zum Ende.

Irgendwie. Es ist schwierig, dies in Worten zu erklären (. Wenn Sie Interesse haben, erkläre ich Ihnen die Idee auf dem Diagramm in Skype im Detail.

 
Evgeniu Semenuta:

Ja. Lassen Sie mich versuchen, es zu beschreiben. Nehmen wir an, der Preis fällt, und der Kranke hat bereits mit dem Kauf begonnen. Natürlich fügt er Positionen hinzu, um die Menge zu erhöhen, und so weiter, bis der Preis zurückgeht oder bis das Depot ausverkauft ist. Ich möchte folgende Variante ausprobieren: Wenn der Preis 10 Knie erreicht, platziert die Eule sofort 2 schwebende Aufträge (Gesamt-LOS der zuvor platzierten Aufträge geteilt durch 2) in 15 Punkten.

1 Order setzt nur den Stop-Loss auf das Gewinnniveau der vorherigen 10 Knien

2) Stop-Loss-Order auf dem Gewinnniveau der vorherigen 10 Biegungen, Gewinn 15

Dann gibt es zwei Möglichkeiten: Der Kurs setzt einen Stop-Loss, kommt zurück, schließt das Raster von 10 Biegungen und wir haben keine zwei Verlustaufträge mehr. Oder der Markt sinkt anhaltend, die 2. Order schließt auf dem Gewinn und stellt eine oder zwei weitere negative Orders aus dem Netz von 10 Kurven nach etwa 10 Punkten und schließt eine oder zwei negative. Die zweite schwebende Order zieht einen Stop Loss auf Breakeven und wartet bis zum Ende.

Irgendwie. Es ist schwierig, dies in Worten zu erklären (. Wenn Sie Interesse haben, erkläre ich Ihnen die Idee auf dem Diagramm in Skype im Detail.

Die übliche Idee, die zur unvermeidlichen Pflaume führt! Details sind nicht mehr interessant!
 

Guten Tag, wird die Option, den ursprünglichen EA zu überarbeiten, in diesem Thread berücksichtigt? Wenn ja, finden Sie hier die Beschreibung:

Ich habe einen EA, der verfeinert werden muss ( er schließt Trades nicht von selbst, wenn der Handel erlaubt ist und zwei Parameter nicht erfüllt sind : Angabe des Schließungsbereichs und Angabe der Größe des Teilschließungsvolumens ) )ToR Beschreibung :

Zeitrahmen: beliebig


Verwendete Symbole:

Bollinger-Bänder: Zeitraum 20

Ausreißer 2

angewendet zum Schließen



ADX: Zeitraum 14

angewendet zum Schließen

den Pegel auf 25 setzen



Kaufsignal: während einer Flaute (wenn der ADX-Wert unter 25 liegt), warten Sie, bis der Kurs am unteren Bollinger Band schließt (der Parameter o definiert den Eröffnungspunkt der Order, der Abstand vom mittleren Bollinger Band zum unteren Bollinger Band ist als 100 % definiert, 0 % ist am unteren Bollinger Band, 10 % ist höher usw.), dann warten Sie auf den Kursanstieg beim Schließen der Bestätigungskerze. Wir eröffnen den Kauf. Stop Loss wird in Pips in den Einstellungen eingestellt. Die Schließung der Order hängt von den Optionen im EA ab, die Parameter der Optionen werden später erklärt. Die Order wird mit dem Parameter n geschlossen, wenn sie das mittlere Band des Bollingers berührt (Parameter n wird in Prozent eingestellt, definiert, welcher Teil des Volumens geschlossen wird, in Lots wird dieser Wert abgerundet, 0% bedeutet, dass nichts geschlossen wird) . Der Stop-Loss wird auf den Eröffnungskurs der Order gesetzt, dann wird die Order mit dem Parameter f vollständig geschlossen (der Abstand zwischen dem mittleren Bollinger-Band und dem oberen Band beträgt 100 Prozent, der als Prozentsatz definierte Parameter f legt den Punkt fest, an dem die Order geschlossen wird, wenn der Kurs ihn erreicht, 0 Prozent ist der Punkt am oberen Bollinger-Band, 10 Prozent ist niedriger, usw.) )/

Verkaufsauftrag: während einer Flaute (wenn der ADX unter 25 liegt), warten Sie, bis der Kurs am oberen Bollinger Band schließt (o gibt den Einstiegspunkt des Auftrags an, der Abstand zwischen dem durchschnittlichen Bollinger Band und dem oberen Band beträgt 100 Prozent, 0 Prozent liegt am oberen Bollinger Band, 10 Prozent liegt darunter usw.), dann warten Sie, bis die Bestätigungskerze schließt und sich in Richtung des niedrigeren Kurses bewegt. Wir eröffnen den Verkauf. Der Stop Loss wird in Pips in den Einstellungen festgelegt. Das Schließen der Order hängt von den Optionen in Ihrem EA ab, die Parameter der Optionen werden später erklärt. (der Parameter n wird in Prozenten angegeben, er definiert, welcher Teil des Volumens geschlossen wird, in Lots wird dieser Wert abgerundet, das bedeutet, dass nichts geschlossen wird), Stop Loss wird auf den Eröffnungskurs gesetzt, außerdem wird die Order mit dem Parameter f vollständig geschlossen. (der Abstand zwischen mittlerem und unterem Bollinger-Band wird als 100 % betrachtet, der Parameter f, der als Prozentsatz definiert ist, legt den Punkt fest, an dem der Auftrag geschlossen wird, wenn der Preis ihn erreicht, 0 % am unteren Bollinger-Band, 10 % darüber usw.)



Optionen:

Stop Losses können in Expert Advisor-Optionen oder gar nicht gesetzt werden. Es gibt zwei Arten von Stop-Losses: den regulären Stop-Loss, der in Pips angegeben wird, und den Stop-Loss, der vom erwarteten Gewinn abhängt, d.h. wenn ein Auftrag vom Preis des Auftrags bis zu den gegenüberliegenden Bollinger Bändern (oberes oder unteres Band) eröffnet wird, wird der Abstand in Pips berechnet. Bei den Optionen wird der Koeffizient S (von 0 bis 1) festgelegt, der mit dem potenziellen Gewinn multipliziert wird. Dieser Wert ist der Stop-Loss, d.h. wenn der Koeffizient 0,5 ist, dann ist der Stop-Loss gleich der Hälfte des potentiellen Gewinns. )

Der Programmierer, der diesen EA geschrieben hat, ist in erster Linie daran interessiert, einen Berater zu schreiben, der auf Bollinger-Linien basiert, und weitere Änderungen sind nicht geplant. In der Anlage sehe ich Statistiken der Strategie auf Geschichte, auf denen Berater basiert und Proben von halb-Woche laufen von Berater auf VPS (ich lief drei Begriffe mit verschiedenen manimanagement). Nachstehend finden Sie den Code:

#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//--- input parameters
input int      BBPeriod=20;
input double   BBdeviation=2.0;
input int      ADX=14;
input double   AdxLevel=25;
input double      SL=2000;
input double      TP=0;
input int      Obuy=5;
input int      Osell=5;
input double   Lot=0.1;
input bool     CloseMiddle=true;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
bool buyOpen=false;
bool sellOpen=false;
double _Obuy;
double _OSell;
int TryShots= 3;
int Slippage=50;                         // Slippage
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
   _Obuy=Obuy/100;
   _OSell=Osell/100;

   if(!IsTradeAllowed())
     {
      string message="You must allow trading!";
      Print(message);
      Comment(message);
      return INIT_FAILED;
     }

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   static datetime prevTime;
   datetime currentTime=iTime(Symbol(),0,0);
   if(prevTime==currentTime)
     {
      return;
     }
   else
     {
      prevTime=currentTime;
     }

   double adx=iADX(NULL,0,ADX,PRICE_CLOSE,0,2);

   if(adx<AdxLevel)
     {
      double bbMain1=iBands(NULL,0,BBPeriod,BBdeviation,0,PRICE_CLOSE,0,2);
      double close=iClose(NULL,0,2);
      if(!buyOpen)
        {
         double bbDown1=iBands(NULL,0,BBPeriod,BBdeviation,0,PRICE_CLOSE,2,2);
         BuyPosition(bbDown1,bbMain1,close);
        }
      else
        {
         double currentClose=iClose(NULL,0,0);
         double currentBB=iBands(NULL,0,BBPeriod,BBdeviation,0,PRICE_CLOSE,0,0);
         if(CloseMiddle && currentClose>currentBB)
           {
            CloseOpenPos(OP_BUY);
            buyOpen=false;
           }
        }

      if(!sellOpen)
        {
         double bbUp1=iBands(NULL,0,BBPeriod,BBdeviation,0,PRICE_CLOSE,1,2);
         SellPosition(bbUp1,bbMain1,close);
        }
      else
        {
         double currentClose=iClose(NULL,0,0);
         double currentBB=iBands(NULL,0,BBPeriod,BBdeviation,0,PRICE_CLOSE,0,0);
         if(CloseMiddle && currentClose<currentBB)
           {
            CloseOpenPos(OP_SELL);
            sellOpen=false;
           }
        }
     }

  }
//+------------------------------------------------------------------+

void BuyPosition(double bbDown,double bbMain,double close)
  {
   double dif=bbMain-bbDown;
   double proc=dif *_Obuy;
   double DownProc=bbDown+proc;

   if(close<DownProc)
     {
      double openCurrent=iOpen(NULL,0,1);
      double closeCurrent=iClose(NULL,0,1);
      if(closeCurrent>openCurrent)
        {

         for(int it=0; it<TryShots; it++)
           {
            ResetLastError();
            RefreshRates();
            double sl,tp;
            if(SL!=0)
               sl=NormalizeDouble(Bid-SL*Point,Digits);
            if(TP!=0)
               tp=NormalizeDouble(Bid+TP*Point,Digits);
            Print(Ask+" sl"+sl+" tp"+tp);
            if(!OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),Slippage,sl,tp))
              {
               if(it>=TryShots) { Print("Failed OP_BUY !"); break; }
               int err=GetLastError();
               if(err==4 || err==6 || err==8 || err==128 || err==137 || err==141 || err==146) Sleep(1000*it);
               else { Print("Failed OP_BUY !"); break; }
              }
            else
              {
               buyOpen=true;
               break;
              }

           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SellPosition(double bbUp,double bbMain,double close)
  {
   double dif=bbUp-bbMain;
   double proc=dif*_OSell;
   double UpProc=bbUp-proc;

   if(close>UpProc)
     {
      double openCurrent=iOpen(NULL,0,1);
      double closeCurrent=iClose(NULL,0,1);
      if(closeCurrent<openCurrent)
        {
         for(int it=0; it<TryShots; it++)
           {
            ResetLastError();
            RefreshRates();
            double sl,tp;
            if(SL!=0)
               sl=NormalizeDouble(Ask+SL*Point,Digits);
            if(TP!=0)
               tp=NormalizeDouble(Ask-TP*Point,Digits);
            Print(Bid+" sl"+sl+" tp"+tp);
            if(!OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),Slippage,sl,tp))
              {
               if(it>=TryShots) { Print("Failed OP_SELL !"); break; }
               int err=GetLastError();
               if(err==4 || err==6 || err==8 || err==128 || err==137 || err==141 || err==146) Sleep(1000*it);
               else { Print("Failed OP_SELL !"); break; }
              }
            else
              {
               sellOpen=true;
               break;
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Close open position                                              |
//+------------------------------------------------------------------+
void CloseOpenPos(int or_tp)
  {
   int i,err,k=OrdersTotal();
//---
   for(i=k-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol())
           {
            if(or_tp==OrderType())
              {
               for(int it=0; it<TryShots; it++)
                 {
                  ResetLastError();
                  RefreshRates();
                  double _price=Ask; if(or_tp==OP_BUY) _price=Bid;
                  //---
                  if(!OrderClose(OrderTicket(),OrderLots(),_price,Slippage))
                    {
                     if(it>=TryShots) { Print("Failed to close the order ",OrderTicket(),"!"); break; }
                     err=GetLastError();
                     if(err==4 || err==6 || err==8 || err==128 || err==137 || err==141 || err==146) Sleep(1000*100);
                     else { Print("Failed to close the order ",OrderTicket(),"!"); break; }
                    }
                  else break;

                 }
              }
           }
        }
     }
  }

//+------------------------------------------------------------------+

Ich füge weitere Screenshots vom Terminal hinzu, die auf dem VPS laufen: Screenshots "1" und "2" Beispiele, wenn der Berater die Geschäftenicht von selbst öffnet

Screenshot "Lock", der Expert Advisor hat die Kaufposition nicht von selbst geschlossen, sondern eine Verkaufsposition eröffnet, weil die Verkaufsbedingungen eingetreten sind.
Screenshot "Bestellung erhalten", in diesem Fall wurde die Bestellung korrekt geöffnet.
Dateien:
Pictures.zip  775 kb
a2ji9v3g8.zip  14 kb
Statement.zip  23 kb
 

Wer ein Skript hat, das alle Aufträge bei Gesamtgewinn abschließt - bitte schicken Sie es uns zu.

Ich würde das zu schätzen wissen.

 

Ich habe lange daran gearbeitet, ich habe lange daran gearbeitet, ich habe lange daran gearbeitet, ich habe lange daran gearbeitet, und ich habe lange daran gearbeitet.

Ich könnte sogar versuchen, selbst eine zu schreiben, wenn ich verstehe, welche Variablen verwendet werden, um "Auge", blaue und rote Markierungen anzuzeigen!

 
baikot:

Ich habe lange daran gearbeitet, ich habe lange daran gearbeitet, ich habe lange daran gearbeitet, ich habe lange daran gearbeitet, und ich habe lange daran gearbeitet.

Ich könnte sogar versuchen, selbst eine zu schreiben, wenn ich verstehe, welche Variablen verwendet werden, um "Augen", blaue und rote Markierungen auf dem Bildschirm anzuzeigen!

Wo ist der Indikator selbst?
 
Victor Nikolaev:
Wo ist der Indikator selbst?
Das müssen Sie aber nicht. Sie werden nur die Dekompilierung finden und in das Badehaus gelangen.