Crucial - SQX Missing Over-fitting-Avoidance by Stable Regions. -- Analysis by Optimization / k-Nearest Neighbors (kNN).

With my experience with SQX, MT4/5 ,Multi-Charts, TradeStation, and other platforms and alternatives, and anything related to Data Science for Finance,


I can truly say that SQX got many robustness checks which are great,
But!, we miss some simple stuff that even the very old MT4 platform got, it's seems like that it was just forgotten to be added to SQX..,


The field of Optimization,
As you may know Optimization can be beneficial or not so beneficial, in essence we got 2 out-comes:
• Optimization for the very best parameters  -  Which will 99% of the cases lead us to Over-fitting our models (Which seems to be the problem with SQX currently, explained further, continue reading..),
• Optimization for the purpose of Investigation  -  Allows us to actually investigate and see if there is a any real stability across our parameters (by looking at our Neighboring parameters (i.e. kNN)).


After we covered what Optimization is and it upsides and downsides,
we must understand that SQX is an optimization engine,
it will combine random rules with the help of the optional Genetic Algorithm in order to Fit and find our desired models that we are searching for by our Fitness + Filters criteria.

Most models will pass by random luck,
OUR JOB with SQX is simply to check if those models are holding any true Edge behind them, or is it just luck.



Thus said,
I would like to introduce the relevant feature suggestion that will most likely give a solution to the mentioned problem,
This method was manually tested by yours truly with SQX's generated strategies and confirmed via MT4/MT5 optimizations and retested with OOS data multiple times across different Rules/TFs/Symbols etc.


Like most of us know we got many robustness tests but we neglect the most simple and the most (IMO) important robustness test of them all,
which like mentioned above, even the very old MT4 platform offers which is "Analysis by Optimization" or in the Data Science field it is called k-Nearest Neighbors (kNN).

_
Analysis by Optimization / k-Nearest Neighbors (kNN),
Im sure most of us here are familiarized with the MT4's/MT5's Optimizations and usage, so i wont go too deep on this stuff, but i will explain how it should work on SQX.


This feature should be offered to the user as a "Cross-Check" feature just like an SPP/WF/WFM/MC/WHATIF.








_________
SQX's Builder finds a strategy constructed with some parameters set:
Parameter #1,
Parameter #2,
Parameter #3,
Parameter #4,
Parameter #5,


The Test will have an ability be used in 3 different ways:
• Scatter  -  (Taking all the parameters within the parameters set of the original strategy, And Sort them as runs in a Scatter chart.)
• 2D  -  (Taking Parameter #1 from the original strategy's parameters set, And measure it against the Fitness Criteria.)
• 3D  -  (Taking Parameter #1 + Parameter #2 from the original strategy's parameters set, And measure them both against the Fitness Criteria.)


* Important to point out that the this test should include all the optimization tests with the original main In-Sample & Out-Of-Sample sizes settings setup.
* Another important thing is that, if the original strategy is a Multi-TF / Multi-Market, The test should take this into account.

# Using Scatter chart:
Taking all the parameters within the parameters set of the original strategy, And Sort them as runs in a Scatter chart,
We simply take the Original Parameters set and Optimize them all against each other.
--
By using "Value distribution in % from the Original Value" (TOP/BOTTOM/STEPS) + (Maximum permutations) + (Genetic/Brute Forced methods),
We will be able to Manually look and pick the new parameters set that we like the most and change the Original parameters set with it,
Or,
Allow SQX to do it for us by various methods explained below.


# 2D:
Taking Parameter #1 out of the original strategy's parameters set, And measure it against the Fitness Criteria,
We will take the first parameter (Parameter #1), keep the other parameters of the Original parameters set as they are and optimize only Parameter #1 against the others as they are staying static,
when the satisfying value for Parameter #1 selected, Manually / Automatically, we are then going to apply the new parameters set to the strategy, and then optimize Parameter #2 and keep all the other parameters static,
Again and again until we are done with all the Parameters out of the parameters set.
--
By using "Value distribution in % from the Original Value" (TOP/BOTTOM/STEPS) + (Maximum permutations) + (Genetic/Brute Forced methods),
We will be able to Manually look and pick the new parameters set that we like the most and change the Original parameters set with it,
Or,
Allow SQX to do it for us by various methods explained below.


# 3D:
Taking Parameter #1 + Parameter #2 out of the original strategy's parameters set, And measure them both against the Fitness Criteria,
We will take the first 2 parameters (Parameter #1 + Parameter #2), keep the other parameters of the Original parameters set as they are and optimize only Parameter #1 + Parameter #2 against the others as they are staying static,
when the satisfying values for Parameter #1 + Parameter #2 selected, Manually / Automatically, we are then going to apply the new parameters set to the strategy, and then optimize Parameter #2 + Parameter #3 and keep all the other parameters static,
Again and again until we are done with all the Parameters out of the parameters set.
--
By using "Value distribution in % from the Original Value" (TOP/BOTTOM/STEPS) + (Maximum permutations) + (Genetic/Brute Forced methods),
We will be able to Manually look and pick the new parameters set that we like the most and change the Original parameters set with it,
Or,
Allow SQX to do it for us by various methods explained below.


_
#Various methods that SQX will auto select the proper robust and stable region area's values:
...











_________
Thank you for your attention,
Hope it will get through, don't forget to vote,
Much love.


_________
Resources:
https://www.youtube.com/watch?v=-g8RNrCyJ6Q
https://go.enlightenedstocktrading.com/bonus-training-video-126270512
https://vimeo.com/310014149
https://vimeo.com/357202367
https://vimeo.com/403547378
https://www.youtube.com/watch?v=LzoewgVWsG4
https://www.mql5.com/en/articles/4636
https://www.mql5.com/en/articles/4395
https://www.youtube.com/watch?v=qCohqhGBkbI&t=795s
https://www.youtube.com/watch?v=lBw8yPOjF4Q

https://www.youtube.com/watch?v=q_02_zeFq4w
https://www.keenbase-trading.com/expert-advisor-optimization/
https://www.slideshare.net/meetupsing/nex-view-26aug14?next_slideshow=1
https://www.youtube.com/watch?v=PaVIbaTRO7o
https://aostrading.cz/wp-content/uploads/2015/07/AOStrading_Petr_Tmej_Handbook_Of_Successful_Exchange_Trading.pdf ; -  Chapter #17 on-wards.

Attachments
111.png
(79.65 KiB)
222.png
(498.66 KiB)
333.png
(271.70 KiB)
  • Votes +20
  • Project StrategyQuant X
  • Type Feature
  • Status Fixed
  • Priority Normal

History

k
#1

Karish

04.05.2021 14:15

Task created

k
#2

Karish

04.05.2021 14:15
Voted for this task.
CG
#3

Chris G

05.05.2021 00:27
Voted for this task.
b
#4

bentra

05.05.2021 00:37

Attachment Screenshot 266.png added

Screenshot 266.png
(355.81 KiB)



It would be nice if the optimizer could pick a set where all of the values of the variables are from the middle of a  "fat lump."

"Evaluation and Optimization of Trading Strategies" page 200 attached as an example.

b
#5

bentra

05.05.2021 00:37
Voted for this task.
b
#6

beppil

05.05.2021 05:36
Voted for this task.
JH
#7

Jabezz

05.05.2021 05:43
Voted for this task.
TR
#8

captainhuke@gmail.com

05.05.2021 07:35
Voted for this task.
k
#9

Karish

06.05.2021 00:09

Attachment Overfitted.png added

Attachment Stable region.png added

Overfitted.png
(145.09 KiB)
Stable region.png
(144.98 KiB)

The main point that i am trying to make is that SQX fitting too much, and it wont take any stable regions or neighboring parameters in to equation.


Here are 2 pictures for the illustration.

b
#10

bentra

06.05.2021 05:54
That's an irrelevant chart. You have an (x) iteration number and a (y) fitness score that's it. You don't know how many or how much the variables were changed if at all. You can't conclude anything from that chart. that's why heat maps and 3d charts exist.

It will be way more complicated than that to find a stable spot for more than 3 settings at a time.
k
#11

Karish

06.05.2021 19:08

bentra, You are totally right, I will reconstruct this feature suggestion again and edit it with the propper accurate rules and steps with screenshots etc very soon.

k
#12

Karish

07.05.2021 14:34

Description changed:

With my experience with SQX, MT4/5 ,Multi-Charts, TradeStation, and other platforms and alternatives, and anything related to Data Science for Finance,


I can truly say that SQX got many robustness checks which are great,
But!, we miss some simple stuff that even the very old MT4 platform got, it's seems like that it was just forgotten to be added to SQX..,


The field of Optimization,
As you may know Optimization can be beneficial or not so beneficial, in essence we got 2 out-comes:
• Optimization for the very best parameters  -  Which will 99% of the cases lead us to Over-fitting our models (Which seems to be the problem with SQX currently, explained further, continue reading..),
• Optimization for the purpose of Investigation  -  Allows us to actually investigate and see if there is a any real stability across our parameters (by looking at our Neighboring parameters (i.e. kNN)).


After we covered what Optimization is and it upsides and downsides,
we must understand that SQX is an optimization engine,
it will combine random rules with the help of the optional Genetic Algorithm in order to Fit and find our desired models that we are searching for by our Fitness + Filters criteria.

Most models will pass by random luck,
OUR JOB with SQX is simply to check if those models are holding any true Edge behind them, or is it just luck.



Thus said,
I would like to introduce the relevant feature suggestion that will most likely give a solution to the mentioned problem,
This method was manually tested by yours truly with SQX's generated strategies and confirmed via MT4/MT5 optimizations and retested with OOS data multiple times across different Rules/TFs/Symbols etc.


Like most of us know we got many robustness tests but we neglect the most simple and the most (IMO) important robustness test of them all,
which like mentioned above, even the very old MT4 platform offers which is "Analysis by Optimization" or in the Data Science field it is called k-Nearest Neighbors (kNN).

_
Analysis by Optimization / k-Nearest Neighbors (kNN),
Im sure most of us here are familiarized with the MT4's/MT5's Optimizations and usage, so i wont go too deep on this stuff, but i will explain how it should work on SQX.


This feature should be offered to the user as a "Cross-Check" feature just like an SPP/WF/WFM/MC/WHATIF.





_________
SQX's Builder finds a strategy constructed with some parameters set:
Parameter #1,
Parameter #2,
Parameter #3,
Parameter #4,
Parameter #5,


The Test will have an ability be used in 3 different ways:
• Scatter  -  (Taking all the parameters within the parameters set of the original strategy, And Sort them as runs in a Scatter chart.)
• 2D  -  (Taking Parameter #1 from the original strategy's parameters set, And measure it against the Fitness Criteria.)
• 3D  -  (Taking Parameter #1 + Parameter #2 from the original strategy's parameters set, And measure them both against the Fitness Criteria.)


* Important to point out that the this test should include all the optimization tests with the original main In-Sample & Out-Of-Sample sizes settings setup.
* Another important thing is that, if the original strategy is a Multi-TF / Multi-Market, The test should take this into account.

# Using Scatter chart:
Taking all the parameters within the parameters set of the original strategy, And Sort them as runs in a Scatter chart,
We simply take the Original Parameters set and Optimize them all against each other.
--
By using "Value distribution in % from the Original Value" (TOP/BOTTOM/STEPS) + (Maximum permutations) + (Genetic/Brute Forced methods),
We will be able to Manually look and pick the new parameters set that we like the most and change the Original parameters set with it,
Or,
Allow SQX to do it for us by various methods explained below.


# 2D:
Taking Parameter #1 out of the original strategy's parameters set, And measure it against the Fitness Criteria,
We will take the first parameter (Parameter #1), keep the other parameters of the Original parameters set as they are and optimize only Parameter #1 against the others as they are staying static,
when the satisfying value for Parameter #1 selected, Manually / Automatically, we are then going to apply the new parameters set to the strategy, and then optimize Parameter #2 and keep all the other parameters static,
Again and again until we are done with all the Parameters out of the parameters set.
--
By using "Value distribution in % from the Original Value" (TOP/BOTTOM/STEPS) + (Maximum permutations) + (Genetic/Brute Forced methods),
We will be able to Manually look and pick the new parameters set that we like the most and change the Original parameters set with it,
Or,
Allow SQX to do it for us by various methods explained below.


# 3D:
Taking Parameter #1 + Parameter #2 out of the original strategy's parameters set, And measure them both against the Fitness Criteria,
We will take the first 2 parameters (Parameter #1 + Parameter #2), keep the other parameters of the Original parameters set as they are and optimize only Parameter #1 + Parameter #2 against the others as they are staying static,
when the satisfying values for Parameter #1 + Parameter #2 selected, Manually / Automatically, we are then going to apply the new parameters set to the strategy, and then optimize Parameter #2 + Parameter #3 and keep all the other parameters static,
Again and again until we are done with all the Parameters out of the parameters set.
--
By using "Value distribution in % from the Original Value" (TOP/BOTTOM/STEPS) + (Maximum permutations) + (Genetic/Brute Forced methods),
We will be able to Manually look and pick the new parameters set that we like the most and change the Original parameters set with it,
Or,
Allow SQX to do it for us by various methods explained below.


_
#Various methods that SQX will auto select the proper robust and stable region area's values:
...







_________
Thank you for your attention,
Hope it will get through, don't forget to vote,
Much love.


_________
Resources:
https://www.youtube.com/watch?v=-g8RNrCyJ6Q
https://go.enlightenedstocktrading.com/bonus-training-video-126270512
https://vimeo.com/310014149
https://vimeo.com/357202367
https://vimeo.com/403547378
https://www.youtube.com/watch?v=LzoewgVWsG4
https://www.mql5.com/en/articles/4636
https://www.mql5.com/en/articles/4395
https://www.youtube.com/watch?v=qCohqhGBkbI&t=795s
https://www.youtube.com/watch?v=lBw8yPOjF4Q

https://www.youtube.com/watch?v=q_02_zeFq4w
https://www.keenbase-trading.com/expert-advisor-optimization/
https://www.slideshare.net/meetupsing/nex-view-26aug14?next_slideshow=1
https://www.youtube.com/watch?v=PaVIbaTRO7o
https://aostrading.cz/wp-content/uploads/2015/07/AOStrading_Petr_Tmej_Handbook_Of_Successful_Exchange_Trading.pdf ; -  Chapter #17 on-wards.

k
#13

Karish

07.05.2021 15:08

Attachment 2d.png added

2d.png
(273.75 KiB)
2D Screenshot
k
#14

Karish

07.05.2021 15:16

Attachment 3D.png added

3D.png
(1.02 MiB)
3D Screenshot
IH
#15

clonex / Ivan Hudec

07.05.2021 15:27
Voted for this task.
JH
#16

jakehobbs

07.05.2021 17:20
Voted for this task.
k
#17

Karish

09.05.2021 16:38

https://youtu.be/LzoewgVWsG4



MF
#18

Marti

10.05.2021 19:19
Voted for this task.
k
#19

Karish

10.05.2021 20:10

Thank you so much Mark and the dev-team for paying attention to this task, we would all love to see it in work, hope i explained everything clear about everything,

besides that, we already got like most of the parts of this task already built-into SQX currently, so it should be a simple task to accomplish with the help of some already made functions from the back-end.


Thanks :)

k
#20

Karish

11.05.2021 16:52

Attachment example.png added

example.png
(694.93 KiB)

From a book that i published here:

https://discord.com/channels/426766614734831616/786238098153144350/841060475274002432


very interesting part and very related to the topic again:


check the screenshot.


k
#21

Karish

11.05.2021 18:46

Attachment from main.png added

Attachment from ebook.png added

from ebook.png
(211.84 KiB)
from main.png
(498.66 KiB)

Another thing from the same book, This thing is already mentioned above at the main post of this task,

it is the ability to see and make use of the equity curve results of different parameter sets results,


Aiming with the mouse will give us a popup balloon msg with the exact parameters set,

And SQX could actually read information from those results too, like comparing correlations between our Original parameters set Vs. other parameter sets results etc.


See screenshots:

the first one is the already mentioned at the main post,

the other is from the PDF ebook https://discord.com/channels/426766614734831616/786238098153144350/841060475274002432



nt
#22

Naoufel Taief

12.05.2021 06:15
Voted for this task.
MF
#23

Mark Fric

19.05.2021 10:06

karish, I'm trying to understand how this new crosscheck should work.


1. Optimization or crosschec? But from what I understand this is more a different optimization method (where you optimize by one parameter at the time), than a crosscheck.

I roughly understand how it could work as an optimization method - the result will be a strategy where all requested parameters were optimized this way.




2. Charts  - 3d charts are already available. I understand that you want to draw 2d and scatter charts, adding them should be simple.


The problem will be with the individual equity curves, it would be a huge amount of data to save also individual orders for every optimization to be able to draw an equity curve, so I wouldn't do that.



3. FIltering  - If this should be somehow used as crosscheck how do you propose the strategy should be filtered as PASSED/FAILED?

k
#24

Karish

20.05.2021 02:20

Attachment exa.png added

exa.png
(683.94 KiB)

karish, I'm trying to understand how this new crosscheck should work.


1. Optimization or crosschec? But from what I understand this is more a different optimization method (where you optimize by one parameter at the time), than a crosscheck.

I roughly understand how it could work as an optimization method - the result will be a strategy where all requested parameters were optimized this way.




2. Charts  - 3d charts are already available. I understand that you want to draw 2d and scatter charts, adding them should be simple.


The problem will be with the individual equity curves, it would be a huge amount of data to save also individual orders for every optimization to be able to draw an equity curve, so I wouldn't do that.



3. FIltering  - If this should be somehow used as crosscheck how do you propose the strategy should be filtered as PASSED/FAILED?


Hi Mark,

I explained everything in-depth as i could in this task's posts,

it should be easy to understand and implement :)


1. Cross-Check,
    It is more or less the same process as using SPP,  - You got everything correct, Yes.


2. Charts,

    We can dump this idea, no problem, 2D & Scatter chart would do the job perfectly.


3. Filtering,

    I left this question on the table to be frank with you,
    I guess we should try something initially and then when this feature is fully implemented into SQX suggestions will follow,

    As for the initial idea for PASS/FAILED which is actually in other words = How SQX can determine the "Stable Region Area":

    Attached a screenshot that i already attached to this task few posts ago, SQX will sort determine first of all the "Highest Fitness Ranked Point" AKA (Y Axis),

    Then, SQX will look at the surrounding parameters (X Axis) + (Z Axis) to check if the "Highest Fitness Ranked Point" AKA (Y Axis) is not decreased below X% of the original value of the (Y Axis).
    Example: SQX found the highest Y Axis, R/DD=2.0, Then SQX will check if the nearest parameters up to 10 permutations (X Axis) + (Z Axis) got More or Equal amount of R/DD in X%, lets say above 60%.

So to sum it all up,

In the CrossCheck settings before you run this CrossCheck,

User will have those options to setup:
• Ranking Fitness = R/DD,

• "Stable Region Area" = 10. (Which means SQX will look up-to 10 permutations AKA runs on the (X Axis) + (Z Axis)).

• Accept the result if the difference of the "Highest Point" Vs. "Stable Region Area" is > 60%. (Which mean that all the 10 permutations AKA runs on the (X Axis) + (Z Axis) are higher than 60% of the "Highest Point").


Hope you understood, it is really powerful stuff!, cant wait to test it out!,


Thank you for your reply, trying to help however i can with the explanations. :)

MF
#25

Mark Fric

20.05.2021 12:51
3. filtering - this is actually much more complicated than it seems.


It can work like you describe if you optimize by 1 or 2 parameters. But if optimization is automatic you don't choose the exact parameters to optimize and it can optimize many more parameters - possibly tens of them.


Results of which parameters should be considered for stability?

I'm not sure any strategy would pass if we'd do it for all combinations of optimized parameters.



k
#26

Karish

20.05.2021 21:03
Like i explained above, it should optimize few times,

for example that i gave last post i gave an example for a 3D optimization,

which means if a strategy for example got 5 parameters in total,

the CrossCheck will optimize at first the 1st+2nd parameters out of the 5,

Select the highest Fitness result of the 3D chart,

Check if the highest Fitness result got surrounding results X+Z that are >= 60% of the highest fitness result,

If true, than we select those 2 parameters and continue with the next optimization,


Now we keep the 1st parameter out of the 5 as is, and use the 2nd+3rd parameters out of the 5 to do the same process,

again and again, until we cover all the 5 parameters.



EXAMPLE:

[Parameter #1] + [Parameter #2] + [Parameter #3] + [Parameter #4] + [Parameter #5]

[Parameter #1] + [Parameter #2] + [Parameter #3] + [Parameter #4] + [Parameter #5]

[Parameter #1] + [Parameter #2] + [Parameter #3] + [Parameter #4] + [Parameter #5]

[Parameter #1] + [Parameter #2] + [Parameter #3] + [Parameter #4] + [Parameter #5]


we optimize the 1st parameter + the 2nd parameter,

if highest fitness point is surrounded by other parameter combinations of 1st parameter + 2nd parameter with >= than 60%, we apply those 2 parameters to the strategy and continue,

we optimize the 2nd parameter + the 3rd parameter,

if highest fitness point is surrounded by other parameter combinations of 2nd parameter + 3rd parameter with >= than 60%, we apply those 2 parameters to the strategy and continue,

we optimize the 3rd parameter + the 4th parameter,

if highest fitness point is surrounded by other parameter combinations of 3rd parameter + 4th parameter with >= than 60%, we apply those 2 parameters to the strategy and continue,

we optimize the 4th parameter + the 5th parameter,

if highest fitness point is surrounded by other parameter combinations of 4th parameter + 5th parameter with >= than 60%, we apply those 2 parameters to the strategy and continue,


Now we are sure we got a strategy that has stable regions of parameters.


There should be like some kind of a Score value for each re-optimization step i guess,

just like with WFM or so, and than a TOTAL Score at the end or such.


We gotta think it through though, this feature is missing and it will help ALOT!,


Hope i helped..



MF
#27

Mark Fric

21.05.2021 10:05
ok, I got it. I'm not sure how good this filter would work, and it is not a simple task to implement it. We will move step-by-step.
k
#28

Karish

21.05.2021 11:51
Thank you so much Mark!,
Hope to see it on the upcoming build! :),

this is hugeeeeee!
MF
#29

Marti

25.05.2021 14:49
When you have a 2d point in a plane, fix its x coordinate and analyze the combinations with y values, and then you fix the y and analyze the combination with x values, what you are doing is analyzing only two perpendicular lines that cross the point, and you are missing the analysis of the rest of space in the plane. You can not extrapolate that the stability of the samples in these lines is similar to the stability of the plane.


k
#30

Karish

25.05.2021 20:47
STEP #1:
SQX Strategy has been found,
Strategy is built on 5 Parameters,

The CrossCheck will now take the PARAMETER #1 + PARAMETER #2 out of the 5 and Optimize it by user's defined MAX/MIN/STEPS,

For example we got 50 permutation runs out of those 2 parameters out of the 5,

SQX will take the BEST most fit result,

SQX will analyze by looking at the nearest results (UP+DOWN) and check if for example 10 results UP & 10 results DOWN are holding atleast >=60% of the initial "BEST most fit result",
If true, this step will be a PASS,
SQX will now automatically change the original strategy's parameters set to the new parameters set that includes the new 2 parameters values.

STEP #2:

The CrossCheck will now take the PARAMETER #2 + PARAMETER #3 out of the 5 and Optimize it by user's defined MAX/MIN/STEPS,

For example we got 50 permutation runs out of those 2 parameters out of the 5,

SQX will take the BEST most fit result,

SQX will analyze by looking at the nearest results (UP+DOWN) and check if for example 10 results UP & 10 results DOWN are holding atleast >=60% of the initial "BEST most fit result",
If true, this step will be a PASS,

SQX will now automatically change the original strategy's parameters set to the new parameters set that includes the new 2 parameters values.


STEP #3:

The CrossCheck will now take the PARAMETER #3 + PARAMETER #4 out of the 5 and Optimize it by user's defined MAX/MIN/STEPS,

For example we got 50 permutation runs out of those 2 parameters out of the 5,

SQX will take the BEST most fit result,

SQX will analyze by looking at the nearest results (UP+DOWN) and check if for example 10 results UP & 10 results DOWN are holding atleast >=60% of the initial "BEST most fit result",
If true, this step will be a PASS,

SQX will now automatically change the original strategy's parameters set to the new parameters set that includes the new 2 parameters values.


STEP #4:

The CrossCheck will now take the PARAMETER #4 + PARAMETER #5 out of the 5 and Optimize it by user's defined MAX/MIN/STEPS,

For example we got 50 permutation runs out of those 2 parameters out of the 5,

SQX will take the BEST most fit result,

SQX will analyze by looking at the nearest results (UP+DOWN) and check if for example 10 results UP & 10 results DOWN are holding atleast >=60% of the initial "BEST most fit result",
If true, this step will be a PASS,

SQX will now automatically change the original strategy's parameters set to the new parameters set that includes the new 2 parameters values.


STEP #5:

If strategy has passed all those steps, considered the strategy has PASSED this CrossCheck overall.




_
It can be done,
I hope i explained it so everybody can understand it,
This is without using any visual representation of the processes, this is just how its going to work at the background,
Visuals like 2D + 3D charts etc can be added afterwards just to make sure everything is working flawlessly and just for those who want that manual touch to this all.



Thanks Mark and the team, hope to see this feature soon :).

AP
#31

AP

25.05.2021 20:48
Voted for this task.
k
#32

Karish

25.05.2021 20:59
By the way Mark,

I forgot to mention something,

When SQX found the strategy's "BEST most fit result" and looking at the neighboring permutations results to find stability,

In a case that SQX wont find any stability on the UPPER+LOWER for this example 10 permutations,
it will be considered as FAILED on this step, However, SQX only tried 1 time!, which is kinda based on luck...,

So SQX needs to try a 2nd best "BEST most fit result",
For example the "BEST most fit result" for this step was RDD=2,
and the result of this step was FAILED,

However SQX can try to the same procidure on the 2nd best "BEST most fit result", like for example RDD=1.8,

and if FAILS again, try the 3rd best "BEST most fit result",


maybe it could find any stability on those, and get the PASS status and continue to the next steps based on the 2nd+3d parameters etc.. etc.. etc..,

So we wont just dump our strategy if we failed to find stability on the best "BEST most fit result", we try lower "BEST most fit result" and check for stability there.


This thing should be defined by the USER ahead of time, some thing like:

"Retry to find stability by using lower Best Fitness value = 10"


This way SQX will try 10 times per each step to find stability like explained above,
if it fails, just dump this strategy and continue to the next strategy.

DR
#33

mentaledge

25.05.2021 22:10
Voted for this task.
AS
#34

alfredsylejmani

25.05.2021 22:13
Voted for this task.
MO
#35

mareko

25.05.2021 22:46
Voted for this task.
NS
#36

nicksim80

26.05.2021 01:21
Voted for this task.
SA
#37

shin38

26.05.2021 02:52
Voted for this task.
y
#38

yusung

26.05.2021 04:30
Voted for this task.
MF
#39

Mark Fric

26.05.2021 08:18
I'm thinking about this and I get how this could work.


But there are few things I'd do differently:


1. why optimizing by 2 parameters in each step? I think it is better to optimize by just one parameter, and then move to another one.

It will be faster (less combinations), and the stability can be recognized better on 2D chart.


2. checking fitness - I'd probably change way the best strategy is determined - instead of trying best fitness, then second best, then third best etc. I'd try to find the stable area on the result chart, and the parameter in the middle of the stable area would be the one used.

k
#40

Karish

26.05.2021 09:23
Sure thing Mark,

let me explain,

Refereeing to your 1st comment:

At the previous post i spoke about the 3D way, Which means X, Y, Z Axis, Which is essentially means using: X = Optimization Value #1, Y = Fitness Value Z = Optimization Value #2, It essentially creating a "3D chart" that is the reason of using permutations holding 2 parameters values at a time.


And yes if we will choose to use a "2D chart" method rather than the "3D chart" method its going to work the same as i wrote at the previous post:
https://roadmap.strategyquant.com/tasks/sq4_8062#comment-93192

just using only 1 parameter at a time, so yes it will be faster etc., depends on the user's choice i guess. (the choice for 2D or 3D should be included to the user's choices using this cross-check)*.


Refereeing to your 2nd comment:

I guess this way would be more efficient in your point of view, so yeah i would say go-ahead with it, we can always think about better ways to evaluate this in the future with the help of the community etc,
we gotta have a Beta version of this cross-check atleast and then we can really get the feel of it and check what would suits best.



__

Thanks for your reply, looking forward to it :),
good luck!

MF
#41

Mark Fric

26.05.2021 10:40
ok, I confirm we will implement it. As the first step we'll use only optimization by one param (2D), we'll not make it configurable.
fG
#42

Gianfranco

26.05.2021 12:19
Voted for this task.
k
#43

Karish

26.05.2021 13:31
Yey!, Thank you!,

I am sure we will all benefit from it,


and yeah, 2D sounds good first the initial implementation of this project :), Thanks! excited to see it on the following beta!

KB
#44

kbtech

27.05.2021 00:16
Voted for this task.
MF
#45

Mark Fric

04.06.2021 08:11

Status changed from New to Fixed

implemented as a new Sequential optimization feature
k
#46

Karish

04.06.2021 08:16

You guys rock!!!!!!!!!!!!!!!!!

Thank you so much Mark and the dev team!

CG
#47

Chris G

05.06.2021 00:20
Awesome!!!!!
w
#48

wiraputu

30.11.2022 14:21
Voted for this task.

Votes: +20

Drop files to upload

or

choose files

Max size: 5MB

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

...
Wait please