Von der Theorie zur Praxis - Seite 855

 
Aleksey Nikolayev:

Leider ist das nicht so einfach. Es gibt das Problem der "unendlichen Absenkung". Jede (noch so große) Absenkung wird in unendlicher Zeit mit der Wahrscheinlichkeit eins erreicht.

wir werden also nicht mit "unendlicher Zeit" handeln)
 
Maxim Kuznetsov:


PS. In den meisten abstrakten "Unendlichkeitsspielen" gibt es einen großen Fehler - das Kriterium für das Verlieren ist definiert (0 erreicht), aber es gibt keinen Gewinn.

Aber setzt man sich selbst ein Erfolgskriterium?

 
Alexander_K:

Aaaaaa.... Auf dem Protokoll.... Nein, ich habe nichts gefunden und bin davon weggegangen. Einige wichtige Informationen sind verloren gegangen, ich kann nicht sagen, welche, aber etwas ist für immer verloren - das ist eine Tatsache.

Ein Tick ist eine Minute - er gibt an, um wie viel sich der Kurs in einer Minute bewegt hat (Geschwindigkeit). Ein Tick ist die minimale Kursveränderung. 10 Ticks - 10 Kursänderungen. Sie wissen nicht, wie lange sie gedauert haben. Der Nachteil von Ticks ist, dass sie die Intensität des Handels nicht berücksichtigen.
 
multiplicator:
Wir werden also nicht mit "unendlicher Zeit" handeln.)

Natürlich werden wir das nicht tun - nach einem ausreichend großen Rückschlag werden wir entscheiden, dass das Spiel ein Verlustgeschäft geworden ist. Der Punkt bei der Aussage "unendliche Absenkung" ist, dass sie unvermeidlich ist.

 
multiplicator:
Der Nachteil von Ticks ist, dass sie die Geschwindigkeit nicht anzeigen. Eine Minute gibt an, wie viel sich der Preis in einer Minute bewegt hat (Geschwindigkeit). Ein Tick ist eine minimale Preisänderung. 10 Ticks - 10 Preisänderungen. Sie wissen nicht, wie lange sie gedauert haben. Der Nachteil von Ticks ist, dass sie die Intensität des Handels nicht berücksichtigen.

Völlig richtig.

Im Allgemeinen lässt sich der Markt zwar unter bestimmten Einschränkungen recht gut durch Modelle stochastischer Prozesse beschreiben, doch das Problem der Datenerfassung und -verarbeitung ist ein Eckpfeiler.

Erinnern Sie sich daran, dass die klassische Methode zur Beobachtung der Bewegung eines Brownschen Teilchens darin besteht, in regelmäßigen Abständen - nach 30 Sekunden - Daten zu sammeln. (wie bei Perrin), oder nach 10 Sekunden. (wie sie es jetzt in Chemielabors tun).

Der grundlegende Unterschied zwischen der Brownschen Bewegung und der Preisbewegung besteht jedoch darin, dass sich die Moleküle kontinuierlich bewegen (kontinuierliche Zeit), während die Preise Lücken in der Bewegung aufweisen (diskrete Zeit).

Es muss also ein Gleichgewicht zwischen dem gewählten Zeitintervall für den Datenempfang und der Möglichkeit des Verlusts wichtiger HIGH/LOW-Daten bestehen.

Ein gewisser Bass, der Kartoffeln gegessen hat, empfiehlt, alle 1 Sekunde Daten zu erfassen und festzustellen, ob es sich um eine neue Zecke handelt oder nicht.

Aber da er unter Narkose steht, weil er Wurzelgemüse gegessen hat, vergisst er, dass in diesem Fall die Verteilung der Inkremente aufgrund von Pseudo-Anführungszeichen eine "falsche" Spitze bei Null hat und die ganze Aussagekraft statistischer Studien zum Teufel geht.

Daher ist es am besten, entweder mit jedem Tick zu arbeiten oder eine Kompromisslösung zu finden - je nach DC alle 3-5 Sekunden zu lesen.

Das Problem der Gralssuche ist sicherlich sehr komplex, und die Methode des Datenempfangs/der Datenverarbeitung ist eine der wichtigsten.

Nicht umsonst halten einige neuronale Netzwerker, wie Alexey der Jüngere oder Warlock, diese Methoden absolut geheim, und einige Leute zahlen sogar dafür, dass sie Tick-Kurse ohne Broker-Filter erhalten. Können Sie sich das vorstellen? Es ist verrückt.

 
Alexander_K:....... und einige zahlen Geld für die Annahme von Zeckenangeboten ohne Gleichstromfilter. Können Sie sich das vorstellen? Es ist verrückt.

Die Händler zahlen nicht für ein Angebot, sondern für die Miete von Platz auf der Angebotsseite.

Die Händler zahlen für einen Kostenvoranschlag, damit sie nicht bei ihm gewinnen.

 
multiplicator:
Der Nachteil von Ticks ist, dass sie keine Geschwindigkeit anzeigen. Eine Minute gibt an, wie viel der Preis in einer Minute vergangen ist (Geschwindigkeit), und ein Tick ist die minimale Preisänderung. 10 Ticks sind 10 Preisänderungen, von denen Sie nicht wissen, wie lange sie gedauert haben.
Wie kann man die Geschwindigkeit berücksichtigen, wenn sie exponentiell verteilt ist, genau wie die Inkremente selbst, es ist ein Prozess ohne Folgen. Ist es möglich, die Geschwindigkeit eines Busses zu berechnen, indem man an einer Haltestelle steht und auf einen Bus wartet, wenn die Zeitabstände zwischen der Ankunft des nächsten Busses exponentiell verteilt sind? Es gibt keine Abhängigkeiten.
 
Novaja:
Wie kann man die Geschwindigkeit berücksichtigen, wenn sie exponentiell verteilt ist, ebenso wie die Inkremente selbst, es ist ein Prozess ohne Nachdenken. Ist es möglich, die Geschwindigkeit eines Busses zu berechnen, indem man an einer Haltestelle steht und auf einen Bus wartet, wenn die Zeitabstände zwischen der Ankunft des nächsten Busses exponentiell verteilt sind? Es gibt keine Beziehung.

Oh, das ist elementar.

Nehmen Sie zum Beispiel einen 15-Minuten-Balken und betrachten Sie das Terminalvolumen iVolume

und innerhalb jedes Ticks iVolume=1, wenn es eine Preisänderung gab, ansonsten 0 (Null)

Geschwindigkeit = Weg/Zeit = Volumen/Zeit

Daher ist es physikalisch nicht sinnvoll, Ticks nach Exponenten oder einmal pro Sekunde zu lesen.

Die Bedeutung ist nur das Lesen von Ticks mit verändertem Preis, d.h. wir sind an einem einzigen Vektor interessiert

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Bugs und Verbesserungen an CopyTicks() und CopyTicksRange() nach Build 1485.

Alexey Volchanskiy, 2016.12.01 02:57

Ich glaube, es ist nur ein Fehler in der Web-Dokumentation, in ME ist sie noch leer. Oder die Funktion ist noch in der Entwicklung. Zweitens: Sie fordern Daten von irgendwoher aus dem Jahr 1970 an und wundern sich, dass die Zecken aus dem letzten Jahrhundert nicht zurückkommen ))!!! Was rauchen Sie da?

So funktioniert es.

void OnStart()
{
    datetime dt1 = D'2016.11.28 00:00:00', dt2 = D'2016.11.30 00:00:00';
    MqlTick ticks[];
    ulong start, msc;
    //--- Замеряем время старта перед получением тиков
    start=GetMicrosecondCount();
    int copied = CopyTicksRange( _Symbol, ticks, COPY_TICKS_ALL, dt1*1000, dt2*1000);
//--- Рассчитаем, за сколько мс получена история
    msc=GetMicrosecondCount()-start;
    Print("copied=", copied, "   msc=", msc);
    return;
}

// вывод
2016.12.01 04:52:08.134 TestCopyTicks (EURUSD.m,M15)    copied=333081   msc=1294871
2016.12.01 04:52:16.877 TestCopyTicks (EURUSD.m,M15)    copied=333081   msc=318596

***

In diesem Code ändern Sie COPY_TICKS_ALL in COPY_TICKS_INFO
Die Ticks werden in das Tick-Array geladen
 
Das Problem mit den Minuten ist, dass man die absolute Anzahl der Inkremente innerhalb eines Balkens nicht berechnen kann. iVolume hilft nicht weiter, da die Ticks unterschiedlich sein können.
 
Evgeniy Chumakov:
Das Problem bei Minutenbalken ist, dass man die absolute Summe der Inkremente innerhalb des Balkens nicht zählen kann. iVolume hilft nicht weiter, da der Tick unterschiedlich sein kann.

Nicht ins Fettnäpfchen treten, denn ich war an der Geschwindigkeit interessiert.

ein einminütiger Balken bildet sich jedoch nicht jede Minute

Deshalb habe ich M15 vorgeschlagen.

Darüber hinaus zeigen die Tests, dass die Puppe ab H4 nahezu unschädlich ist.