На нём видно, что после получения первых 10 тиков после запуска терминала, CopyTicks перестаёт работать:. - - Категория: автоматические торговые системы
Михаил: Und jetzt, im Build 1210, wie ist es mit CopyTicks()?
Es funktioniert fast. Keine Duplikate. Volumina gehen nicht verloren.
Aber die Richtung des Handels in Flaggen fehlt. Die Berechnung von Geld-/Briefkursen ist nicht sehr zuverlässig.
Die tatsächliche Struktur ist alt und weicht von der Beschreibung in der Hilfe ab. Ich verstehe also, dass es sich um ein Zwischenprodukt handelt. Wir warten also wie immer auf die nächste Ausgabe))
Es funktioniert fast. Keine Duplikate. Es fehlen keine Bände.
Aber die Richtung des Handels in Flaggen fehlt. Die Berechnung von Geld-/Briefkursen ist nicht sehr zuverlässig.
Die tatsächliche Struktur ist alt und unterscheidet sich von der in der Hilfe beschriebenen. Ich verstehe also, dass es sich um ein Zwischenprodukt handelt. Wir warten also wie immer auf die nächste Ausgabe))
Broker "Opening"-Tool ED-3.16 linke Tabelle - Tickdaten werden vom Indikator in OnCalculate-Prozedur über SymbolInfoTick-Anfrage geschrieben, rechte Tabelle - über CopyTicks. Struktur von beidem: Zeit, Bid, Ask, Flipper, Volumen, time_msec, Flag.
Warum haben die gleichen Zecken unterschiedliche Lautstärken und Flaggen?
Wenn wir Rohdaten vom Broker mit Null-Flags durch SymbolInfoTick erhalten, dann sieht es so aus, als ob das Terminal den eingehenden Tick verarbeitet und ihm eine Flagge basierend auf dem Vergleich mit dem vorherigen Tick zuweist? Was tun mit den Mengen? Der Unterschied ist signifikant.
Bitte korrigieren Sie Ihren Beitrag(fügen Sie den Code korrekt in das Forum ein). Es wäre gut, wenn Sie zusätzlich zum Code in Ihrer Nachricht die Datei selbst (*.mq5) anhängen würden.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Ich teste nicht, ich erinnere die Entwickler daran. Die Praxis zeigt, dass sie nie überflüssig ist).
Was die Handelsrichtung betrifft, so wird sie in Forts immer von der Börse vorgegeben.
Der derzeit im Terminal verwendete Algorithmus ist dafür nicht geeignet - man muss die Informationen von der Börse übernehmen.
Ich teste nicht, ich erinnere die Entwickler daran. Die Praxis zeigt, dass sie nie überflüssig ist).
Über die Handelsrichtung - auf Festungen wird sie immer von der Börse vorgegeben.
Der Algorithmus, der jetzt im Terminal verwendet wird, ist dafür nicht geeignet - wir müssen unbedingt Informationen aus der Börse nehmen.
Es gibt gerade mehrere Themen über Copyticks (und mqltickinfo), die mit "waiting" enden.
Hier ist zum Beispiel ein weiteres Beispiel:
https://www.mql5.com/ru/forum/61607
Also wirklich: "Warten auf". :-)
Und jetzt, in der 1210er Version, wie macht sich CopyTicks()?
Und jetzt, im Build 1210, wie ist es mit CopyTicks()?
Es funktioniert fast. Keine Duplikate. Volumina gehen nicht verloren.
Aber die Richtung des Handels in Flaggen fehlt. Die Berechnung von Geld-/Briefkursen ist nicht sehr zuverlässig.
Die tatsächliche Struktur ist alt und weicht von der Beschreibung in der Hilfe ab. Ich verstehe also, dass es sich um ein Zwischenprodukt handelt. Wir warten also wie immer auf die nächste Ausgabe))
Es funktioniert fast. Keine Duplikate. Es fehlen keine Bände.
Aber die Richtung des Handels in Flaggen fehlt. Die Berechnung von Geld-/Briefkursen ist nicht sehr zuverlässig.
Die tatsächliche Struktur ist alt und unterscheidet sich von der in der Hilfe beschriebenen. Ich verstehe also, dass es sich um ein Zwischenprodukt handelt. Wir warten also wie immer auf die nächste Ausgabe))
Forum zum Thema Handel, automatische Handelssysteme und Testen von Handelsstrategien
MqlTick
zimbabve15, 2016.02.03 06:15
Broker "Opening"-Tool ED-3.16 linke Tabelle - Tickdaten werden vom Indikator in OnCalculate-Prozedur über SymbolInfoTick-Anfrage geschrieben, rechte Tabelle - über CopyTicks. Struktur von beidem: Zeit, Bid, Ask, Flipper, Volumen, time_msec, Flag.
Warum haben die gleichen Zecken unterschiedliche Lautstärken und Flaggen?
Wenn wir Rohdaten vom Broker mit Null-Flags durch SymbolInfoTick erhalten, dann sieht es so aus, als ob das Terminal den eingehenden Tick verarbeitet und ihm eine Flagge basierend auf dem Vergleich mit dem vorherigen Tick zuweist? Was tun mit den Mengen? Der Unterschied ist signifikant.
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
MqlTick
zimbabve15, 2016.02.03 06:39
FiboFroup broker linke Tick-Tabelleüber SymbolInfoTick , rechte Tabelle über CopyTicks. Struktur von beidem: Zeit, Bid, Ask, Strike, Volumen, time_msec, Flag.
Die Flaggen sind unterschiedlich, da die Geld- und Briefwerte in denselben Ticks auf unterschiedliche Weise geschrieben werden.
CopyTicks
//////////////////////////////////////////////////////////////////////////////////////////////////////////
MqlTick tick_array[];
int OnInit()}
void SaveTicksToFile(MqlTick &massiveTicks[])
{
string filename,file_buffer;
StringConcatenate(Dateiname,Symbol(),".txt");
int file_handle=FileOpen(Dateiname,FILE_READ|FILE_WRITE|FILE_ANSI|FILE_SHARE_READ);
FileSeek(file_handle,0,SEEK_END);
int sizeMassiveTicks=ArraySize(massiveTicks);
int i=0;
while(i<sizeMassiveTicks)
{
StringConcatenate(file_buffer,TimeToString(massiveTicks[i].time,TIME_DATE|TIME_SECONDS)," ",DoubleToString(massiveTicks[i].bid,_Digits)," ",DoubleToString(massiveTicks[i].ask,_Digits)," ",DoubleToString(massiveTicks[i].last,_Digits)," ",IntegerToString(massiveTicks[i].volume,_Digits)," ",IntegerToString(massiveTicks[i].time_msc)," ",IntegerToString(massiveTicks[i].flags,_Digits));
FileWrite(file_handle,file_buffer);
i++;
}
FileClose(file_handle);
}
SymbolInfoTick
////////////////////////////////////////////////////////////////////////
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 &Volumen[],
const int &spread[])
{
MqlTick last_tick;
SymbolInfoTick(Symbol(),last_tick);
TickStruct tick={0,0,0,0,0,0,0};
tick.time=TimeCurrent();
tick.bid=last_tick.bid;
tick.ask=last_tick.ask;
tick.flag=last_tick.flags;
tick.last=last_tick.last;
tick.time_msc=last_tick.time_msc;
tick.volume=last_tick.volume;
int total=ArraySize(g_ticks);
if(ArrayResize(g_ticks,total+1,1000)<0)
{
Alert(": der Indikator hat nicht genug Speicherplatz, um die nächsten Tickdaten zu speichern;)
}
sonst
{
g_ticks[total]=tick;
UpTick[rates_total-1]=total;
}
if(gesamt>999)
{
SaveTempTicks();
ArrayFree(g_ticks);
}
return(rates_total);
}
void SaveTempTicks()
{
// Erstellung der Tick-History-Datei
int hTicksFile=FileOpen(Symbol()+"fullTicks.tks",FILE_BIN|FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE);
if(hTicksFile<1)
Rückkehr;
FileSeek(hTicksFile,0,SEEK_END);
// Datensatz
int total=ArraySize(g_ticks),i=0;
while(i<Gesamt)
{
if(FileWriteStruct(hTicksFile,g_ticks[i])==0)
{
Print("Das Speichern von Daten in einer temporären Datei ist fehlgeschlagen...");
Rückkehr;
}
i++;
}
FileClose(hTicksFile);
}