Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 506

 
Mihail Marchukajtes:

Hallo zusammen!!! Leute, könnt ihr mir sagen, wie ich die Berechnung des Indikators verzögern kann? Ein neuer Balken hat sich geöffnet und der Indikator muss nach 30 Sekunden berechnet werden!!!!!

Ich brauche eine Verzögerung bei der Berechnung des Indikators, es muss 30 sec. warten oder mich beraten, wo es geschrieben ist oder ein Beispiel, ich stolperte überall, ich kann nicht finden :-(

Wozu ist eine Verzögerung gut?

 
Vitaly Muzichenko:

Warum die Verzögerung?


Die Daten von SME werden mit einer Verzögerung von 30 Sekunden geladen. Und manchmal wird der Indikator berechnet und dann werden die Daten geladen, dann kompiliere ich den Indikator neu und er ändert seine Richtung, weil die Daten vollständig geladen werden, im Gegensatz zu den ersten 5 Sekunden des Balkenlebens. In der Regel sind 30 Sekunden ausreichend. Ist es möglich, dies mit dem Indikator zu tun? Ich meine die Verzögerung.....

 
Mihail Marchukajtes:

Die Daten von SME werden mit einer Verzögerung von 30 Sekunden geladen. Und manchmal wird der Indikator berechnet und dann werden die Daten geladen, dann kompiliere ich den Indikator neu und er ändert seine Richtung, weil die Daten vollständig geladen werden, im Gegensatz zu den ersten 5 Sekunden des Balkenlebens. In der Regel sind 30 Sekunden ausreichend. Ist es möglich, dies mit dem Indikator zu tun? Ich meine die Verzögerung.....

Entweder Sie erstellen ein einmaliges Timer-Ereignis,
oder machen Sie es selbst: eine neue Taktzeit wird gespeichert und bei jedem Ticken wird geprüft, ob 30 Sekunden vergangen sind.
 
Aleksey Terentev:
Entweder Sie erstellen ein einmaliges Timer-Ereignis,
oder machen Sie es selbst: eine neue Taktzeit wird gespeichert und bei jedem Ticken wird geprüft, ob 30 Sekunden vergangen sind.

Die Timerfunktion ist nicht ganz klar. Ich habe frühere Ratschläge verwendet, um die folgende Funktion zu erstellen, und jetzt wird der Balken ohne Verzögerungen berechnet. (ohne sie zählt sie überhaupt nicht, bis Sie die TF wechseln)

void OnTimer()
{
   int bars = Bars(_Symbol, _Period);
   if (bars <= 0) return;
   
   datetime T[];
   int res = CopyTime(_Symbol, _Period, 0, bars, T);
   if (res <= 0) return;
   
   // unused params
   double d[];
   long l[];
   int i[];
   OnCalculate(bars, bars - 1, T, d, d, d, d, l, l, i);
   ChartRedraw();
}

Was ist der beste Weg, um es zu arrangieren, können Sie vorschlagen????

 
Mihail Marchukajtes:

Die Daten von SME werden mit einer Verzögerung von 30 Sekunden geladen. Und manchmal wird der Indikator berechnet und dann werden die Daten geladen, dann kompiliere ich den Indikator neu und er ändert seine Richtung, weil die Daten vollständig geladen werden, im Gegensatz zu den ersten 5 Sekunden des Balkenlebens. In der Regel sind 30 Sekunden ausreichend. Ist es möglich, dies mit dem Indikator zu tun? Ich meine die Verzögerung.....

Das erste, was kam:

 int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
 // здесь ваши расчёты 
 int limit=rates_total-prev_calculated;
  if(limit>0) { 
  ...
  }

 // задержим на 30 сек
 if(time[0] > TimeCurrent()-30)
   return(rates_total-1);

 // остальной код
   ...
 
Vitaly Muzichenko:

Das erste, was mir einfiel:


Interessant!!! Geben Sie Ihren Code in den Truthahn, ich werde sehen, was los ist. Aber ich dachte, dass eine solche Verzögerung in onTimer beschrieben werden sollte, oder?

Danke trotzdem!!!
 
Mihail Marchukajtes:

Hallo zusammen!!! Leute, könnt ihr mir sagen, wie ich die Berechnung des Indikators verzögern kann? Ein neuer Balken hat sich geöffnet und der Indikator muss nach 30 Sekunden berechnet werden!!!!!

Ich brauche einen verzögerten Indikator nach 30 Sek. oder einen Hinweis, wo das geschrieben steht oder ein Beispiel, ich bin überall herumgestolpert, ich kann es nicht finden :-(

Warum 30 Sekunden? - Machen Sie das 60 Sekunden lang - d.h. zählen Sie nicht nach dem 1. Takt, sondern nach dem 2. D.h. Sie haben einen neuen 0-Balken, auf den ersten müssen Sie noch 30 Sekunden warten, aber der 2. ist fertig.

Darüber hinaus müssen Sie die Preise optimieren und testen, indem Sie sie öffnen.

 
Review of Econometric Models Applicable to Hedge Fund Returns Capturing Serial Correlation and Illiquidity by Ludovic Dubrana :: SSRN
  • papers.ssrn.com
Hedge Fund returns are often highly serially correlated mainly due to illiquidity exposures given that investments in such securities tend to be inactively traded and associated market prices are not always readily available. Following that, observed returns of such alternative investments tend to be smoother than “true” unobserved returns...
 

Ich habe einen kurzen Blick darauf geworfen. In den Schlussfolgerungen habe ich Informationen gesehen, die für GARCH-Modelle trivial sind. Ich verstehe nicht, was aus diesem Material herausgenommen werden muss?

 
elibrarius:

Warum 30 Sekunden? - Machen Sie es 60 Sekunden lang am Stück - d.h. zählen Sie nicht vom 1. Takt an, sondern vom 2. D.h. der neue 0. Takt ist raus, auf den ersten muss man noch 30 Sekunden warten, aber der 2. ist fertig.

Außerdem führen Sie wahrscheinlich Optimierungen und Tests zu den Eröffnungspreisen durch.


Ich mache es mit Barren! Aber es funktioniert nicht mit der Hauptstrategie, es bedeutet, dass wir den Entscheidungsbalken nach hinten verschieben müssen, was im Widerspruch zur Grundstrategie steht, also keine Option....