Aktienmarkt. Bestände. Geschwindigkeit der Ausführung von Handelsaufträgen. - Seite 8

 
Replikant_mih #:

Kann was nicht?) Das beste Angebot - 10,1, werfe ich eine Grenze zu kaufen bei 11, sammeln die gesamte Tasse zu 11, wenn das Volumen in der Tasse zu 11 ist nicht genug, um die gesamte Anwendung zu erfüllen, oder irgendwo in der Mitte zu stoppen. Wenn es notwendig ist, dass es genau erfüllt wird, nun ja, um einen größeren Slam zu machen und das ist alles. Wenn ich wollte, dass mein Auftrag genau ausgeführt wird, müsste ich den Höchstpreis anheben und einen Preis irgendwo vor diesem Preis festlegen. Im Allgemeinen ist es für mich eher ein Signal, dass ich etwas falsch mache, wenn ich das gesamte Glas bis in eine große Tiefe streiche))).


IOC - nun, man führt alles durch, was im Weg steht, und entfernt dann den Rest. So viel zum IOC). Ich handele nicht mit Arbitrage, vielleicht verstehe ich einige Besonderheiten nicht. Wenn Sie alle Anträge bis zu einem gewissen Grad aufessen wollen - nun, Sie können beobachten, welches Volumen da ist, und Rosno so viel zuwerfen, wenn Sie mit der Variante des Restentzugs nicht zufrieden sind. Kurz gesagt, die Aufgabe ist für mich nicht klar).

Ich habe schon gesagt, dass ich das in Quick mache.

procedure TExpert.SellBuySpot;
var
  outStr, id: string;
  res: long;
  ErrCode: long;
  ErrSize: Dword;
  ErrStr: LPSTR;
  Dt: TDateTime;
begin
  FOrder:= 0;
  FTransID:= GetTransID();
  id:= IntToStr(TransID);
  case BuySell of
    1: outStr:= 'ACCOUNT=' + ExpData.SpotAccaunt + '; CLIENT_CODE=' +
               ExpData.Client + '; TYPE=L; TRANS_ID=' + id + '; CLASSCODE=' +
               ExpData.SpotData.ClassCode + '; SECCODE=' + ExpData.SpotData.SecCode +
               '; ACTION=NEW_ORDER; OPERATION=B' + '; PRICE=' +
               FloatToStr(ExpData.SpotData.SellPrice + 10 * ExpData.SpotData.Step) +
               '; QUANTITY=' + FloatToStr(aVol) + ';';
    2: outStr:= 'ACCOUNT=' + ExpData.SpotAccaunt + '; CLIENT_CODE=' +
               ExpData.Client + '; TYPE=L; TRANS_ID=' + id + '; CLASSCODE=' +
               ExpData.SpotData.ClassCode + '; SECCODE=' + ExpData.SpotData.SecCode +
               '; ACTION=NEW_ORDER; OPERATION=S' + '; PRICE=' +
               FloatToStr(ExpData.SpotData.BuyPrice - 10 * ExpData.SpotData.Step) +
               '; QUANTITY=' + FloatToStr(aVol) + ';';
  end;
  ErrCode:= 0;
  ErrSize:= 0;
  ErrStr:= nil;
  res:= T2QSendASyncTrans(LPSTR(AnsiString(outStr)), ErrCode, ErrStr, ErrSize);
  if(res <> TRANS2QUIK_SUCCESS) then
  begin
    FTransID:= 0;
    FTransBusy:= false;
  end else
  begin
    Dt:= now();
    FMemo.Lines.Add(DateToStr(Dt) + ' ' + FormatDateTime('hh:mm:ss.zzz', Now()) +
                              ' --> Ордер ' + ExpData.SpotData.SecCode + ' отправлен.');
  end;
end;

Aber manchmal (was selten vorkommt) bleibt die Ordnung im Glas, deshalb

Man muss sie entfernen, eine neue einstellen und sie erneut ansehen - all das kostet zu viel Zeit.

Außerdem kann er sich schließen, bevor Sie ihn ausziehen können!

Deshalb ist das IOC am zuverlässigsten, aber es ist nicht vor Ort.

Bei der Arbitrage ist alles ganz einfach: Wenn Sie 100 Einheiten einer Seite gekauft haben, müssen Sie sofort 100 Einheiten einer anderen Seite verkaufen (das Schlüsselwort SOFORT).

Die Herausforderung besteht also darin, so schnell wie möglich einen Gegenhandel zum richtigen Preis und Volumen zu tätigen.

Hinzugefügt von

In MT-5 ist alles viel einfacher, schneller und es gibt Optionen

Es ist zum Beispiel kein Problem, das SPOT-Deck durchzugehen und nicht den besten Preis auf einmal zu nehmen, nachdem das Gesamtvolumen des gewählten Preises + der vorherigen (besten) Preise berechnet wurde.

Deshalb war ich besorgt über die Geschwindigkeit der Ausführung von Handelsaufträgen auf dem Stock in MT-5.

Dennoch gibt es keine Garantie dafür, dass sich der Markt dramatisch verändert, und wenn Sie den Preis zu tief nehmen, können Sie die Arbitrage-Situation verlassen!

In Quick lag die Transaktionsgeschwindigkeit auf SPOT zwischen 240 und 490 ms, mit einem Ping von 3-4 ms!

Bei FORTS dauert die Transaktion bei gleichem Ping zwischen 4,5 und 12 ms.

Leider müssen Sie aufgrund der geringen Liquidität von Forts zuerst die Futures verkaufen.

 
prostotrader #:

Ich habe bereits gesagt, dass ich das in Quick mache.

Aber manchmal (es ist selten, aber es kommt vor) bleibt die Ordnung im Glas, deshalb

Deshalb muss ich sie abnehmen, eine neue einstellen und sie noch einmal ansehen - all das kostet zu viel Zeit.

Außerdem kann er sich schließen, bevor Sie ihn ausziehen können!

Deshalb ist das IOC am zuverlässigsten, aber es ist nicht vor Ort.

Bei der Arbitrage ist alles ganz einfach: Wenn Sie 100 Einheiten einer Seite gekauft haben, müssen Sie sofort 100 Einheiten einer anderen Seite verkaufen (das Schlüsselwort SOFORT).

Die Herausforderung besteht also darin, so schnell wie möglich einen Gegenhandel zum richtigen Preis und Volumen zu tätigen.

Hinzugefügt von

In MT-5 ist alles viel einfacher, schneller und es gibt Optionen

Es ist zum Beispiel kein Problem, das SPOT-Deck durchzugehen und nicht den besten Preis auf einmal zu nehmen, nachdem das Gesamtvolumen des gewählten Preises + der vorherigen (besten) Preise berechnet wurde.

Deshalb war ich besorgt über die Geschwindigkeit der Ausführung von Handelsaufträgen auf dem Stock in MT-5.

Dennoch gibt es keine Garantie dafür, dass sich der Markt dramatisch verändert, und wenn Sie den Preis zu tief nehmen, können Sie die Arbitrage-Situation verlassen!

In Quick lag die Transaktionsgeschwindigkeit auf SPOT zwischen 240 und 490 ms, mit einem Ping von 3-4 ms!

Bei FORTS dauert die Transaktion bei gleichem Ping zwischen 4,5 und 12 ms.

Leider müssen Sie aufgrund der geringen Liquidität von Forts zuerst die Futures verkaufen.


Ich hab's.
Ist es real, die Aktie gegen die Futures auf mt5-Quik zu arbitrieren? Oder brauche ich eine "intellektuelle" Komponente, um mit meinen schnellen Kollegen mithalten zu können?

 
Replikant_mih #:


Ich hab's.
Ist es realistisch, die Aktie gegen die Futures mit mt5-Quik-Geschwindigkeit zu arbitrieren? Oder brauche ich eine "intellektuelle" Komponente, um mit den schnellen Kollegen mithalten zu können?

Wenn nur Classic, dann Quick ist gut genug, und wenn, wie ich will versuchen, Scalping, dann brauche ich mindestens MT-5 (2 Terminals)

 
prostotrader #:

Wenn nur Classic, dann Quick ist gut genug, und wenn, wie ich will versuchen, Scalping, dann brauche ich mindestens MT-5 (2 Terminals)

2 weil der Broker es nicht erlaubt, Aktien und Futures in einem Terminal zu handeln (wie bei Otkritie) oder weil alles in Ihrer Terminalverbindung funktioniert und es nicht nötig sein wird, etwas zu ändern? Nur mt5-mt5 anstelle von mt5-Quik.

 
Replikant_mih #:

2 weil der Broker Ihnen nicht erlaubt, sowohl Aktien als auch Futures in einem Terminal zu handeln (wie Otkritie) oder weil alles in Ihrer Terminalverbindung funktioniert und Sie daher nichts umstellen müssen? Es wird einfach mt5-mt5 anstelle von mt5-Quik sein.

Nein, es ist jetzt nur schnell, ich habe angefangen, mt5 zu schreiben - mt5

Hinzugefügt von

Nun, da haben Sie es, geschrieben.

Es ist noch nicht klar, wann es möglich sein wird, diese zu testen...


 
prostotrader #:

Nein, jetzt nur Quick, ich habe angefangen MT5 zu schreiben - MT5

Hinzugefügt von

Nun, hier ist sie, geschrieben.

Es ist noch nicht klar, wann es möglich sein wird, sie zu testen...


Herzlichen Glückwunsch!

Und wie planen Sie - für jedes Paar von Spot-Futures Ihren EA oder einen EA für alle Paare?

 
Andrey Miguzov #:

Herzlichen Glückwunsch!

Wie planen Sie - für jedes Paar von Spot-Futures einen anderen EA oder einen EA für alle Paare?

Mein eigenes Client-Server-Set für jedes Paar

Warum der Aufwand, alle Futures und SPOTs mit einem EA zu verfolgen?

Der EA ist im Grunde nur ein (Client), der Server ist nur ein Darsteller - eine Krücke für den Kauf von SPOTs :)

Hinzugefügt

Advisor - der Client sendet (empfängt) automatisch alle erforderlichen Daten an den (vom) Server.

Es spielt keine Rolle, welches Paar, der Advisor stellt sich automatisch auf das Futurespot-Paar ein.

 
prostotrader #:

Warum der Aufwand, alle Futures und SPOTs mit einem EA zu verfolgen?

Ehrlich gesagt, haben mich Ihre Screenshots von meinem persönlichen Konto bei Otkritie sehr inspiriert, und ich bin immer noch dabei, den Expert Advisor für den Handel mit Futures-Aktien zu debuggen (kein Scalping, sondern die Klassiker im Head-on-Modus).

Der logische Ansatz ist, das Paar mit einem größeren Gewinn vor dem Verfall einzugehen (unter Berücksichtigung der Kommission und der tatsächlichen Anzahl der Kontrakte).

Daher müssen wir alle tatsächlichen Paare analysieren. Wenn man für jedes Paar einen EA einstellt, werden sie unabhängig voneinander arbeiten.

Das Kopfzerbrechen ist in der Tat vorhanden, vor allem, wenn man die Positionen eines Paares schließt und zu einem anderen wechselt. Außerdem glaube ich, dass es sich verlangsamen wird, wenn es viele Paare gibt.


ZZZ: In Anbetracht des derzeitigen Wertes der Kurse wird die Rentabilität einer solchen Strategie in naher Zukunft noch größer sein, wenn die Börse natürlich geöffnet wird :)

Ich sehe aus dem Video + Sie selbst schrieb, dass Sie für Scalping schreiben. Ist der durchschnittliche Ein- und Ausstieg - ist es der durchschnittliche EMA (Link) oder sind Sie Durchschnitt es irgendwie anders (wenn es nicht ein Geheimnis ist)?

 
Andrey Miguzov #:

Handelt es sich bei der durchschnittlichen Eingabe und Ausgabe um den durchschnittlichen EMA (Link) oder bilden Sie den Durchschnitt auf eine andere Weise (wenn es kein Geheimnis ist)?

Es gibt kein Geheimnis, ich berechne einfach jedes Mal den Durchschnitt, wenn ich die Funktion aufrufe

exp_data.midle_enter = exp_data.midle_enter * exp_data.m_ent_cnt;
  exp_data.m_ent_cnt++;
  exp_data.midle_enter = (exp_data.midle_enter + result)/exp_data.m_ent_cnt; 

exp_data.midle_exit = exp_data.midle_exit * exp_data.m_exit_cnt;
  exp_data.m_exit_cnt++;
  exp_data.midle_exit = (exp_data.midle_exit + result)/exp_data.m_exit_cnt;

Diese Daten werden benötigt, um das Preisniveau dieses Paares zu verstehen.

 
prostotrader #:

Es gibt kein Geheimnis, ich berechne einfach jedes Mal, wenn die Funktion aufgerufen wird, den Durchschnitt.

Ich brauche diese Daten, um das Preisniveau eines bestimmten Paares zu verstehen.

Verstehe, wenn man es so ausdrücken will, ist esdie SMA. Doch je weiter der Berechnungsbeginn zurückliegt, desto weiter weicht der Durchschnittswert vom aktuellen Wert ab.

Grob gesagt "vergisst" diese Methode der Mittelwertbildung die alten Werte nicht, da exp_data.m_ent_cnt mit jedem Aufruf mehr und mehr zunimmt und jeder neue Wert immer weniger Einfluss auf das Endergebnis hat.

Nach meinen Beobachtungen ändert sich der Durchschnittswert im Laufe des Tages und ist recht empfindlich.

Theoretisch sollte EMA besser für Scalping geeignet sein, der Code sieht ungefähr wie folgt aus:

double EMA_period = 100.0; //Период ЕМА для усреднения, тиков
double SmoothFactor = 2.0/(1.0+EMA_period);
 
if (EMA_ask<0) EMA_ask=ask; //первый тик
   else
  EMA_ask=ask*SmoothFactor+EMA_ask*(1.0-SmoothFactor);