TWM Wiki
TWM is equipped with WFO (walk forward optimizer) module. Inside the module user is able to set In-Sample
and Out-Of-Sample
periods in order to test strategy robustness. To access the Optimizer
proceed to Admin Panel -> New -> Optimizer
.
To start testing you need to right click the left hand side of the optimzer and either open a previously created preset or crete a new test. Give your test a name and proceed.
The next step would be to create a testing period. You can add the period manualy using Add Period
in the same context menu or using a special UI called Period constructor
. In sample period (IS) is where the strategy optimization will take place, out of sample period (OS) is where the execution with the optimized parameters will take place. This allows us to see whether the parameters we found are optimial, robust and we have not curve fitted our strategy.
You can review some content on in sample out of sample testing concepts explained here.
Inside the period constructor it is easy to create an IS-OS period and set the required lengths easily by either adjusting their day length or percentage in respect to each other. On the picture below we see a period of 365 days where 30% or 110 days are dedicated to an out of sample period. If the Last live period
box is checked, the out of sample period will be ignored for the most recent period.
You can add as many period as you like. The optimization will take place through each period separately. At the end of the process you will see:
After you have enabled the periods you should see them appear on the left hand side of the optimizer. The right hand side is dedicated to strategy parameters. You will need to first set the instrument and then set the strategy as demonstrated in the picture. After which you can proceed to selecting which parameters should be optimzed.
To do so right click the three dots next to where it says parameters. For each parameter you will see a checkbox, min, max and inc setting.
Min - will start optimzation from this value Max - will end optimization at this value Inc - will increment by this value Checkbox - will turn the parameter on/off, in this case in max=min the default value will be used
For example if min is 5, max is 100 and inc is 5 as well then the optimizer will start at 5 and will stop at 100 incrementing by a step of 5 so 5,10,15,20....100. The combination count will also show the amount of combinations that will occur. If there are too many combinations we strongly reccomend using the genetic optimization engine.
To start the optimzation click RUN
. After the optimziation has finished you can see combined out of sample results by clicking on the periods root. The vertical red lines represent each OS end time stamp.
By clicking on the matrix tab whilst on the period root you can review specific parameters that were found for each particular period. If you click on the matrix tab for a specific period you will see what specific parameters were used for a specific iteration listed in the best strategies list.
The number of best strategies is contolled by the keep best strategy
parameter. By default it will be 10 and the optimizer will always choose the top one. The list is sorted by the optimization fitness parameter which is an extendable module and can be coded by the user. You can use some popular preset native ones such as profit factor, net profit, sharpe, etc. Use the Optimize on
setting on the right hand side to set the optimization fitness parameter.
You can also see extra setting by right clikcing on the best strategies list.
If you change the chosen best strategy in the top list the OS will reexecute so you can see an updated combined out of sample result. You can toggle through the tabs to see different results. Main tabs are:
To enable Sim please go to Admin panel -> Tools -> Options -> Calculations -> Calculate Simulation
.
Some results might have been excluded based on some global filtering set during the optimzation. The two global filters available are:
If the execution is filtered you will see the count for the filtered executions Info
tab on top.
The two main types available are:
The settings for the genetic algorithm will come up below the parameters section. Please click on the arrow for them to unfold. Each parameter will light up with a small caption helping to understand its purpose.
If you like a specific optimization results you can right click the periods section and choose Save Results
. This will allow to access these results in the Admin Panels -> New -> Databse
at any point in time later. The results will be saved in a static form with the best selected strategies for each period. Double click on a chosen strategy to open up in optimizer static window mode.
This website uses cookies to enhance your browsing experience. By continuing to use our website, you agree to our Privacy Policy
Necessary cookies help make a website usable by enabling basic functions such as page navigation and access to protected areas of the site.
Necessary cookies
Indicates whether the user has consented to the use of necessary cookies.
Maximum storage duration: 1 Year | Type:Necessary cookiesUsed to prevent CSRF attacks and protect user data.
Maximum storage duration: Session | Type: Necessary cookiesUsed to manage authentication information and the user's session.
Maximum storage duration: 1 Year | Type: Necessary cookiesUsed to store user's language preferences.
Maximum storage duration: 1 Year | Type: Necessary cookiesSecurity cookie set by Google to authenticate users and prevent fraudulent use of login credentials.
Ensures you stay connected to your Google accounts across various services.
Maximum storage duration: 2 Years | Type: Necessary cookiesUsed to verify your Google account and ensure that requests in sessions come from you.
Maximum storage duration: 6 Months | Type: Necessary cookiesSecurity cookie used by Google to authenticate users and prevent fraudulent use of login credentials, protecting user data.
Maximum storage duration: 2 Years | Type: Necessary cookiesThis cookie prevents the browser from sending the cookie along with cross-site requests, helping to mitigate the risk of cross-origin information leakage.
Maximum storage duration: 6 Months | Type: Necessary cookiesImportant for Google's security and to ensure that Google can authenticate the account and block fraudulent access attempts.
Maximum storage duration: 2 Years | Type: Necessary cookiesSecurity cookie to protect user data from unauthorized access.
Maximum storage duration: 1 Year | Type: Necessary cookiesCrucial cookies to ensure that you remain securely logged into your Google accounts while accessing various Google services.
Maximum storage duration: 2 Years | Type: Necessary cookies
Functional cookies allow the website to provide enhanced functionality and personalization. They may be set by the website owner or by third parties whose services have been added to the pages.
Functional Cookies
Used by Google to store session information and enhance the user's experience on Google services.
Used by Google to improve user navigation by remembering preferences and information, such as preferred language.
Maximum storage duration: 6 Months | Type: Functional CookiesRemembers which accounts have been used to log into Google services on the device.
Maximum storage duration: 1 Year | Type: Functional CookiesUsed by Google to store user preferences and information when viewing pages with Google maps.
Maximum storage duration: 2 Years | Type: Functional CookiesUsed by Google to store user preferences while viewing pages that incorporate Google services.
Maximum storage duration: 2 Years | Type: Functional CookiesUsed by Google to remember user preferences, such as preferred language, to provide a more personalized experience.
Maximum storage duration: 6 Months | Type: Functional CookiesUsed by Google to collect information about visitors for videos hosted on YouTube or maps integrated with Google Maps.
Maximum storage duration: 2 Years | Type: Functional CookiesUsed by Google to store user preferences and information when pages containing maps or Google services are viewed.
Maximum storage duration: 2 Years | Type: Functional Cookies
Statistical cookies help website owners understand how visitors interact with the site by collecting and transmitting information anonymously.
Statistical Cookies
Unique identifier used to track user interactions and maintain unique sessions.
Microsoft cookie that collects data on user interactions to improve services.
Maximum storage duration: 7 days | Type: Statistical CookiesUsed by the Microsoft Clarity analytics suite to maintain the user's session.
Maximum storage duration: Session | Type: Statistical Cookies
Marketing cookies are used to track visitors on websites. The intent is to display relevant and engaging ads for the individual user.
Marketing Cookies
Used by Google to link your activity across devices if you have logged in with the same Google account.
Used by Microsoft Advertising to check the anonymity of data sent by tracking cookies.
Maximum storage duration: 10 minutes | Type: Marketing CookiesMicrosoft cookie used to track user interactions across Microsoft domains.
Maximum storage duration: 13 Months | Type: Marketing CookiesGoogle cookies designed to build a profile of your preferences and show you relevant ads on other sites, protecting the Google account.
Maximum storage duration: 2 Years | Type: Marketing CookiesUsed by Google to identify and track visitors across various websites to display personalized advertising.
Maximum storage duration: 2 Years | Type: Marketing CookiesUsed by Google to personalize ads on Google properties, like Google Search.
Maximum storage duration: 1 Month | Type: Marketing CookiesUsed by Google to deliver more relevant ads and protect the security of your preferences and Google account information.
Maximum storage duration: 2 Years | Type: Marketing CookiesCookies are small text files that can be used by websites to make the user's experience more efficient.
The law states that we can store cookies on your device if they are strictly necessary for the operation of this site. For all other types of cookies, we need your permission. This means that cookies classified as necessary are processed under Article 6(1)(f) of the GDPR. All other cookies, namely those belonging to the categories of preferences and marketing, are processed under Article 6(1)(a) of the GDPR.
This site uses different types of cookies. Some cookies are placed by third-party services that appear on our pages.
You can change or revoke your consent at any time from the Cookie Statement on our website.
Learn more about who we are, how you can contact us, and how we process personal data in our Privacy Policy.
Specify your consent ID and the date you contacted us regarding your consent.