2013.01.19. 21:27
Market Replay
A sorozat következő tagjaként a market replay adatok letöltéséről fogok néhány szót ejteni.
A megfelelő replay adatokon való tesztelés fontos lehet egy stratégia tesztelése során , ugyanis ezzel a módszerrel véleményem szerint pontosabb képet kaphatunk az általunk megírt robot működéséről, könnyebben kiderülhetnek rejtett hibái.
Market Replay adatokhoz a következő módon juthatunk(File-Utilities- Download Replay Data):
Ekkor kapjuk meg a következő pop – up ablakot , ahol beállíthatjuk a letölteni kívánt instrumentumunkhoz tick adatokat.
És Itt jön a fő ok amiért fontosnak tartottam a cikk megírását: Mint ahogy a fenti képen láthatjuk sajnos csak 1 napra visszamenőleg tudjuk letölteni az adatokat. Ha 1 , netalán 2 hónapra akarjuk futtatni a tesztet ez jelentős számú kattintásunkba fog kerülni , ugyanis minden letöltés után az ablak bezáródik.
De a kattintásainkat szerencsére automatizálhatjuk egy egyszerű parancssoros C# program segítségével , ami a billentyűkombók lenyomásával letölti / végigklikkeli a hőn áhított letöltéseket.
static void replay()
{
DateTime StartDate = new DateTime();
DateTime EndDate = new DateTime();
string instrumentum;
try{
Console.WriteLine("Ird be hogy mikortól töltsük le");
StartDate = Convert.ToDateTime(Console.ReadLine());
}
catch { Console.WriteLine("Hiba a tól dátumban"); return; }
try
{
Console.WriteLine("Ird be hogy meddig töltsük le");
EndDate = Convert.ToDateTime(Console.ReadLine());
}
catch { Console.WriteLine("Hiba az ig dátumban"); return; }
if (StartDate == null || StartDate < Convert.ToDateTime("1800.01.01")) { Console.WriteLine("Nem írtál be tól dátumot");return; }
if (EndDate == null || EndDate < Convert.ToDateTime("1800.01.01")) { Console.WriteLine("Nem írtál be tól dátumot"); return; }
try
{
Console.WriteLine("instrumentum kezdőbetűje");
instrumentum = Console.ReadLine();
}
catch { Console.WriteLine("HIBA"); return; }
int DayInterval = 1;
List<DateTime> dateList = new List<DateTime>();
while (StartDate <= EndDate)
{
if (StartDate.DayOfWeek != DayOfWeek.Saturday || StartDate.DayOfWeek != DayOfWeek.Sunday)
{
//SetForegroundWindow(hWnd);
SendKeys.SendWait("%f"); //filemenu
SendKeys.SendWait("u"); //utilities
SendKeys.SendWait("d"); //download replay data
SendKeys.SendWait("{TAB}"); //default
SendKeys.SendWait(instrumentum); //istrumentum kezdőbetűje
SendKeys.SendWait("{TAB}");
SendKeys.SendWait(Convert.ToString(StartDate.Year)); //év
SendKeys.SendWait("{RIGHT}");
SendKeys.SendWait(Convert.ToString(StartDate.Month)); //hó
SendKeys.SendWait("{RIGHT}");
SendKeys.SendWait(Convert.ToString(StartDate.Day)); //nap
SendKeys.SendWait("{ENTER}");
Console.WriteLine("Ido : " + StartDate);
System.Threading.Thread.Sleep(100000);
SendKeys.SendWait("{ENTER}");
StartDate = StartDate.AddDays(DayInterval);
}
}
}
Használja mindenki egészséggel. A link amit kirakok ide tartalmazza a kódot annyival kibővítve , hogy aktiválja mindig a Control Center ablakot , ugyanis ha a háttérben van , vagy kisablakban lenn a tálcán a billentyűkombók nem működnének.
Az exe file-t itt találjátok: http://www.4shared.com/file/0A7XW-l7/ninjareplay.html
A forráskódfile-t pedig itt: http://www.4shared.com/file/-mSSbRA_/replay_downloader.html