Impulse - Seite 21

 
Karputov Vladimir:
  1. Gut. Die Tick-Ankunftszeit kann nicht in Inkrementen, sondern direkt in Mikrosekunden seit dem Start des MQL5-Programms aufgezeichnet werden. Letztere berechnet die Pausen zwischen den Ticks, wenn sie benötigt werden.
  2. Das zweite Feld ist dann der Preis des Arrays close[] - das ist Bid.
  3. Ich habe einige Zweifel an Ask. Lohnt es sich, sie zu erhalten? Der Indikator empfängt spread[]-Array - es kann geschrieben werden. Die Person, die es braucht, wird Ask berechnen.
  4. Dateiname in diesem Format: Data_ticks_GBPUSD.f_2015.07.20 16_02_36.csv

Hinzugefügt: Dies stellt sich als eine Tabelle wie diese heraus:

Keine Abwärtskompatibilität mit Terminalversionen. Für MT4 muss es komplett neu erstellt werden. Was hindert Sie daran, das Datum und nicht eine synthetische Zeit zu erfassen? Sie können das Datum mit allem verknüpfen und es ohne Neuberechnung verwenden. Warum sollte man es in Zukunft absichtlich vermasseln? Du weißt nicht, was du sonst noch mit der Zeit anfangen sollst... Und auch hier müssen wir nachrechnen/umrechnen ...

Was hindert uns daran, den aktuellen Ask anstelle des Arrays spread[] zu schreiben, das in MT4 nutzlos ist? Schneiden Sie sich absichtlich den Fuß bis zum Hals ab? :)))

 

Ja. Dies ist das Dateiformat:

Время тика, микросекунд Время тика, секунд      Bid             Ask
76718                   20.07.2015 18:09        1.55962         1.55981
76838                   20.07.2015 18:09        1.55962         1.55981
190796                  20.07.2015 18:09        1.55961         1.55980
533045                  20.07.2015 18:09        1.55960         1.55979
989364                  20.07.2015 18:09        1.55961         1.55980
2058082                 20.07.2015 18:09        1.55960         1.55979
2397266                 20.07.2015 18:09        1.55961         1.55980
3498990                 20.07.2015 18:09        1.55962         1.55981
5276197                 20.07.2015 18:09        1.55962         1.55981
5276318                 20.07.2015 18:09        1.55962         1.55981
5714501                 20.07.2015 18:09        1.55967         1.55986
5825529                 20.07.2015 18:09        1.55968         1.55987
5825630                 20.07.2015 18:09        1.55968         1.55987
6095716                 20.07.2015 18:09        1.55969         1.55988
6419932                 20.07.2015 18:09        1.55968         1.55987
6795191                 20.07.2015 18:09        1.55969         1.55988
6972306                 20.07.2015 18:09        1.55968         1.55987
7017356                 20.07.2015 18:09        1.55967         1.55986
Ist es gut?
 
Roman Shiredchenko:

Wenn Sie noch etwas zu diesem Thema hinzufügen möchten...

Es gibt einen Link zu einem Video - sie haben ihn gelöscht, weil sie dachten, es sei Werbung.

Wie kann ich die Scalping-Strategie, für die ich die Indikatoren schreibe, weitergeben?

Wie kann ich das Youtube-Video in "Interessante Videos im Juli" platzieren?

Ich werde den Link nicht veröffentlichen - ich werde ihn an Google schicken: "Die Hauptmerkmale der"Forex Speedometer" Strategie sind das Fehlen von Indikatoren und die Einfachheit des Handels. Art der Strategie - Scalping. Die Strategie kann auf jedes Währungspaar angewendet werden, aber es ist ratsam, sehr volatile Paare mit einem geringen Spread zu wählen."

------------------------------------------------------------------------------------------

Dieses Thema wurde auch hier angesprochen. Wie wird die Ankunftszeit jedes Ticks im Array gezählt und wie wird die Geschwindigkeit gezählt...

Es ist klar, dass es Varianten gibt. Es ist klar, dass die Zeit jedes gefangenen Ticks in Millisekunden sichtbar sein wird... (Wie kann man das hinterher nutzen? vielleicht...)

Artem schreibt wieder für die besonders Begabten... :-)

Dort wird angeboten, genau die Ticks pro Sekunde zu zählen - auch hier wurde eine solche Variante angeboten...

Es gibt noch eine andere Frage: Wie kann man das testen? Die ndd-Konten meines Brokers mit min. Spread haben keine Demo. Wenn ich das Demo- und das Echtgeldkonto meines Forex-Brokers nutzen wollte, hätte ich die Anzahl der Ticks überprüft - es ist die gleiche...

D.h. die Frage wird sein, wie man programmatisch die Daten auf virtuelle Geschäfte in csv-Datei eexcel und Zecken gesammelt verarbeiten... von echten Konten.

Die Frage wird sein, die gesammelten Daten für die virtuellen Trades, in csv-Datei in eexsv und Ticks aus den realen Konten zu verarbeiten... :-)

Wie kann ich die Ticks in der csv-Datei in den Verlauf des MT4-Strategietesters einbetten?

Ich habe vor nicht allzu langer Zeit etwas Ähnliches versucht (nicht diese Strategie, ich habe meine erfunden), aber ich habe es aufgegeben. Ich muss ein solches System in Echtzeit testen, da der Tester nur Ticks simuliert. Ich habe den Expert Advisor zwei Stunden lang beobachtet, dann habe ich den Code für 5 Minuten kopiert und so weiter, und dann wurde mir langweilig. Die Ergebnisse sind nicht sehr gut, viele Geschäfte mit kleinen Gewinn, aber ein Stoploss überwiegt oft alle Gewinne. Als Alternative sollte man Martingale verwenden, um die Anhäufung von Verlusten auf dem Eigenkapital zu vermeiden. Ich habe einen Expert Advisor auf einem Martin ohne das, und seine Implementierung ist viel einfacher.
 

Die Grundlage für die Erfassung von Zecken ist vorhanden.

//+------------------------------------------------------------------+
//|                                             IndTickCollector.mq5 |
//|                              Copyright © 2015, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.01"
#property indicator_chart_window
#property description "Индикатор хранит тики. Время тика, микросекунд, Время тика, секунд , Bid, Ask"
#property indicator_buffers 0
#property indicator_plots   0
//+------------------------------------------------------------------+
//| Индикатор расчитывает скорость прихода тиков.                    |
//+------------------------------------------------------------------+
//--- parameters
int file_handle; // хэндл файла
string FileName; // имя файла
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- open file
//--- время начала сбора тиков - текущее
   datetime time_start=TimeCurrent();
//--- откроем файл для записи значений индикатора (если его нет, то создастся автоматически)
   ResetLastError();
   FileName="Data_ticks_"+Symbol()+"_"+TimeToString(time_start,TIME_DATE|TIME_MINUTES|TIME_SECONDS)+".csv";
   StringReplace(FileName,":","-");
   file_handle=FileOpen(FileName,FILE_READ|FILE_WRITE|FILE_CSV);
   if(file_handle!=INVALID_HANDLE)
     {
      PrintFormat("Файл %s открыт для записи",FileName);
      PrintFormat("Путь к файлу: %s\\MQL5\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
      //--- запишем название колонок
      FileWrite(file_handle,"Время тика, микросекунд","Время тика, секунд","Bid","Ask");
     }
   else
      PrintFormat("Не удалось открыть файл %s, Код ошибки = %d",FileName,GetLastError());
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,      // размер массива price[]
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const int begin,            // откуда начинаются значимые данные
                 const double& price[]       // массив для расчета
                 )
  {
   ulong microsecond_count=GetMicrosecondCount(); // зафиксировали вход в OnCalculate()
   int start=0;
   if(prev_calculated!=0) // работаем только на пришедших тиках, так как на истории нет времени тиков
     {
      MqlTick last_tick;
      //---
      if(SymbolInfoTick(Symbol(),last_tick))
        {
         FileWrite(file_handle,microsecond_count,last_tick.time,
                   DoubleToString(last_tick.bid,Digits()),DoubleToString(last_tick.ask,Digits()));
        }
      else Print("SymbolInfoTick() failed, error = ",GetLastError());
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- закрываем файл
   FileClose(file_handle);
   PrintFormat("Данные записаны, файл %s закрыт",FileName);
//--- очищаем комментарии
   Comment("");
  }
//+------------------------------------------------------------------+


Format des Dateinamens:

Data_ticks_GBPUSD.f_2015.07.21 12-06-14.csv

Die Datei hat vier Spalten:

Время тика, микросекунд Время тика, секунд      Bid             Ask
76718                   20.07.2015 18:09        1.55962         1.55981
76838                   20.07.2015 18:09        1.55962         1.55981
190796                  20.07.2015 18:09        1.55961         1.55980
533045                  20.07.2015 18:09        1.55960         1.55979
989364                  20.07.2015 18:09        1.55961         1.55980


Es bleibt die Frage offen, wie oft neue Dateien angelegt werden sollen. Ich denke, jede Datei sollte jede Stunde gestartet werden. Das erleichtert die spätere Analyse.

 
Karputov Vladimir:

Die Grundlage für die Erfassung von Zecken ist vorhanden.

Format des Dateinamens:

Die Datei hat vier Spalten:

Es bleibt die Frage offen, wie oft neue Dateien angelegt werden sollen. Ich denke, jede Datei sollte jede Stunde gestartet werden. Auf diese Weise lassen sich die Daten später leichter auswerten.

Es ist technisch nicht optimal. Zunächst einmal: Warum schreibt man Mikrosekunden? Dieses Format ist besser:

Время, DD.MM.YYY HH:mm:ss:sss     Bid    Ask
20.07.2015 18:09:323            1.55962  1.55981 

Das CSV-Format sollte zu Gunsten von XML aufgegeben werden. Die Aufgabe der Serialisierung von Object To Xml <--> XML To Object Daten ist offensichtlich. Bei Bedarf lassen sich leicht neue Parameter hinzufügen. Natürlich nach Tagen zu speichern. 1 Datei - 1 Tag der Zeckenhistorie.

 
Was die Idee selbst angeht, so ist sie natürlich völliger Unsinn (bei allem Respekt). Sie machen eine Identität zwischen Volatilität und Momentum (Richtungsbewegung). Dies ist jedoch grundlegend falsch. Es gibt praktisch keinen solchen Zusammenhang und daher führt der gewählte Ansatz ins Leere.
 
Vasiliy Sokolov:
Was die Idee selbst betrifft, so ist sie natürlich völliger Unsinn (bei allem Respekt). Sie machen eine Identität zwischen Volatilität und Momentum (direktionale Bewegung). Dies ist jedoch grundlegend falsch. Es gibt praktisch keinen solchen Zusammenhang und daher führt der gewählte Ansatz ins Leere.

Das Wichtigste ist, Daten über Tics zu sammeln. Das ist sozusagen die Grundlage der Forschung. Und schon auf dieser Grundlage können verschiedene Modelle getestet werden.

Hinzugefügt: Und ja, es gibt immer noch keine klare Definition des Begriffs "Impuls".

 
Karputov Vladimir:

Das Wichtigste ist, Daten über Tics zu sammeln. Dies ist sozusagen die Grundlage der Forschung. Und schon auf dieser Grundlage können verschiedene Modelle getestet werden.

Hinzugefügt: Und ja, es gibt immer noch keine klare Definition des Begriffs "Impuls".

Genauer gesagt: Es gibt hier keine notwendige klare Formulierung... und immerhin ist es eine Basis, eine wirklich notwendige Basis... ohne eine solche Formulierung wird alles wackelig, wackelig...

Eine solche klare Formulierung gibt es zum Beispiel in der Impulstechnik. Ich habe vorhin ein Beispiel genannt. Natürlich können Sie sich nicht auf ein einziges Bild beschränken. Diese Theorie ist sehr umfangreich und wird für die Anwendung in diesem Fall sehr nützlich sein.

 

Ich werde noch einmal versuchen, meinen Standpunkt klar zu machen...

Das Bild ist zwar sehr grob, aber es vermittelt dennoch eine Vorstellung:



Die Impulsparameter - Variablen - müssen spontan bestimmt werden.

 
Олег avtomat:

Ich werde versuchen, meinen Standpunkt noch einmal zu erklären...

Das Bild ist zwar sehr grob, aber es vermittelt dennoch eine Vorstellung:



Die Parameter - Variablen - der Impulse sollten im laufenden Betrieb festgelegt werden.

Oleg, wo ist der Puls auf diesem Bild? Dann zerlegen Sie sie in Tick-Zeit-Komponenten, anstatt ein Diagramm der Tage vorzuschlagen.
Grund der Beschwerde: