Wie lässt sich die Schließung von Positionen nach N Minuten realisieren? - Seite 7

 
Renat Akhtyamov:

Haben Sie ins Englische übersetzt?

Und die Registerkarte "Experten" ist auf Russisch?


Nein, alles ist der Standard.

 
Natalya Dzerzhinskaya:

Nein, alles ist voreingestellt.

Schauen Sie bitte auf der Registerkarte "Experten" nach - sind die Fehler auf Russisch übersetzt?

 
Natalya Dzerzhinskaya:

Ja, der Code funktioniert.

Ich verwende int anstelle von bool zum Schließen in Ihrem Code

int schließen;

Und ein Ticket ist für alle Schließungen Kauf und Verkauf verwendet, aber das ist nur für den Test. Möglicherweise liegt deshalb ein Fehler vor, weil der Kaufvorgang abgeschlossen ist und es keinen Abschluss für den Verkauf gibt.

Nun, das ist richtig, so sollte es auch sein.

 
Renat Akhtyamov:

Können Sie auf der Registerkarte "Experten" überprüfen, ob die Fehler in russischer Sprache übertragen werden?


Alles wird auf Englisch gesendet

 
Natalya Dzerzhinskaya:

alles wird auf Englisch gesendet

Die ursprüngliche Idee war nach Ihren Beschreibungen, dass

Ich habe den Code auf der ersten Seite eingefügt, an deren Ende

if(TicketFirst>0)
{
//ну и пошло-поехало...
}

Sie müssen eine von 2 Abschlussfunktionen in diese Bedingung einfügen und den vom Ticket gefundenen Auftrag abschließen (ich habe zwei eingefügt), d. h.

if(TicketFirst>0)
{
                  if(OrderSelect(TicketFirst, SELECT_BY_TICKET)==true)
                  {
                     close=OrderClose(TicketFirst,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);
                     if(close<0){if(Fun_Error(GetLastError())==1)return;}
                  }
                  if(OrderSelect(TicketFirst, SELECT_BY_TICKET)==true)
                  {
                     close=OrderClose(TicketFirst,OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,clrBlue);
                     if(close<0){if(Fun_Error(GetLastError())==1)return;}
                  }

}

und platzieren Sie die Fehlerbehandlungsfunktion nach dem gesamten Code

Außerdem sollte es eine Logik in der Eingabebedingung für die Schließfunktion geben, die Sie nicht bis zum Ende erklärt haben, darüber habe ich auch geschrieben.

Und es wäre in Ordnung.

Wenn dies so bleibt, wird dasselbe Ticket zweimal geschlossen. Es wird ein 4108-Fehler angezeigt, wenn eine Bestellung mit einem bereits geschlossenen Ticket zum ersten Mal geschlossen wird.

 
Renat Akhtyamov:

Das ist richtig, so soll es auch sein.

Sie sollten nicht darüber nachdenken, sondern die Hilfe verwenden und einen Wert vom Typ bool schreiben.

Sie können aber auch int verwenden, das ändert sowieso nichts.

Führen Sie das Skript aus. Sie können es 50 Mal hintereinander ausführen, und die Variable close wird nie gleich -1 sein. Das bedeutet, dass Fehler in keiner Sprache übersetzt werden können, auch nicht in Chinesisch.

//+------------------------------------------------------------------+
#property version   "1.00"
#property strict
#property show_inputs

input int MyTicket = 451971753;

int close = -1;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//закрытие по тикету, переделайте под свой

   if(OrderSelect(MyTicket,SELECT_BY_TICKET)==true)
     {
      close=OrderClose(MyTicket,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);
      if(close<0) Print("ERROR равен -1: ",close);
      if(close==0) Print("ERROR не может быть -1 НИКОГДА: ",close);
     }
  }


 
Vitaly Muzichenko:

Sie sollten nicht darüber nachdenken, sondern die Hilfe verwenden und einen Wert vom Typ bool schreiben.

Sie können aber auch int verwenden, das ändert sowieso nichts.

Führen Sie das Skript aus. Sie können es 50 Mal hintereinander ausführen, und die Variable close wird nie gleich -1 sein. Das bedeutet, dass Fehler in keine Sprache übersetzt werden können, auch nicht ins Chinesische.

Vitaly, du brauchst mich nicht zu belehren.

Ich erinnere mich, dass ich dir vor ein oder zwei Jahren selbst beigebracht habe, wie man zum 5-Kreis wechselt, also hast du bisher weniger Erfahrung...

Du hast keine von meinen gemacht, aber du sagst...
 
Renat Akhtyamov:

Vitaly, du brauchst mich nicht zu belehren.

Ich erinnere mich, dass ich dir vor ein oder zwei Jahren selbst beigebracht habe, wie man auf eine 5er-Kurbel umsteigt, du hast also bisher weniger Erfahrung...

Ich habe Ihnen sogar ein Beispiel gegeben, machen Sie sich nicht lächerlich!

 
Vitaly Muzichenko:

Ja, ich habe sogar ein Beispiel genannt, machen Sie sich nicht lächerlich!

Sie haben nicht dasselbe getan wie ich, Sie haben es auf Ihre Weise getan, und Sie sagen...

Was ist eigentlich Ihr Körperbau?

und Sie zeigen mir nicht die Registerkarte "Experten", sondern das Journal an. Das sind zwei große Unterschiede.

Der Fehler wird in meinem Fall durch den Expert Advisor auf der Registerkarte Expert Advisors angezeigt.
 
Renat Akhtyamov:

Du hast nicht eine von meinen gemacht, sondern eine von deinen, und du sagst...

Was ist eigentlich Ihr Körperbau?

und Sie zeigen mir nicht die Registerkarte "Experten", sondern das Protokoll an. Es gibt eigentlich zwei große Unterschiede.

Der Fehler wird in meinem Fall durch den Expert Advisor auf der Registerkarte Expert Advisors übermittelt.

Ich verstehe schon, du versuchst, mich zu trollen.

Okay, ich bin dann mal weg.

Nein, ich werde wohl einfach an servicedesk schreiben und ihnen sagen, dass ich ein defektes Terminal habe.