automatic simplifier

in the strategy we can see many conditions and other building blocks, but its true, that what we can see in the pseudo code cant be true, because some building blocks was never used in the backtest



for example TP - i set that i want TP required, i can see the TP in the strategy in pseudo code, but if i look to list of trades i can see, that the TP was never reached


and thats true for every building block - filtering conditions, exit conditions, trailings, etc.


please add to the building process this simplifier function, so the building process will go through every building block and try to erase each of them and if the netprofit is the same of the strategy (with and without each building block), so the building block has never been used and can be erased from the strategy


and if i have TP set as required for example and simplifier will find, that the TP was never reached and the TP can be deleted from pseudo code, this strategy could be deleted at all, because TP was never used and i set TP as required, but simplifier find that its not true


this function is crucial for me, because we need to see in pseudo code only what has impact to a strategy

Attachments
pseudo.jpg
(136.03 KiB)
  • Votes +34
  • Project StrategyQuant X
  • Type Feature
  • Status Archived
  • Priority Normal
  • Assignee None
  • Milestone Archived (To be done later)

History

h
#1

hankeys

28.12.2018 20:10

Task created

KL
#2

kainc301

28.12.2018 21:39
I'll see strategies like this where TP's are never hit and I'll typically keep them to throw them in an optimizer later. So instead of automatically removing strategies like this by default, it may help to add a "Remove unnecessary blocks" toggle to allow us to decide if we want SQX to automatically remove these blocks/remove strats all together as recommended above. I think each strategy should come with some sort of efficiency index that measures the impact of each block on the strategy itself. You could come up with a weighting scale for each block and how manipulating it affects results (I'd find many strategies where one or two blocks did absolutely nothing to the strategies performance). This should be able to be calculated mathematically if some blocks prove to have close to 0 impact on performance. If an efficiency index is given to each strategy, users could remove blocks that rank below a certain weight of how effective/necessary that block is within the strategy.


However this would be an additional step after the strategies hit the databank between generations and may slow down the work flow. So I recommend implementing this in the robustness testing rather than the storing of the databank itself during genetic evolution/random generation.

a
#3

Ash24FX

28.12.2018 23:46
Voted for this task.
m
#4

mabi

29.12.2018 05:27
Voted for this task.
h
#5

hankeys

29.12.2018 07:17
i could agree, maybe the best way, where to implement this is a custom tasks, where we can think about task with a name "simplifier"


and we will be running this only on the final strategies - something like "last" task of a workflow


if the building block have no impact on net profit, it should be deleted


if the SL will be deleted (because it could happen too - you have to widen SL settings, so it will never be hit) - we must get some warning, that this strategy is actually withnout SL

RL
#6

rickliao

29.12.2018 07:42
Voted for this task.
g
#7

geektrader

29.12.2018 18:06
I´ve also thought about adding this as a feature request, but as it demands a completely new module (it needs to run several backtests to determine which ones can be terminated) and given that we still have so many bugs with the current functionality, I decided not to request it yet. But you surely have my vote, I just hope they first fix all the bugs :-)
g
#8

geektrader

29.12.2018 18:06
Voted for this task.
AC
#9

AC1962

29.12.2018 22:49
Voted for this task.
KW
#10

Sean

30.12.2018 04:33
Voted for this task.
DR
#11

mentaledge

30.12.2018 11:05
Voted for this task.
JF
#12

Honzik

08.01.2019 15:24
Voted for this task.
h
#13

hankeys

15.01.2019 12:56
Voted for this task.
h
#14

Harpotrader

16.01.2019 19:06
Voted for this task.
MG
#15

maegop

23.01.2019 04:08
Voted for this task.
FB
#16

lumbrjack

03.02.2019 21:58
Voted for this task.
s
#17

Cako01

24.02.2019 13:19
Voted for this task.
jn
#18

Josef Němeček

26.02.2019 03:12
Voted for this task.
h
#19

hankeys

21.11.2019 07:00
we need this function - we still have in strategies parts of a code, which are never taken


for example TAKEPROFIT - why i see in pseudo code, that i have strategy with takeprofit even if this TP was never used in list of trades


some simplification could be done very easily


is in pseudo code TP - are in list of trades some TP close types? NO - delete TP from the strategy, it was never used - have i turned on that i want TP required? dismiss this strategy, because TP in pseudo code was never reached


etc...the same for SL and other exit types

Rr
#20

Partizanas

21.11.2019 11:14
Voted for this task.
l
#21

Loonly

21.11.2019 12:00
Voted for this task.
IH
#22

clonex / Ivan Hudec

21.11.2019 14:16
Voted for this task.
IH
#23

clonex / Ivan Hudec

21.11.2019 14:16
agree with hankeys upper
Kc
#24

coensio

22.11.2019 13:17

You could take this idea even further...and implement some kind of "parameter sensitivity test". For example sweeping across all parameters of a given strategy e.g.: using a simplified MC-like test and testing the outcome sensitivity vs variation of each parameter . This could give us an overview of all parameters and their impact on the final result. In the example above when TP is never reached, then it would have probably very small sensitivity figure since its change would not affect (much) the final result (at least on the positive side of parameter variation).


Kc
#25

coensio

22.11.2019 13:17
Voted for this task.
TR
#26

captainhuke@gmail.com

22.11.2019 15:02
Voted for this task.
HH
#27

Hans

05.12.2019 21:38
Voted for this task.
a
#28

Venus

07.12.2019 10:16
Voted for this task.
y
#29

ytu

09.12.2019 01:44
Voted for this task.
h
#30

hankeys

09.12.2019 07:56

Attachment EU_D1_112403962_S_Ic_SQX_ASYM.sqx added

these are the reasons why we need this feature asap - i have set in build process, that i want TP and SL required...OK i am getting strategies with SL and TP in pseudo code, but from list of trades, they are never reached, so i am fooled by pseudo code, that i have strategy with SL and TP


and i dont think so, that my SL and TP settings are too high - for daily strategy....exit type exit bars or exit indicator were hitted sooner than any SL and TP


if i set that i want SL and TP required, i need strategy with these values, which are USED in strategy

h
#31

hankeys

09.12.2019 07:59

Attachment EU_D1_112423816_S_Cl_SQX_ASYM.sqx added

second example:


i have set, that i want to build SYMETRIC strategies - OK, i am getting them, i see in the pseudo code - BUY and SELLS


but if i look at this strategy, it has only LONG SIDE, because the short side is never TRUE


why i see some pseudo code for SELL? when the sell conditions was never true


this strategy is not symetric, i have set, that i want symmetric strategies but i dont get one


DISMISS or SIMPLIFY



h
#32

hankeys

09.12.2019 08:19
another CRUCIAL use for simplifier is a question of this kind


i am building multiTF strategies with filter for example on D1, i see in pseudo code that i have some filter in D1 chart - OK


but is this filter STRONG or not? what job is the filter doing in the strategy? isnt it useless?


here https://roadmap.strategyquant.com/tasks/sq4_5771 is strategy with D1 filter, if i remove the D1 filter from strategy i am getting better RDD - this kind of multiTF strategy is nonsense for me - i have in pseudo code something, which is worsens my results


with D1 filter i need better strategies than without it

t
#33

tnickel

09.12.2019 08:34
Voted for this task.
y
#34

yusung

13.12.2019 22:49
Voted for this task.
b
#35

bentra

11.02.2020 23:38
Voted for this task.
MF
#36

Mark Fric

16.02.2020 13:52

Status changed from New to Archived

AG
#37

Tukirito

16.02.2020 20:34
Voted for this task.
h
#38

hankeys

10.04.2020 12:42
any progress...crucial feature
JK
#39

Insanity82007

10.04.2020 14:14
Voted for this task.
m
#40

Mariano

11.04.2020 01:30
Voted for this task.
m
#41

Mariano

12.04.2020 13:20

Attachment B.png added

Attachment A.png added

I add (attached) a couple of examples of blocks that are never used and are in the pseudo-code.


It's very important to fix it.

h
#42

hankeys

12.04.2020 16:42
devteam need to understand that this is a crucil feature and need to be implemented right to the builder, because if user wants anything as "required" this block will be in the strategy but must do some work in it


another example is that if i want to build multiTF strategies like H1 with D1 filter i need to know that D1 filter is doing some job in the strategy. i see many where D1 filter is always true so i dont have H1D1 strategy but only H1 strategy

BS
#43

BobS

14.04.2020 15:35
Voted for this task.
h
#44

hankeys

24.01.2021 15:00

Attachment AC_H1_230106322_L_Op_CF_SQX.sqx added

AC_H1_230106322_L_Op_CF_SQX.sqx
(16.06 KiB)
any NEWS about this CRUCIAL feature for traders...we are still getting to the strategies building blocks which are not doing anything in the strategies


even if traders has STOP LOSS is required, this does not mean, that this stop loss is working in the strategy...


i could have exit signals in the strategy and from the list of trades i see, that it was never used


i could have trailing stop in the strategy, and from the list of trades i see, that it was never used


i could have take profit in the strategy and again, i can see, that it was never hitted


our strategies are full of building blocks and only few of them are making the edge for us...it could also happen, that some custom blocks could make strategy worse, etc. etc.


think about it to add asap, thx.


sending one strategy which is full with not used building blocks

h
#45

hankeys

24.01.2021 15:11
to clean the pseudo code and keep the building blocks which are really used must be our basic task...


we cant see false positives in the pseudo code, like never used SL

MF
#46

Marti

08.04.2021 02:11
Voted for this task.
JA
#47

johancdb

28.09.2021 17:49
Voted for this task.
TM
#48

tmatejka.

17.01.2022 23:48
Voted for this task.
w
#49

wiraputu

30.11.2022 14:20
Voted for this task.
A
#50

Asoea

02.04.2024 04:46
Voted for this task.

Votes: +34

Drop files to upload

or

choose files

Max size: 5MB

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

...
Wait please