[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 414

 
PapaYozh:

Ich würde sagen "etwa 80".

Ich würde sagen, genau 80. Und sss2019 hat mit den Parametern alles richtig gemacht. Aber was ist dieser wilde Indikator mit so vielen Parametern?
 
Ich habe versucht, es an meine Stelle zu setzen, es ist auch langsam. Ich habe nie etwas davon gesehen, ich habe nur Metatrader.
 
Sepulca:

Ich kann Ihnen genau sagen, dass es genau 80 davon gibt. Und sss2019 hat mit den Parametern alles richtig gemacht. Aber was ist dieser wilde Indikator mit so vielen Parametern?

Das ist es ja, es ist zwar richtig, aber es ist trotzdem ein Fehler.
 

schrieb eine Änderung der Aufträge. Wenn der Preis erreicht ist, verschieben Sie den Stop-Loss auf das Niveau des Eröffnungskurses. Der Fehler 130 wird angezeigt. Ich verstehe nicht, was los ist. Ich konnte vorher Trailing-Orders schreiben...

if (UseTrailing)
{ 
  for (int trall=0; trall<OrdersTotal(); trall++) 
  {
    if (!(OrderSelect(trall, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol()!=Symb)continue;        
 
    if (Tip==0 && top!=1) 
       {
        RefreshRates();
        SLM=OrderOpenPrice();
        if (Bid-OrderOpenPrice() > WithoutLoss*Point   ) 
           {
           if (OrderStopLoss() < Bid-WithoutLoss*Point) 
              {
              OrderModify(Ticket_B, OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Blue);
              top=1;
               }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
         continue;                              // Повторная попытка
         return;                                // Выход из start()

            }
        }
 
    if (Tip==1 && top!=2) 
       {
        RefreshRates();
        SLM=OrderOpenPrice();
       if ( OrderOpenPrice()-Ask > WithoutLoss*Point) 
          {
          if (OrderStopLoss() > Ask+WithoutLoss*Point) 
             {
              OrderModify(Ticket_S, OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Blue);
              top=2;
              }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
         continue;                              // Повторная попытка
         return;                                // Выход из start()

           }
         }
 
Egori4:

schrieb eine Änderung der Aufträge. Wenn der Preis erreicht ist, verschieben Sie den Stop-Loss auf das Niveau des Eröffnungskurses. Der Fehler 130 wird angezeigt. Ich verstehe nicht, was los ist. Ich konnte vorher Trailing-Orders schreiben...

Sie arbeiten in einer Schleife an allen Aufträgen, aber es gibt eine bestimmte Variable Tip, die sich nie ändert und von der niemand weiß, wie sie lautet. Außerdem können Sie einen Auftrag analysieren und einen völlig anderen mit dem in der Variablen Ticket_B bzw. Ticket_S gespeicherten Ticket ändern.
 
ilunga:
Sie arbeiten in einer Schleife an allen Aufträgen, aber es gibt eine Variable Tip, die sich nicht ändert und von der Sie nicht wissen, was sie bedeutet. Außerdem analysieren Sie einen Auftrag und ändern einen ganz anderen Auftrag mit dem Ticket, das in der Variable Ticket_B bzw. Ticket_S gespeichert ist
dann muss ich auch die Auftragsart überprüfen(wenn Tip=0, dann ist es ein Kauf, wenn Tip=1, dann ist es ein Verkauf. und Ticket_B ist ein offener Kauf, Ticket_S ist ein offener Verkauf)
 
Sepulca:


Wenn Sie einen schwebenden Auftrag eröffnen und eine Verfallszeit festlegen, z. B. 23:59 Uhr, wird der Auftrag von selbst geschlossen.

nt OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

Ich habe versucht, die Verfallszeit auf 24 Stunden einzustellen (OrderOpenTime()+86400), aber wenn die Order eine oder zwei Stunden später geöffnet wird, wird sie auch später geschlossen...
 

Guten Tag Leute, kann mir bitte jemand bei der WindowScreenShot-Funktion helfen? Seit dem 3. Tag antwortet niemand mehr((. Ich habe das folgende Skript geschrieben (siehe beigefügte Datei).

In 2 Worten über das Drehbuch. Das Skript ist für die Erstellung von Screenshots des aktuellen Charts des Client-Terminalfensters gedacht. In der externen Variable extern datetime Time_bar wird die Zeit des Balkens angegeben, ab der und bis zum Null-Balken erstellt wird (unter Berücksichtigung des rechten Einzugs im Chart). In der Zeile

int bar_number=iBarShift(NULL,0,Time_bar,true)

wird die Seriennummer des Balkens gesucht, die wir in der externen Variablen extern datetime time_bar angegeben haben. Die Funktion selbst, in der Zeile

bool f=WindowScreenShot(name+".gif",1024,768,bar_number,Scale,View_graph)

Die Frage ist nun... Nehmen wir der Einfachheit halber an, dass wir einen Screenshot der letzten beiden Balken erstellen müssen. Dann, wenn die Zeile

int bar_number=iBarShift(NULL,0,Time_bar,true)

nicht verändert wird, ergibt sich folgender Screenshot


Das heißt, auf dem Screenshot ist kein Balken zu sehen (obwohl die Zeichenfolge

int bar_number=iBarShift(NULL,0,bar_time,true)

die Balkenanzahl nach Zeit sollte berechnet werden)

Wenn diese Zeile wie folgt dargestellt wird

int bar_number=iBarShift(NULL,0,Time_bar,true)+2

erhalten Sie den gewünschten Screenshot:

Frage: Warum hat diese Zeichenfolge die folgende Form

int bar_number=iBarShift(NULL,0,Time_bar,true)

das Bildschirmfoto mit einer Verschiebung von 2 Balken nach rechts von dem in der obigen Zeile angegebenen Wert aufgenommen wurde?

P.S. Um das Forum nicht zu überladen, danke ich Ihnen im Voraus für Ihre Antwort
Dateien:
 
Egori4:
Entschuldigung... es gibt keine Möglichkeit, die Zeit einzustellen (ich kann das Format nicht herausfinden). Ich habe versucht, die Ablaufzeit in 24 Stunden einzustellen (OrderOpenTime()+86400), aber wenn die Bestellung eine oder zwei Stunden später geöffnet wird, wird sie auch später geschlossen...


Ich würde es so versuchen:

exp=iTime(Symbol(),PERIOD_D1,0)+86340;
Dabei ist iTime(Symbol(),PERIOD_D1,0) die Eröffnungszeit der Tagesleiste, und 86340 ist 23 Stunden 59 Minuten in Sekunden.
 
Egori4:
dann muss ich auch die Auftragsart überprüfen (wenn Tip=0, dann ist es ein Kauf, wenn Tip=1 - ein Verkauf. und Ticket_B - offener Kauf, Ticket_S - offener Verkauf)

Wenn Sie Tickets in Ticket_B und Ticket_S gespeichert haben , warum brauchen Sie dann überhaupt einen Zyklus?

Wählen Sie einfach ein Ticket aus und sehen Sie nach, ob es Bedingungen gibt, um es zu ändern