[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 315

 
Wissen Sie, ob der Strategietester eine bestimmte Anzahl von Durchläufen zulässt? Ich habe den Tester laufen lassen, unten links über dem Balken zu Beginn des Tests stand: 0/1280 (25706). Ich habe 25 koz gezählt - das ist die Anzahl aller möglichen Kombinationen. Aber er beendete den Test, als es hieß: 1088/1280 (25706). Er hat also nur 1088 Pässe gemacht? Was bedeuten die ersten beiden Ziffern überhaupt?
Außerdem zählt es irgendwie seltsam... als er ein weiteres Kriterium für 3 Parameter hinzufügte, stiegen die 25 Stück nicht um das Dreifache, sondern ergaben etwas wie 40 koz. Handelt es sich um eine Störung oder liege ich irgendwo falsch?
 
AndrejFX:
Wissen Sie, ob der Strategietester eine bestimmte Anzahl von Durchläufen zulässt? Ich habe den Tester laufen lassen, unten links über dem Balken zu Beginn des Tests stand: 0/1280 (25706). Ich habe 25 koz gezählt - das ist die Anzahl aller möglichen Kombinationen. Aber er beendete den Test, als es hieß: 1088/1280 (25706). Er hat also nur 1088 Pässe gemacht? Was bedeuten die ersten beiden Ziffern überhaupt?
Außerdem zählt es irgendwie seltsam... als er ein weiteres Kriterium für 3 Parameter hinzufügte, stiegen die 25 Stück nicht um das Dreifache, sondern ergaben etwas wie 40 koz. Handelt es sich um eine Störung oder liege ich irgendwo falsch?
Lesen Sie das Handbuch. Dort ist alles genau beschrieben.
 

Helfen Sie bei der Beseitigung des Schleppcodes!!!

Sollte bereits geöffnete StopLosses im "TrailingStop"-Abstand vom Hoch- oder Tiefpunkt der vorherigen Kerze nachziehen. Sobald der Expert Advisor gestartet ist, arbeitet er nur mit einer Order für den ersten offenen Handel. Sobald der StopLoss ausgelöst und der nächste Handel eröffnet wird, wird der StopLoss-Auftrag nicht nachgezogen. Wenn ich das richtig verstehe, liegt das daran, dass die Variable "ORDER_SL" nicht geändert wird und die Bedingung für die Änderung der Bestellung nicht erfüllt ist? Wenn ja, warum und wie kann man es korrigieren?

Hier ist der nachgestellte Code:

int ORDER=OrdersTotal();    
OrderSelect(ORDER,SELECT_BY_TICKET,MODE_TRADES);
int ORDER_Type=OrderType();
double ORDER_SL=OrderStopLoss();
double Point_High=iHigh(OrderSymbol(),0,2)-TrailingStop*Point;
double Point_Low=iLow(OrderSymbol(),0,2)+TrailingStop*Point;
            if (ORDER_Type==OP_BUY && ORDER_SL<Point_High){
                    OrderModify(OrderTicket(),OrderOpenPrice(),Point_High,OrderTakeProfit(),0,CLR_NONE);
                    while(!IsTradeAllowed()) Sleep(100);
            }
            if (ORDER_Type==OP_SELL && ORDER_SL>Point_Low){
                    OrderModify(OrderTicket(),OrderOpenPrice(),Point_Low,OrderTakeProfit(),0,CLR_NONE);
                    while(!IsTradeAllowed()) Sleep(100);
            }

Hier ist der EA in vollem Umfang:

Dateien:
 

Dieser Code

int ORDER=OrdersTotal();    
OrderSelect(ORDER,SELECT_BY_TICKET,MODE_TRADES);

sollten in Perlen gelegt werden. Das Interessanteste ist, dass es funktioniert, aber nur im Testgerät bei der ersten Bestellung.

 
Christoff:

Hilfe beim Schleppen!!!

Sollte bereits offene StopLosses im Abstand von "TrailingStop", vom Niveau des High oder Low, der vorherigen Candlesticks nachziehen. Nach dem Start arbeitet der Expert Advisor nur mit einer Order auf den ersten offenen Trade. Sobald der StopLoss ausgelöst und der nächste Handel eröffnet wird, wird der StopLoss-Auftrag nicht nachgezogen. Wenn ich das richtig verstehe, liegt das daran, dass die Variable "ORDER_SL" nicht geändert wird und die Bedingung für die Änderung der Bestellung nicht erfüllt ist? Und wenn ja, warum und wie kann man es korrigieren?

Hier ist der Schleppnetzcode:

Hier ist der Expert Advisor in vollem Umfang:

Bevor Sie etwas recherchieren, müssen Sie es auswählen. Zunächst müssen Sie eine Schleife durch alle offenen Positionen des Terminals ziehen und diejenigen auswählen, die vom Expert Advisor geöffnet wurden. Bei jeder Iteration der Schleife, wenn die gewünschte Reihenfolge ausgewählt ist, rufen Sie Ihr Schleppnetz direkt aus der Schleife auf. Nur in diesem Fall werden alle vom Expert Advisor eröffneten Positionen durchsucht.

Ungefähr so:

void Trailing(string sy, int mn) 
{
   int      i, err, ORDER_Type, k=OrdersTotal();
   double   PointX, ORDER_SL, Point_High, Point_Low;
 
   if (sy=="0") sy=Symbol();
   int    dg=MarketInfo(sy, MODE_DIGITS);
   double pt=MarketInfo(sy, MODE_POINT);
   
   if(dg==5 || dg==3) PointX=pt*10;
   if(dg==4 || dg==2) PointX=pt;
   
   for (i=0; i<k; i++) {
      if (OrderSelect(i, SELECT_BY_POS)) {
         if (OrderSymbol()!=sy)        continue;
         if (OrderType()>1)            continue;
         if (OrderMagicNumber()!=mn)   continue;
               
         ORDER_Type=OrderType();
         ORDER_SL=OrderStopLoss();
         Point_High=iHigh(OrderSymbol(),0,2)-TrailingStop*PointX;
         Point_Low=iLow(OrderSymbol(),0,2)+TrailingStop*PointX;
         if (ORDER_Type==OP_BUY)
            if (NormalizeDouble(Point_High-ORDER_SL,dg)>0) {
            OrderModify(OrderTicket(),OrderOpenPrice(),Point_High,OrderTakeProfit(),0,CLR_NONE);
            while(!IsTradeAllowed()) Sleep(100);
            }
         if (ORDER_Type==OP_SELL)
            if (NormalizeDouble(ORDER_SL-Point_Low,dg)>0) {
            OrderModify(OrderTicket(),OrderOpenPrice(),Point_Low,OrderTakeProfit(),0,CLR_NONE);
            while(!IsTradeAllowed()) Sleep(100);
            }
         }
      if (!OrderSelect(i, SELECT_BY_POS)) {
         err=GetLastError();
         Print("FUNC Trailing: Ошибка выбора ордера - ", err);
         break;
         }
      }
   return;
}

Ich habe mir den Code deines Schleppnetzes nicht angesehen, sondern ihn so gelassen, wie er ist (obwohl ich ihn auch ändern sollte - eine Prüfung hinzufügen, ob das StopLevel nicht überschritten wird, oder vielleicht etwas anderes), und nur eine Schleife für Aufträge und Normalisierung beim Vergleich von Doppeln in deinem Schleppnetzcode hinzugefügt, und so weiter ... einige nützliche Dinge ... Du wirst es herausfinden, wenn du es willst :)

ZS: Ich habe den Code nicht überprüft, ich habe ihn so geschrieben, wie er ist, daher kann er Fehler enthalten. Das ist nur ein Beispiel.

Rufen Sie nun diese Funktion an der Stelle im Code auf, an der Sie die Positionen durchsuchen müssen:

Trailing(Symbol(), Magic);
Magic - magische Zahl, die im EA als eindeutige Ganzzahl festgelegt wird, damit er seine eigenen Aufträge von Aufträgen eines anderen EA oder von manuell eröffneten Aufträgen, bei denen es überhaupt keine magische Zahl gibt, unterscheiden kann.
Wenn wir Symbol() im Funktionsaufruf lassen, werden die Positionen des Symbols, auf dem unser EA steht, anvisiert.
Alternativ können Sie anstelle von Symbol() auch den Namen des Währungspaares verwenden, dessen Positionen Sie durchsuchen möchten.
 
Bitte helfen Sie mir, Daten auf dem schnellsten Weg zwischen MT4-Terminals auf einem Computer auszutauschen.
 
trave:
Bitte helfen Sie mir, Daten auf dem schnellsten Weg zwischen MT4-Terminals auf einem Computer auszutauschen.

Wenn Sie Gewerke kopieren müssen, dann ist hier der Kopierer. Wenn Sie nur Daten austauschen, müssen Sie eine DLL erstellen.
Dateien:
kopirowshik.zip  465 kb
 
drknn:

Wenn Sie Berufe kopieren wollen, hier ist der Kopierer. Wenn Sie nur Daten austauschen wollen, müssen Sie eine DLL erstellen

Schöne Feiertage für Sie... :-)))
 
Vinin:

Du solltest in diesem Forum keine gestohlenen Sachen posten. Es ist ein Weg in die Verbannung.

ist im übertragenen Sinne, dieser Truthahn ist von mir fertiggestellt worden.
 
Roman.:
Schöne Feiertage für Sie... :-)))
Vladimir, da Sie eine Zusammenstellung veröffentlicht haben, müssen Sie sich mit diesem Problem befasst haben.
Haben Sie eine fertige, einfache Variante gefunden, eine Variable von Terminal zu Terminal über Speicher, Windows-Variable etc. zu übertragen, also nicht über eine Datei?
Eine letzte Variante ist ein Indikator, der die Close[0] -Linie von einem anderen Terminal auf einem Terminal online zeichnet. Auf einem Tickchart würde dieser Vergleich sehr deutlich aussehen.