Wie ich meinen Berater durch Versuch und Irrtum zusammenstelle - Seite 33

 

#Eigenschaft Version "1.07"

Die Farbe der Schaltflächen wurde geändert.

Alpari MT5

Ich verwende keine Schaltflächen - nur als Informationstafel

Dateien:
 
Aleksandr Klapatyuk:

#Eigenschaft Version "1.07"

Die Farbe der Schaltflächen wurde geändert.

Schaltflächen werden nicht verwendet - nur als Informationsleiste

und eine andere Farbe

Alpari MT5.png

Dateien:
 

sagen Sie mir, wer Autor dieses Codes -(oder ursprünglich habe ich einen anderen Code aus dem Link heruntergeladen Sie gab mirSpeed-v1.mq548 kb)

denn es ist so

//+------------------------------------------------------------------+
//| AVGiS.mq5 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"

Ist er es?

SEM

Ich habe es verstanden - wenn die Positionen in den Gewinn gehen, werden durch Drücken des Knopfes weitere Positionen in Richtung der

EURUSDH2 USDCHFH2.png

nein, es stellt sich heraus, dass wenn die horizontale Linie einen Verkauf auslöst, die Kauftaste eine Verkaufstaste auslöst und die Verkaufstaste nicht ----- auslöst.

Ich werde experimentieren müssen, um zu sehen, was am besten ist, aber eine Umkehrung würde wahrscheinlich helfen.

 

#Eigenschaft Version "1.08"

eine Schaltfläche für die Umkehrung hinzugefügt.

und in den Einstellungen den Speicherort geändert

Tastenbelegung

input string   t9="------ Button: AVGiS -----";         // AVGiS
input bool     ObjectLineX             = false;         // Button: Horizontal Line(true) || Buy/Sell(false)
input bool     TickRevers              = false;         // Button: Revers
input int      TrailingStop_STOP_LEVEL = 350;           // Trailing Stop LEVEL
input ENUM_TIMEFRAMES _period          = PERIOD_CURRENT;// period
input int      limit_total_symbol      = 190;           // limit_total_symbol
input int      limit_total             = 190;           // limit_total
//---

Beim Eröffnen einer Position wird der Stop-Loss sofort gesetzt - aber auch das Schleppnetz (es ist eine gelbe horizontale Linie), um es zu deaktivieren, setzen Sie einfach 0

input string   t2="------ Obj:Trailing Line     --- ";  // Trailing Obj:Line
input double   InpStopLoss             = 55;            // Obj: Stop Loss, in pips (1.00045-1.00055=1 pips) ------------------что бы отключить, ставим 0 !!!!!!
input ushort   InpObjTrailingStop      = 27;            // Obj: Trailing Stop (distance from price to object, in pips)
input ushort   InpObjTrailingStep      = 9;             // Obj: Trailing Step, in pips (1.00045-1.00055=1 pips)

aber der Stop-Loss wird nicht an der gleichen Position sein, sondern wird durch denTrailing-Input nach oben gezogen ushort InpObjTrailingStop = 27;// Obj: Trailing Stop (Abstand vom Preis zum Objekt, in Pips)

----------------------------------------------------------------

Ich verstehe nicht, wie diese Tasten funktionieren.

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
Dateien:
2.mq5  17 kb
 

#Eigenschaft Version "1.09"

Eine weitere Schaltfläche hinzugefügt - löscht alle offenen Positionen für alle Paare.

Löscht den Expert Advisor und ändert die Diagrammvorlage

Alpari MT5XXX

Dateien:
2.mq5  17 kb
 

#Eigenschaft Version "1.10"

hinzugefügt, Schaltflächen ausblenden.

Ich habe es hier vermasselt - in der Demo funktioniert es, aber in der Realität kam der Fehler 2019.11.05 15:51:33.103 AVGiS intelligence (GBPUSD,H1) array out of range in 'AVGiS intelligence.mq5' (176,34)

   //+------------------------------------------------------------------+
   //| Calculate optimal lot size                                       |
   //+------------------------------------------------------------------+
   double            TradeSizeOptimized(void)
     {
      double price=0.0;
      double margin=0.0;
      string arr[];
      int resize = 0, syTotal = SymbolsTotal(true);
      for(int i = 0; i < syTotal; i++)
        {
         string name = SymbolName(i, true);
         if(SymbolInfoInteger(name, SYMBOL_VISIBLE))
           {
            resize = ArrayResize(arr, i+1);
            arr[i] = name;
           }
         //--- select lot size

         if(!SymbolInfoDouble(arr[i],SYMBOL_ASK,price))
            return(0.0);
         if(!OrderCalcMargin(ORDER_TYPE_BUY,arr[i],1.0,price,margin))
            return(0.0);
         if(margin<=0.0)
            return(0.0);
        }
      double lot=NormalizeDouble(AccountInfoDouble(ACCOUNT_MARGIN_FREE)*MaximumRisk/margin,2);
      //--- calculate number of losses orders without a break
      if(DecreaseFactor>0)
        {
         //--- select history for access
         HistorySelect(0,TimeCurrent());
         //---
         int    orders=HistoryDealsTotal();  // total history deals
         int    losses=0;                    // number of losses orders without a break

         for(int y=orders-1; y>=0; y--)
           {
            ulong ticket=HistoryDealGetTicket(y);
            if(ticket==0)
              {
               Print("HistoryDealGetTicket failed, no trade history");
               break;
              }
            for(int i = 0; i < syTotal; i++)
              {
               string name = SymbolName(i, true);
               if(SymbolInfoInteger(name, SYMBOL_VISIBLE))
                 {
                  resize = ArrayResize(arr, i+1);
                  arr[i] = name;
                 }
               //--- check symbol
               if(HistoryDealGetString(ticket,DEAL_SYMBOL)!=arr[i])
                  continue;
               //--- check Expert Magic number
               if(HistoryDealGetInteger(ticket,DEAL_MAGIC)!=Magic_Number)
                  continue;
               //--- check profit
               double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
               if(profit>0.0)
                  break;
               if(profit<0.0)
                  losses++;
              }
           }
         //---
         if(losses>1)
            lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
        }
      for(int i = 0; i < syTotal; i++)
        {
         string name = SymbolName(i, true);
         if(SymbolInfoInteger(name, SYMBOL_VISIBLE))
           {
            resize = ArrayResize(arr, i+1);
            arr[i] = name;
           }
         //--- normalize and check limits
         double stepvol=SymbolInfoDouble(arr[i],SYMBOL_VOLUME_STEP);
         lot=stepvol*NormalizeDouble(lot/stepvol,0);
         double minvol=SymbolInfoDouble(arr[i],SYMBOL_VOLUME_MIN);
         if(lot<minvol)
            lot=minvol;
         double maxvol=SymbolInfoDouble(arr[i],SYMBOL_VOLUME_MAX);
         if(lot>maxvol)
            lot=maxvol;
        }
      //--- return trading volume
      return(lot);
     }
   //+------------------------------------------------------------------+
Dateien:
 

Hier ist ein funktionierender Experte

Dateien:
 

Dem vorherigen Experten wurden zwei Methoden für die Horizontale Linie hinzugefügt.

1 Möglichkeit: Linie 1 öffnet Linie 4 in einer bestimmten Entfernung, Linie 2 öffnet Linie 3in einer bestimmten Entfernung.

input string   t3="------ Obj:Name 1-2-3-4 ------";     // Имя Объекта
input string   InpObjUpNameZ           = "TOP 1";       // Obj: TOP (Name Obj) ВВЕРХУ 1
input string   InpObjDownNameZ         = "LOWER 2";     // Obj: LOWER (Name Obj) ВНИЗУ 2
input int      Step                    = 5;             // Obj: Шаг сетки, пунктов(0 = false)
input string   InpObjDownName0         = "TOP 3";       // Obj: TOP (Name Obj) ВВЕРХУ 3
input ENUM_TRADE_COMMAND InpTradeCommand=open_sell;     // Obj:  command:
input string   InpObjUpName0           = "LOWER 4";     // Obj: LOWER (Name Obj) ВНИЗУ 4
input ENUM_TRADE_COMMAND InpTradeCommand0=open_buy;     // Obj:  command:

2. Möglichkeit: Linie 7 öffnet eine Linie 10 in einem bestimmten Abstand, die sich hinter dem Kurs bewegt, und wenn der Kurs sie berührt, wird ein Befehl ausgelöst. Linie 8 öffnet eine Linie 9 in einem bestimmten Abstand, - dieselbe Aktion wie für 7 und 10

input string   t5="- 2_Obj:Trailing Line 7-8-9-10 --- ";// Trailing Obj:Line
input string   InpObjUpNameZx          = "TOP 7";       // Obj: TOP (Name Obj) ВВЕРХУ 7
input string   InpObjDownNameZx        = "LOWER 8";     // Obj: LOWER (Name Obj) ВНИЗУ 8
input int      StepZx                  = 5;             // Obj: Шаг сетки, пунктов(0 = false)
input string   InpObjUpNameX           = "TOP 9";       // Obj: TOP (Horizontal Line) ВВЕРХУ 9
input ENUM_TRADE_COMMAND InpTradeCommandX=open_sell;    // Obj:  command:
input string   InpObjDownNameX         = "LOWER 10";    // Obj: LOWER (Horizontal Line) ВНИЗУ 10
input ENUM_TRADE_COMMAND InpTradeCommand0X=open_buy;    // Obj:  command:
input ushort   InpObjTrailingStopX     = 5;             // Obj: Trailing Stop (distance from price to object, in pips)
input ushort   InpObjTrailingStepX     = 5;             // Obj: Trailing Step, in pips (1.00045-1.00055=1 pips)
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
Dateien:
 
Aleksandr Klapatyuk:

Dem vorherigen Experten wurden zwei Methoden für die Horizontale Linie hinzugefügt.

1 Möglichkeit: Linie 1 öffnet Linie 4 in einer bestimmten Entfernung, Linie 2 öffnet Linie 3 in einer bestimmten Entfernung.

2 Möglichkeiten: Linie 7 öffnet eine Linie 10 in einem bestimmten Abstand , die sich hinter dem Kurs bewegt, und wenn der Kurs sie berührt, wird ein Befehl ausgelöst. Linie 8 öffnet eine Linie 9 in einem bestimmten Abstand, - dieselbe Aktion wie bei 7 und 10.

ausprobiert, wie es funktioniert

EURJPYM301.png

EURJPYM302

EURJPYM303

die Sie in den Einstellungen in dieser Zeile hätten ändern können - hätte einen Verkauf eröffnet

Dateien:
 
Aleksandr Klapatyuk:

Dem vorherigen Experten wurden zwei Methoden für die Horizontale Linie hinzugefügt.

1 Möglichkeit: Linie 1 öffnet Linie 4 in einer bestimmten Entfernung, Linie 2 öffnet Linie 3 in einer bestimmten Entfernung.

Zweite Möglichkeit: Linie 7 öffnet eine Linie 10 in einem bestimmten Abstand, die sich hinter dem Kurs bewegt, und wenn der Kurs sie berührt, wird ein Befehl ausgelöst. Linie 8 öffnet eine Linie 9 in einem bestimmten Abstand, - dieselbe Aktion wie bei 7 und 10.

Bei der ersten Möglichkeit öffnen sich die Linien 4 und 3 in einem bestimmten Abstand bis ins Unendliche.

Dateien:
Grund der Beschwerde: