Organisation des Auftragszyklus - Seite 13

 
fxsaber:

Die Beispielvorlage ist speziell mit SB geschrieben. Daher die Frage an die MT5-Spezialisten: Ist der Code korrekt?

Ich bin zwar kein Spezialist, aber ich werde auf das Offensichtliche hinweisen: Ein solcher Code kann mit endlosen Versuchen , eine Position zu schließen, durchkommen (zum Beispiel am Ende einer Handelssitzung).

Nun, und komplexe Bedingungen in einer Zeile des Codes, natürlich, reduzieren den Code, sondern machen es schwieriger zu lesen.

 
Andrey Khatimlianskii:

Ich bin zwar kein Experte, aber ich werde auf das Offensichtliche hinweisen: Ein solcher Code kann damit durchkommen, dass er endlos versucht, eine Position zu schließen (z. B. am Ende einer Handelssitzung).

Das kann sie nicht.

Nun, komplexe Bedingungen in einer Codezeile reduzieren natürlich den Code, machen ihn aber schwieriger zu lesen.

In diesem Fall hilft nur Kürze - der gesamte TS ist auf dem Bildschirm zu sehen.

 
fxsaber:

Wenn Sie das so wörtlich nehmen, können Sie in der Market Watch auch die vergangenen Tick-Historien für jedes Symbol lesen. Aber ich denke, Sie verstehen die Bedeutung dieser Aussage.

Der Code setzt diese Aussage in gewisser Weise um. Deshalb habe ich alle, die den MT5 verstehen, gefragt: Ist der Code korrekt?

Nun, wir sind die Programmierer.

So verstanden ...

Nichts für ungut.

 

fxsaber:

Deshalb hatte ich eine Frage an alle, die sich mit MT5 auskennen: Ist der Code korrekt?

Ich habe mir den Code nicht genau angesehen - wer SB aktiv nutzt (ich - nein, nicht die Handelsklassen genauer gesagt), kann das vielleicht sagen?

 
Artyom Trishkin:

Ich habe nicht viel in den Code geschaut - wer SB aktiv nutzt (ich - nein, nicht die Handelsklassen, um genau zu sein), vielleicht können die das sagen?

Dies ist ein seltener Fall, in dem die SB so funktioniert, wie sie sollte. Die Vorlage ist ein Skelett. Natürlich können Sie alle Arten von Fleisch in Form von Füllungsschecks, Losen usw. einbringen. Aber die Basis wird bleiben.

Ein Template kann mit einem Minimum an Aufwand auf MT4 umgeschrieben werden und funktioniert zu 100% auf MT5. Aber auf der anderen Seite, auf MT5 ist eine gute Frage wirklich!

 
fxsaber:

Dies ist ein seltener Fall, in dem der SB richtig funktioniert. Die Vorlage ist ein Skelett. Natürlich können Sie alle Arten von Fleisch in Form von Füllungsschecks, Loyalitäten usw. einbringen. Aber die Hauptgrundlage bleibt bestehen.

Ein Template kann mit minimalem Aufwand auf MT4 umgeschrieben werden und funktioniert zu 100% auf MT5. Aber auf MT5 ist wirklich eine gute Frage!

Ich werde versuchen, es mit klarem Kopf und nicht um 5 Uhr morgens zu benutzen :)

Ich werde aufwachen, und wenn niemand, der SB gut kennt, etwas postet, kann ich versuchen, die wahrscheinlichen Kieselsteine herauszufinden.

 
fxsaber:

Das Template kann mit minimalem Aufwand auf MT4 umgeschrieben werden und wird dort zu 100% funktionieren.

Umgeschrieben auf MT4

// Шаблон большинства ТС

#property strict // обязательно

// Сигнал на покупку
bool BuySignal( const string Symb ) { return(true); }

// Сигнал на продажу
bool SellSignal( const string Symb ) { return(false); }

// Находит ордер соответствующего типа
bool OrdersScan( const string Symb, const int Type )
{
  for (int i = OrdersTotal() - 1; i >= 0; i--)
    if (OrderSelect(i, SELECT_BY_POS) && (OrderType() == Type) && (OrderSymbol() == Symb))
      return(true);    
    
  return(false);  
}

// Торговое действие на сигнал
bool Action( const string Symb, const int Type, const double Lots = 1 )
{
  bool Res = true;    
  
  // Закрыли противоположные сигналу позиции
  while ((OrdersScan(Symb, 1 - Type)) && (Res = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100)));

  // Открыли позицию по сигналу
  return(Res && !OrdersScan(Symb, Type) && OrderSend(Symb, Type, Lots, SymbolInfoDouble(Symb, Type ? SYMBOL_BID : SYMBOL_ASK), 100, 0, 0));
}

// Шаблон торговой стратегии
void Strategy( const string Symb )
{
  if (BuySignal(Symb))
    Action(Symb, OP_BUY);
  else if (SellSignal(Symb))
    Action(Symb, OP_SELL);
}

void OnTick()
{
  Strategy(_Symbol);
}

Aber auf MT5 ist wirklich eine gute Frage!

Interessante Kommentare zu MT5.
 
fxsaber:

Das kann er nicht.

Ja, richtig. Sie können eine Position einfach nicht schließen, wenn es nötig ist.


fxsaber:

In diesem Fall hilft nur Kürze - der gesamte TS ist auf dem Bildschirm zu sehen.

Sie können ihn in 5 Zeilen schreiben, das macht das Lesen nicht leichter.

Ich teile meine Auffassung.

 
Andrey Khatimlianskii:

Ja, das ist richtig. Möglicherweise wird eine Position einfach nicht geschlossen, wenn dies erforderlich ist.

Ich habe absichtlich die MT4-Variante geschrieben, um sie vertrauter zu machen. Es scheint, dass die Varianten MT4 und MT5 identisch sind. SB ist genau dasselbe. Wir gehen davon aus, dass die MT4-Variante zu 100% funktioniert. D.h. wir werden einige kleine Details auslassen.

Wir können ihn in 5 Zeilen schreiben, das macht das Lesen nicht einfacher.

Ich teile meine Wahrnehmung davon.

Ja, der Code von jemand anderem ist ein Rätsel.

 
fxsaber:

Ich habe absichtlich die MT4-Variante geschrieben, um sie vertrauter zu machen. Es scheint, dass die Varianten MT4 und MT5 identisch sind. SB ist genau dasselbe.

Und was, OrderClose ist garantiert, um den Handel zu schließen?


fxsaber:

Ja, der Code anderer Leute ist dunkel.

Nein, das ist nicht immer so. Ich meine den Stil.