Clearing im Prüfgerät - Seite 4

 
Roman Shiredchenko #:

Abschreibungen während des Clearings können vernachlässigt werden.

Beispiel. Sie eröffnen ein Kaufgeschäft zu 50, zu Beginn des Clearings ist der Preis sagen wir 70. Während des Clearings wird Ihr Geschäft gelöscht und Sie erhalten 20 Tugrik, nach dem Clearing wird Ihr Geschäft zu 70 eröffnet.

Wenn Sie ihn bei 100 schließen, zeigt das Terminal einen Handel mit einem Gewinn von 50 Tugriks an.

Das Problem tritt in der Regel beim Schreiben eines Schleppnetzes oder einer CU auf. Angenommen, wir wollen einen CUE von +5 setzen, wenn der Handel 15+ ist.

Wenn wir dann die Zahlen aus dem Beispiel nehmen, stellt sich heraus, dass unser Stop-Loss vor dem Clearing +5 Punkte und nach dem Clearing -5 Punkte beträgt. Aber wenn ein Handel auf Stop geschlossen wird, erhalten wir immer noch einen Gewinn von 5 Runden.

Daher kann das Clearing im Prüfgerät vernachlässigt werden.

 
Aleksandr Slavskii #:

Wirklich einfach und vor allem zuverlässig.


Ich verzeihe dem Autor, dass er vom Thema abschweift, aber haben Sie ein Rezept, um festzustellen, wann das Clearing vorbei ist?

Das Problem ist folgendes: Der Broker Opener löscht während des Clearings schwebende Aufträge, und das Clearingfeld stellt sie nicht wieder her.

Ich weiß nicht, wie es bei Futures ist, aber bei Aktien endet das Clearing zu unterschiedlichen Zeiten.

Es ist mir also nicht gelungen, den Zeitpunkt zu bestimmen, an dem das Clearing für ein bestimmtes Wertpapier endet.

Ich schicke einfach einen Timer-Befehl, um eine Bestellung aufzugeben, bis sie geöffnet wird.

Mir gefällt dieser Ansatz nicht, und ich habe auch keinen anderen.

Das ist in Ordnung - diskutieren und debattieren Sie gemeinsam - das Thema ist für alle offen!!!!!
 
Aleksandr Slavskii #:

Abschreibungen während des Clearings können vernachlässigt werden.

Beispiel. Sie eröffnen ein Kaufgeschäft zu 50, zum Zeitpunkt des Clearings liegt der Preis bei 70. Während des Clearings wird Ihr Geschäft gelöscht und Sie erhalten 20 Tugrik, nach dem Clearing wird Ihr Geschäft zu 70 eröffnet.

Wenn Sie ihn bei 100 schließen, zeigt das Terminal einen Handel mit einem Gewinn von 50 Tugriks an.

Das Problem tritt in der Regel beim Schreiben eines Schleppnetzes oder einer CU auf. Angenommen, wir wollen einen CUE von +5 setzen, wenn der Handel 15+ ist.

Wenn wir dann die Zahlen aus dem Beispiel nehmen, stellt sich heraus, dass unser Stop-Loss vor dem Clearing +5 Punkte und nach dem Clearing -5 Punkte beträgt. Aber wenn ein Handel auf Stop geschlossen wird, erhalten wir immer noch einen Gewinn von 5 Runden.

Deshalb können wir das Clearing im Testgerät außer Acht lassen.

Oh! Wie interessant... Ich muss tiefer gehen und es ausprobieren! :-)

schrieb (aus Artikel entnommen) f-i-tion genau aus Zählung von Trades auf Geschichte, auf Tatsache (es ist, wer hat Position in plus) - zählen konsekutiv minus und zeigen Sie es auf dem Bildschirm - Art von ACCOUNT Clearing, kann sicherlich nicht ganz es wird alles richtig sein, wenn der Handel - nur auf der Suche nach es jetzt ...

Um also eine Position genau zu schließen, zum Beispiel unter Berücksichtigung des vorherigen Ausgleichs, wenn dieser im Minus war - dann sollten wir die Werte des geschlossenen Gewinns und des vorherigen Verlusts beim Ausgleich vergleichen.

//+------------------------------------------------------------------+
//|                 УЧЕТ КЛИРИНГА
//+------------------------------------------------------------------+
double Calc_Clearing() // вычисление лота
  {
   bool ord;
   double TotalLot=0;
    for(int i=HistoryDealsTotal()-1; i>=0; i--)
     {
      ulong ticket=HistoryDealGetTicket(i);
      ord=HistoryDealSelect(ticket);
      if(ord && HistoryDealGetString(ticket,DEAL_SYMBOL) == _Symbol
       //  && HistoryDealGetInteger(ticket,DEAL_MAGIC) == MagicC
         && HistoryDealGetInteger(ticket,DEAL_ENTRY) == DEAL_ENTRY_OUT)
        {
         if(HistoryDealGetDouble(ticket,DEAL_PROFIT) <= 0)
           {
            TotalLot+=HistoryDealGetDouble(ticket,DEAL_VOLUME);
           }
         else
           {
            break;
           }
        }
     }
   return TotalLot == 0 ? TotalLot: TotalLot;
  }

einen Fehler gefunden - beheben Sie ihn:

TotalLot+=HistoryDealGetDouble(ticket,DEAL_PROFIT);

Das Ergebnis ist das Bild auf dem Bildschirm oben vor dieser Einfügung:

   Comment(" SPREAD текущий по символу ", _Symbol, " составляет: ", SymbolInfoInteger(_Symbol,SYMBOL_SPREAD),
    "      СВЕРКА по клирингу:  ", NormalizeDouble(Calc_Clearing(),0));

Clearingabstimmung

weil es noch keinen Ausgleichsverlust gab:

09.11.2021: alles "aus" ist im Plus:


 
Roman Shiredchenko #:

Schrecklich! Es gibt zu viel Falsches, um es zu kommentieren.

Sagen wir es anders.

Warum brauchen Sie eine Transaktionshistorie, wenn Sie an einer Position interessiert sind?

Imho reicht es aus, den Preis der letzten Position für jeden neuen Handel in eine Variable zu schreiben, und wenn das Clearing kommt, die CU um die Differenz zwischen dem in die Variable geschriebenen Preis und dem Preis des letzten Ticks vor dem Clearing anzupassen.

Beispiel:

Los = 1;

double end_position=0;

erster Abschluss zum Preis 30, Endposition = 30;

Zweiter Handel zum Preis von 60, end_position = 45;

dritter Abschluss zum Preis 90, Endposition = 60;


Das heißt, Sie haben eine Position zu 60 mit einem Volumen von 3.

Angenommen, das Clearing erfolgte zum Preis von 70, so beträgt der Gewinn 30 Tugriks.

double clearing_price = 70;

Nach dem Clearing wurde die Position zum Preis von 70 eröffnet, aber wir müssen bedenken, dass der tatsächliche Preis dieser Positionend_position == 60 ist; dies ist also der Preis, von dem aus das Schleppnetz oder der CUE berechnet wird.

Füllen Sie daher beim Clearing die Variable

double corrector = 0;

corrector =clearing_price-end_position;

Angenommen, Sie haben einen CU-Start, wenn der Handel +20 Pips ist, bzw., fügen Sie der CU-Funktion hinzu, dass der CU-Start ist: 20 -Korrektor;

Und auch die CU wird einige Punkte ins Plus setzen, sie müssen auch durch den Korrekturwert korrigiert werden.

Nach dem Schließen eines beliebigen Lagekorrektors = 0;


Dies funktioniert jedoch nur, wenn es nach dem Clearing keine Teilschließungen oder Füllungen gibt. Wenn ja, dann müssen wir es anders machen.

 
Aleksandr Slavskii #:

Wirklich einfach und vor allem zuverlässig.


Ich verzeihe dem Autor, dass er vom Thema abschweift, aber haben Sie ein Rezept, um festzustellen, wann das Clearing vorbei ist?

Das Problem ist folgendes: Der Broker Opener löscht während des Clearings schwebende Aufträge, und das Clearingfeld stellt sie nicht wieder her.

Ich weiß nicht, wie es bei Futures ist, aber bei Aktien endet das Clearing zu unterschiedlichen Zeiten.

Es ist mir also nicht gelungen, den Zeitpunkt zu bestimmen, an dem das Clearing für ein bestimmtes Wertpapier endet.

Ich verwende einfach einen Timer, um die Bestellung zu senden, bis sie geöffnet wird.

Mir gefällt dieser Ansatz nicht, und ich habe auch keinen anderen.

Ich habe auch einen Öffner, aber auf Futures. Ich habe das gleiche Problem mit dem Ende der Räumung, ich weiß nicht, wie ich es bestimmen soll, ich nehme einfach 19:05.

Ich meine, Sie können die Stundung bis zum Datum vornehmen, nicht nur für heute. Zumindest bei den Termingeschäften.

 
Aleksandr Slavskii #:

1. Das Grauen! Es gibt zu viel Falsches, um es zu kommentieren.

Sagen wir es anders.

Wozu brauchen Sie eine Transaktionshistorie, wenn Sie an einer Position interessiert sind?

Imho reicht es aus, den Preis der letzten Position für jeden neuen Handel in eine Variable zu schreiben, und wenn das Clearing kommt, die CU um die Differenz zwischen dem in die Variable geschriebenen Preis und dem Preis des letzten Ticks vor dem Clearing anzupassen.

Beispiel:

Los = 1;

double end_position=0;

erster Abschluss zum Preis 30, Endposition = 30;

Zweiter Handel zum Preis von 60, end_position = 45;

dritter Abschluss zum Preis 90, Endposition = 60;


Das heißt, Sie haben eine Position zu 60 mit einem Volumen von 3.

Angenommen, das Clearing erfolgte zum Preis von 70, so beträgt der Gewinn 30 Tugriks.

double clearing_price = 70;

Nach dem Clearing wurde die Position zum Preis von 70 eröffnet, aber wir dürfen nicht vergessen, dass der tatsächliche Preis dieser Positionend_position == 60 ist; dies ist also der Preis, von dem aus das Trawl oder CUE berechnet wird.

Füllen Sie daher beim Clearing die Variable

double corrector = 0;

corrector =clearing_price-end_position;

Angenommen, Sie haben einen CU-Start, wenn der Handel +20 Pips ist, bzw., fügen Sie der CU-Funktion hinzu, dass der CU-Start ist: 20 -Korrektor;

Und auch die CU wird ins Plus gesetzt, sie muss ebenfalls um den Korrekturwert korrigiert werden.

Nach dem Schließen eines beliebigen Lagekorrektors = 0;


2. Dies funktioniert jedoch nur, wenn es nach dem Clearing keine Teilschließungen oder Füllungen gibt. Wenn ja, sollten wir es anders machen.

1. Danke für den Zeitplan. Ich möchte vorerst ohne Korrektor schauen, da ich Ergänzungen und Schleppnetz mit boo + z.B. 30 Pips habe, auch nach der Schleppnetzeinstellung kann es zu Teilschließungen nach der Betriebslogik des Roboters kommen. D.h. nach dem Eröffnen einer Startposition speichere ich den Eröffnungskurs, nach dem Hinzufügen eines Add-ons - Mittelwertbildung - speichere ich wieder den NEUEN Eröffnungskurs. Das Clearing und die Festsetzung eines neuen Eröffnungskurses durch den Makler spielen im Grunde keine Rolle.

Ich verstehe richtig, dass dieser Ansatz auch nach der oben in diesem Beitrag von mir beschriebenen Handelslogik erfolgen kann...

Wenn es der aktuelle Kurs des Vermögenswerts erlaubt, übertragen Sie SL auf BU + 30 Pips vom zuvor gespeicherten kumulativen Positionskurs.

Und wen interessiert schon der aktuelle Preis der offenen Position für die Futures, der von Ihrem Broker festgelegt wird?


2.

"Das funktioniert aber nur, wenn es nach dem Clearing keine Teilschließungen oder Auffüllungen gibt. Wenn ja, dann muss es anders gemacht werden. "

Ich habe Füllungen... vorher und nachher - bis zur Umstellung auf BU + 30 Pips - ist es wirklich notwendig, den aktuellen Durchschnittspreis aller Marktaufträge über Arrays zu lesen, denn wir brauchen

...wir bräuchten den Eröffnungskurs einer Market Order und die Anzahl und das Volumen der Kontrakte für jede Order... um den Durchschnittspreis für sie insgesamt anzuzeigen - was bedeutet die Übertragung auf eine CU - um zu berechnen...


Ein Durchschnittspreis = ((OPEN_1 * VOLUME_1) + (OPEN_2 * VOLUME_2) + (OPEN_3 * VOLUME_3)+n) / (VOL_1 + VOL_2 + VOL_3 + n), hier stellt sich heraus, dass ich noch nicht übersetzt SL in BU + 30 Pips auf alle aggregierten Position - es ist notwendig, alle diese Werte in Arrays oder was zu schreiben? Wenn wir das N-te Marktorder-Slice öffnen, sollten wir diese gesamte Kette erhöhen, um den Durchschnitt für alle zu berechnen?

Oder wir könnten irgendwie mit ihm spielen:

HistoryOrderSelect ()
HistoryOrderGetTicket ()

Hier stellt sich jedoch die Frage, wie man den Anfang und das Ende der Schleife von IST-Marktaufträgen, die an der IST-Gesamtpositionsbildung beteiligt sind, erfassen kann.

 
Roman Shiredchenko #:

VOLUME_Price = ((OPEN_1 * VOLUME_1) + (OPEN_2 * VOLUME_2) + (OPEN_3 * VOLUME_3)+n) / (VOL_1+VOL_2 + VOL_3 + n), es stellt sich also heraus, dass ich SL noch nicht in BU + 30 Pips auf alle aggregierten Positionen übersetzt habe - sollte ich alle diese Werte in Arrays schreiben? Wenn wir den N-ten Marktauftrag öffnen, müssen wir die gesamte Kette aufrufen, um den Durchschnitt für alle zu berechnen?

Leider ist genau das der Fall.

 

Roman Shiredchenko #:

Average_Price = ((OPEN_1 * VOLUME_1) + (OPEN_2 * VOLUME_2) + (OPEN_3 * VOLUME_3)+n) / (VOL_1 + VOL_2 + VOL_3 + n), so stellt sich heraus, dass ich nicht SL in BU + 30 Pips auf alle aggregierten Position übersetzt haben - sollten alle diese Werte in Arrays oder was zu schreiben? Wenn wir das N-te Marktorder-Slice öffnen, sollten wir diese gesamte Kette erhöhen, um den Durchschnitt für alle zu berechnen?

Oder wir könnten irgendwie mit ihm spielen:

Hier stellt sich jedoch die Frage, wie man den Beginn und das Ende des Zyklus von IST-Marktaufträgen, die an der IST-Gesamtpositionsbildung beteiligt sind, erfasst.

Es reicht aus, den letzten Durchschnittspreis zu speichern.

 
JRandomTrader #:

Es reicht aus, den letzten Durchschnittspreis beizubehalten.

OK, aber wenn ich z.B. ein beliebiges Volumen nachfülle - wie zähle ich es TATSÄCHLICH?
 
Roman Shiredchenko #:
OK, und wenn ich z. B. ein beliebiges Volumen hinzufüge - wie wird es WIRKLICH gezählt?

Ich habe es Ihnen gezeigt: Nehmen Sie den letzten Durchschnittspreis und das Volumen der Position, den Preis des neuen Geschäfts und sein Volumen. Alles wird richtig berechnet.