Testen von 'CopyTicks' - Seite 3

 

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.

 
Dmitriy Skub:

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". :-)

CopyTicks на медленном рынке
CopyTicks на медленном рынке
  • www.mql5.com
На нём видно, что после получения первых 10 тиков после запуска терминала, CopyTicks перестаёт работать:. - - Категория: автоматические торговые системы
 
Wie ist die Situation mit CopyTicks() jetzt in der 1210er Version?
 
Михаил:
Und jetzt, in der 1210er Version, wie macht sich CopyTicks()?
Alles in Ordnung:Zeckengeschichte
 
Михаил:
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))

 
Dmitriy Skub:

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))

Danke
 

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.


 
zimbabve15:


Ist es eine Epidemie, "Blätter" ohne Code zu veröffentlichen?
 

CopyTicks

//////////////////////////////////////////////////////////////////////////////////////////////////////////

MqlTick tick_array[];

int OnInit()
{
int copied=CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,0,countHistoryTicks);
if(Save_File!=NOT_SAVE)
{
SaveTicksToFile(tick_array);
}
return(INIT_SUCCEED);

}


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);

}

 
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.
Grund der Beschwerde: