Automatisches Initialisieren und Reinitialisieren des EA aus einer Datei - Seite 7

 
Fry_Антон:

Ich verstehe.

Konkret: Morgen werde ich darüber nachdenken, wie man eine Position auf FORTS fangen kann. Was ich nämlich am meisten brauche, ist der tatsächliche Eröffnungskurs einer Position, die glattgestellt (zum Clearingpreis wiedereröffnet) wurde.

Die Position auf FORTS ergibt sich aus der Summe der Abschlüsse auf einen (oder mehrere) Aufträge. Beim Clearing gibt es ein technisches Geschäft ohne Ticket, wir müssen herausfinden, wie wir den POSITION_PRICE_OPEN-Preis bestimmen können, der vor dem Clearing galt.

Es kann gespeichert werden. Entscheiden Sie nur über die Lebensdauer. Zum Beispiel, um zu vergessen, wenn der EA aus dem Markt ist (keine Positionen).
 
Dmitry Fedoseev:

Offensichtlich, wenn:

Man muss weiter meißeln. Aber blockieren Sie wenigstens nicht den Experten. Vielleicht weniger dreist meißeln, wenn die Zahl der Fehler steigt, die Pause zwischen den Versuchen erhöhen. Die einfachste Lösung sind ein paar Versuche und eine Pause, bis der nächste Balken geöffnet wird.

Was ist mit den Sanktionen der Börse bei Überschreitung von 2.000 Transaktionen? Nehmen wir an, ich habe 50 EAs und 2.000 Transaktionen wurden durchgeführt. Was muss ich als Nächstes tun, wenn ich Geldstrafen von der Börse erhalte?
 
Fry_Антон:

Ich verstehe.

Konkret: Morgen werde ich darüber nachdenken, wie man eine Position auf FORTS fangen kann. Was ich nämlich am meisten brauche, ist der tatsächliche Eröffnungskurs einer Position, die glattgestellt (zum Clearingpreis wiedereröffnet) wurde.

Die Position auf FORTS ergibt sich aus der Summe der Abschlüsse auf einen (oder mehrere) Aufträge. Beim Clearing gibt es ein technisches Geschäft ohne Ticket, wir müssen herausfinden, wie wir den POSITION_PRICE_OPEN-Preis bestimmen können, der vor dem Clearing galt.

//+------------------------------------------------------------------+
//| Expert Get position price function                               |
//+------------------------------------------------------------------+
double GetPositionPrice( const string aSymbol )
{
  double price_in = 0;
  double volume_in = 0;
  
  if ( PositionSelect( aSymbol ) )
  {
    ulong pos_id = ulong( PositionGetInteger( POSITION_IDENTIFIER ) );
    
    if ( pos_id > 0 )
    {
      if ( HistorySelectByPosition( pos_id ) )
      {
        int deals = HistoryDealsTotal();
      
        for( int i = 0; i < deals; i++ )
        {
          ulong deal_ticket = HistoryDealGetTicket( i );
          ulong order_ticket = ulong( HistoryDealGetInteger( deal_ticket, DEAL_ORDER ) );
        
          if ( order_ticket > 0 )
          {
            ENUM_DEAL_ENTRY deal_entry = ENUM_DEAL_ENTRY( HistoryDealGetInteger( deal_ticket, DEAL_ENTRY ) );
              
            if ( deal_entry == DEAL_ENTRY_IN )
            {
              double price = HistoryDealGetDouble( deal_ticket, DEAL_PRICE );
              double volume = HistoryDealGetDouble( deal_ticket, DEAL_VOLUME );
                                
              price_in += price * volume;
              volume_in += volume;  
            }
          }
        }
        if ( volume_in > 0 ) return( NormalizeDouble( price_in / volume_in, _Digits ) );
      }
      else
      {
        Print( "GetPositionPrice: Невозможно получить историю позиции по символу ", aSymbol );
      }
    }
    else
    {
      Print( "GetPositionPrice: Невозможно определить идентификатор позиции по символу ", aSymbol );
    }
  }
  return( 0 );
}
 
Михаил:

Großartig! Ich werde sie morgen anschrauben.

Sie haben mir eine Menge Zeit erspart. Danke. (lacht)

 
Fry_Антон:

Großartig! Ich werde es morgen anhängen.

Sie haben mir eine Menge Zeit erspart. Ich danke Ihnen.

Memo:

Diese Funktion ist NUR für eingehende Trades!

(d.h. es gab keinen Stellenabbau).

Wenn Sie beides benötigen, fügen Sie die FunktionDEAL_ENTRY_OUT hinzu

 
Михаил:

Memo:

Diese Funktion ist NUR für eingehende Trades!

(d.h. keine Verringerung der Position)

Wenn Sie beides brauchen, dann fügen Sie der FunktionDEAL_ENTRY_OUT hinzu

Das habe ich sofort verstanden. Das Prinzip selbst ist hier wichtig: Es handelt sich um eine Suche nach ID in der Geschichte und ist im Wesentlichen die vollständige Antwort auf die obige Frage.


Ehrlich gesagt, verstehe ich die Logik der Entwickler nicht, warum sie sich entschieden haben, ein klärendes technisches Geschäft auf so "plumpe" Weise zu gestalten.

Sowohl grafische Objekte auf Charts, als auch Positionseigenschaften in der Historie und darüber hinaus Eigenschaften einer offenen Position (Profitabilität) - alles ist irreführend, nicht nur für einen einfachen Code in einem EA, sondern für jeden Trader im Allgemeinen.

 
kond777:
Und was ist mit den Sanktionen der Börse bei Überschreitung von 2.000 Transaktionen? Angenommen, ich habe 50 EAs und 2 000 Transaktionen wurden durchgeführt. Was muss ich als nächstes tun, wenn ich von der Börse eine Geldstrafe erhalte?

Sie werden die Antwort auf Ihre Frage nicht erfahren.

Um keine Bußgelder zu erhalten, muss die Arbeit des Sachverständigen eingestellt werden (Sie und ich haben dies schon vor langer Zeit besprochen).

Wenn unser Wunderprogrammierer sagt, dass es notwendig ist, aufzuhören, gibt er damit zu, dass er

zuzugeben, dass er ..... ist, der keine Ahnung vom Programmieren hat

Experten für den Aktienhandel....

 
Михаил:

Sie werden die Antwort auf Ihre Frage nicht erfahren.

Um keine Bußgelder zu erhalten, muss die Arbeit des Sachverständigen eingestellt werden (Sie und ich haben dies schon vor langer Zeit besprochen).

Wenn unser Wunderprogrammierer sagt, dass es notwendig ist, aufzuhören, gibt er damit zu, dass er

zuzugeben, dass er ..... ist, der nichts über Programmierung weiß

Expert Advisors für den Aktienhandel....

Meiner Meinung nach machtDmitry Fedoseev den Eindruck einer sachkundigen Person, und ich glaube, dass er wahrscheinlich in der Lage sein wird, eine Lösung für dieses Problem anzubieten.
 
Михаил:

Ja, weil Sie einer Person raten, was für MT4 gut ist und in MT5 völlig "nutzlos" ist!

Aus Ihren Nachrichten geht hervor, dass Sie keine Ahnung haben, wie MT5 funktioniert.

Und es steht Ihnen nicht zu, zu beurteilen, ob das Prinzip der Expertenprogrammierung schändlich ist oder nicht!

Ich sehe Sie überhaupt nicht als Autorität, sondern als einen frechen, eingebildeten Jungen!

Sind Sie eifersüchtig? Und das zu Recht, denn es ist besser, ein junger Welpe zu sein als ein alter Paradiesvogel.
 
Алексей Тарабанов:
Eifersüchtig? Sie haben Recht - besser ein junger Welpe als ein alter Paradiesvogel.
Es ist noch mehr Gas in der Pfütze...