Automatic retester

v SQ3 máme zásadní problém, že nejsme schopni zretestovat různé strategie na aktuální data. Musíme řešit buďto ručně, což je na chocholouška, pokud někdo drží 100+ strategií a chtěl by si dělat každý měsíc aktuální BT, nebo to řešit za pomocí skriptů, které hýbou myší



přitom tohle by měla být základní funkčnost - dostat se co nejrychleji k aktuální backtestu a mít možnost porovnat chování strategie na DEMO nebo REAL účtu


Zadání:
- nahraju do SQ všechny svoje strategie a chci je přetestovat na aktuální data, která mám stažená v data manageru. Kliknu retest a SQ to za mě udělá a já si jen soubory uložím
- pokud mám strategie s různým nastavením, tak to SQ pozná a klikne za mě automaticky "aplikovat nastavení strategie"

Attachments
No attachments
  • Votes +16
  • Project StrategyQuant X
  • Type Feature
  • Status Fixed
  • Priority High

History

h
#1

hankeys

23.04.2018 09:55

Task created

MF
#2

Mark Fric

23.04.2018 10:33
tohle urcite udelame, neni to problem. Takze vy potrebujete, aby se vsechno krome nastaveni Data pri retestu bralo z nastaveni strategie?


Asi to udelame nejak volitelne - v Retesteru bude moznost specifikovat "Use settings from strategy", a k tomu ktere presne settingy (podle nazvu setting tabu) aplikovat ze strategie, a ktere z nastaveni v UI

s
#3

Cako01

23.04.2018 11:53
Jak napsal hankeys, tohle je zásadní předpoklad pro SQ4. Jednoduše, abych mohl všechny strategie přetestovat na aktuální data najednou! Nemusel to dělat po jedné. U SQ3 musím načíst strategii, dát aplikovat nastavení, zresetovat datum, přetáhnout fader jen na IS a dát start. V SQ4 by bylo ideální jen načíst strategie, které chceme otestovat, vybrat datum, nebo "na celých datech" a dát start. SQ by si sám u každé str načetl její nastavení a přetestoval by ji.
h
#4

hankeys

23.04.2018 12:44
já si dokážu představit ledasco, třeba by to mohla být solo nabídka hned nalevo v panelu, protože tady opravdu nepotřebuju velké nastavování, ale hlavně funkčnost. Můžu říct co využívám teď v SQ3 a nápadů může být dále několik.


Mám 1000 různých finálních strategií (jiné trhy, jiné TF, jiná nastavení SL/PT, něco s výstupem v pátek, něco s omezením do časového okna, atd.). Potřebuju rychlej backtest, což umíme, ale pokud mám u každé strategie jiné nastavení, tak jsem v koncích a musím to dělat po jedné. Takže potřebuju nástroj, který bude jednoduše umět tohle dělat hromadně:


- chci vidět aktuální backtest za celá data. Tady nám stačí jedno tlačítko SPUSŤ, vše ostatní víme a nastavovat třeba není nic. Vše je v SQ4 souboru. Data se nastaví automaticky z data manageru

- chci vidět backtest za nějaké období. potřebuju toto období nastavit, případně ho rozdělit na IS/OOS

- chci vidět jak na strategie bude působit změna času při exit on friday

- chci vidět jak na strategie bude působit omezení do určitého časového pásma

- chci hromadně udělat nějaký MC test pro všechny strategie

- chci přetestovat všechny strategie na 0.01 lotu

- chci přetestovat strategie na jiný kapitál


nejpodstatnější je první odrážka

IH
#5

clonex / Ivan Hudec

23.04.2018 14:49
this is a must
MF
#6

Mark Fric

02.05.2018 08:12
will be done in new update within two weeks.
h
#7

hankeys

07.09.2018 07:37
Voted for this task.
h
#8

hankeys

07.09.2018 07:43
mohli bychom tento task začít nějak rozvíjet, už podle mě nastal čas - už jedeme nějaké strategie na demu a potřebujeme dostávat aktuální backtesty - abychom mohli porovnávat chování strategie


tyto testy nejdou dělat hromadně


jednu po jedné, z toho zblázníme


takže potřebujeme nějakou fičuru, která to projede za nás a bude simulovat klikání na nastavení strategie a přetestování za aktuální data


jestli jít cestou tasku v custom projectku, nebo z toho udělat nějaký solo modul nechám na zvážení, ale rád bych abychom s tímto začali hýbat


takže základní zadání zní:

- označ adresář, kde jsou uloženy SQ4 soubory se strategiemi

- vezmi všechny strategie včetně podadresářů a proveď aktuální BT podle nastavení strategie - koukni se do data manageru a zadej data OD DO podle něho, tzn. pokud si stáhnu aktuální data, tak mi provede aktuální BT

- ulož SQ4 a STR soubory na stejné místo, kde byla strategie

- takto to projeď celé

h
#9

hankeys

03.10.2018 10:59
mohl bych poprosit o posun tohoto požadavku - už nám jedou první dema, srovnáváme chování strategií, ale pokud musíme dělat aktuální BT pro každou strategii zvlášť, tak je to při větším počtu strategií, které mají různé nastavení nemožné...přitom podle mě jsme jeden krůček k tomu, abychom dokázali co by bylo potřeba


1 založím si projekt v custom projetku

2 do databanky Results si přes LOAD nahraju všechny strategie, které chci přetestovat na nejnovější data

3 do taskflow si vyhodím task třeba s názvem "Auto backtester", který zatím nemusí mít ani žádné nastavení, ale bude automaticky dělat to, co musíme ručně - klikat na nastavení strategie a měnit datum testu na datum, které mám aktuálně staženo a provede tedy aktuální BT za poslední stažená data. Prostě se jen koukne do data manageru co má za poslední datum a to automaticky nastaví do testu. Takto projede všechny různé strategie (trhy, TF, nastavení) a provede aktuální BT

4 jako třešnička na dortu by mohl být i taks "Save results" který po provedení aktuálního BT provede uložení do formátu SQX a STR


Tohle by byl velkej krok a moc by nám to pomohlo...

JF
#10

Honzik

03.10.2018 13:24
Voted for this task.
LM
#11

millik89

03.10.2018 13:44
Voted for this task.
LM
#12

millik89

03.10.2018 13:46
Pridávám se se žádostí o tuto funkci. Teď mě čeká cca 400str porovnat demo s SQ na SQ 3.8.2. Bude to peklo a tato funkce v SQ X ušetří i x hodin času.
c
#13

cullo6

03.10.2018 17:03
Voted for this task.
s
#14

Cako01

03.10.2018 17:12
Voted for this task.
J
#15

simunekj

03.10.2018 22:11
Voted for this task.
t
#16

traderpetr

04.10.2018 09:55
Voted for this task.
t
#17

traderpetr

04.10.2018 09:55
Voted for this task.
t
#18

traderpetr

04.10.2018 09:55
Voted for this task.
IH
#19

clonex / Ivan Hudec

04.10.2018 15:29
Voted for this task.
PK
#20

investor666

05.10.2018 19:00
Voted for this task.
m
#21

mikeyc

06.10.2018 11:54
Voted for this task.
TV
#22

Tomas Vanek

06.10.2018 12:12
Voted for this task.
m
#23

mabi

10.10.2018 11:00
Voted for this task.
k
#24

Karish

13.10.2018 07:37
Voted for this task.
n
#25

nitroz

15.10.2018 14:59
Voted for this task.
h
#26

hankeys

17.10.2018 12:45
B113?
MF
#27

Mark Fric

22.10.2018 11:52
tohle bychom meli stihnout do Buildu 113. Udelame zatim jenom tu nejjednodussi verzi - retest na celych datech.


TODO:


1. do Custom projectu pridat novy typ tasku "Automatic retest". Bue mit jenom jedno nastaveni What to retest - vyber zdrojoveho a ciloveho databanku.

Bude to v Custom projektu, ne primo v hlavnim retesteru, protoze je to specialni vec. Ale neni slozite udelat si Custom project s timto jednim taskem.



2. tento task udela to, ze pro kazdou strategii ve zdrojovem databanku nacte jeji posledni nastaveni, upravi jej, aby obsahovali maximalni aktualne dostupny rozsah dat

a pak s timto nastaveni otestuje tu strategii.


Kazda strategie muze mit uplne jine data, trading options, money management, cross checky, atd. retester musi tedy pro kazdou strategii pouzit jeji vlastni nastaveni - jedine, co se zmeni je rozsah dat - jednak v main testu a pak taky ve vsech cross checks.


Bylo by taky dobry pri te zmene rozsahu dat vyresetovat nastavenou OOOS periodu a jako OOS periody pridat ty nove casti dat, aby bylo po retestu videt, jak to obchodovalo na pridanych castech dat.


Priklad:

Strategie byla otestovana od 1.1.2010 do 31.12.2017

Nova data jsou k dispozici od 1.1.2005 do 31.9.2018


Strategie se tedy otestuje na datech 1.1.2005 do 31.9.2018, a nastavi se tam dve OOS periody;

OOS #1: 1.1.2005 - 31.12.2009 - nova data pred

OOS #2: 1.1.2018 - 31.9.2018 - nova data po



3. pokud strategie pouzivala treba nejaka data, ktera byla mezi tim vymazana, tak ta strategie se preskoci a  napise se to do logu

h
#28

hankeys

22.10.2018 13:00
1. custiom project naprostý souhlas - půjdou tam pak jednoduše dávat další tasky - třeba rovnou to uložení do SQX a STR do budoucna


2. s návrhem tohoto bodu mám problém z několika důvodů

- do tohoto tasku budou obchodníci pouštět hotové strategie, takže předpokládám, že budou uloženy tak, jak každý bude potřebovat a jediný úkol, který po tomto tasku chceme je přetestovat je na aktuální data

- takže já bych vůbec nešahal do datumu OD, ale řešil pouze datum testu DO. Proč? například zrovna u indexů, kde data začínají rokem 2011 z downloaderu je tento rok nepoužitelný a strategie tak generujeme až od roku 2012. Máme i futures data od roku 1999, ale taky nechávám BT až od roku 2012.

- za mě tedy platí pouze posunout datum testu DO a neřešit ani žádné rozdělení OOS, protože pokud tohle chci dělat jednou za týden, tak se mi OOS bude vždy posouvat jen o týden

- naopak bych chtěl, aby to případné rozhodnutí o tom, kdy má začínat OOS nechal čistě na obchodníkovi, protože to třeba použiju k tomu, že si tím zobrazím datum, kdy byla strategie prohlášena za finální a tímto testem si tak oddělím další OOS jako demo nebo reálné nasazení....


takže OOS určitě neresetovat nebo nenastavovat nějak podle dat, ale nechat čistě tak, jak je uloženo ve strategii

MF
#29

Mark Fric

22.10.2018 13:27
dobre, takze nastavovat se bude jenom datum DO, a OOS se nebude menit.


Pozdeji to muzem udelat konfigurovatelnejsi.

h
#30

hankeys

22.10.2018 13:34
přesně tak. Díky
TB
#31

Tomas Brynda

22.10.2018 18:42

Status changed from New to In progress

FB
#32

lumbrjack

23.10.2018 02:10
Voted for this task.
TB
#33

Tomas Brynda

23.10.2018 09:56

Status changed from In progress to Fixed

l
#34

ludvick

01.11.2018 14:38
Voted for this task.

Votes: +16

Drop files to upload

or

choose files

Max size: 5MB

Not allowed: exe, msi, application, reg, php, js, htaccess, htpasswd, gitignore

...
Wait please