TWM Wiki

Description

Optimizer

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.

Creating a Test

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.

Image


In Sample (IS) Out of Sample (OS)

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.

Robert Pardo Podcast

Robert Pardo Book

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.

Image


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:

  1. results for each period separately
  2. combined out of sample results
  3. out of sample results followed by sim results which is as if you continued running the strategy withouth re-optimizing after the out of sample period finished
  4. check the last live period box if you would like to have the last period (most recent to todays date) to be done in out of sample only

Parameters

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.

Image


Results

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.

Image


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.

Image


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.

  1. Preset - save will save the particular strategy preset to be used on chart, in validator or in optimizer.
  2. Settings - allows you to turn best strategies columns on/off
  3. Open in validator - will open a specific IS or IS+OS period in validator with the set strategy
  4. View parameter list - will show the used parameters in a table

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:

  1. IS for in sample results
  2. OS for in sample results
  3. Total will show IS+OS results
  4. Sim will show results for a period that happend after OS ended, if Sim is enabled then Total will show IS+OS+Sim results. (if Sim is disable the tab will not show)

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:

  1. Min trades IS wich sets the minumum number of trades that has to occur in the in sample period in order for it to be considered
  2. Draw Down Level - maximum draw down level during the in sample period

If the execution is filtered you will see the count for the filtered executions Info tab on top.

Image


Optimizer Types

The two main types available are:

  1. Default - which will an exhaustive optimzier that will go through every single combination that you have created
  2. Genetic - will use a genetic algorithm (the open source code for the genetic algorithm is provided in the custom project)

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.

Database

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.

Image


Video Tutorial



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

    .AspNet.Consent

    Indicates whether the user has consented to the use of necessary cookies.

    Maximum storage duration: 1 Year | Type:Necessary cookies
    .AspNetCore.Antiforgery

    Used to prevent CSRF attacks and protect user data.

    Maximum storage duration: Session | Type: Necessary cookies
    .AspNetCore.Cookies

    Used to manage authentication information and the user's session.

    Maximum storage duration: 1 Year | Type: Necessary cookies
    .AspNetCore.Culture

    Used to store user's language preferences.

    Maximum storage duration: 1 Year | Type: Necessary cookies
    __Secure-OSID

    Security cookie set by Google to authenticate users and prevent fraudulent use of login credentials.


    Maximum storage duration: 6 Months | Type: Necessary cookies
    __Host-3PLSID

    Ensures you stay connected to your Google accounts across various services.

    Maximum storage duration: 2 Years | Type: Necessary cookies
    AEC

    Used to verify your Google account and ensure that requests in sessions come from you.

    Maximum storage duration: 6 Months | Type: Necessary cookies
    HSID

    Security cookie used by Google to authenticate users and prevent fraudulent use of login credentials, protecting user data.

    Maximum storage duration: 2 Years | Type: Necessary cookies
    SEARCH_SAMESITE

    This 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 cookies
    SID

    Important 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 cookies
    SIDCC

    Security cookie to protect user data from unauthorized access.

    Maximum storage duration: 1 Year | Type: Necessary cookies
    __Host-1PLSID, __Host-3PLSID

    Crucial 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

    LSOLH

    Used by Google to store session information and enhance the user's experience on Google services.


    Maximum storage duration: Session | Type: Functional Cookies
    COMPASS

    Used by Google to improve user navigation by remembering preferences and information, such as preferred language.

    Maximum storage duration: 6 Months | Type: Functional Cookies
    ACCOUNT_CHOOSER

    Remembers which accounts have been used to log into Google services on the device.

    Maximum storage duration: 1 Year | Type: Functional Cookies
    APISID

    Used by Google to store user preferences and information when viewing pages with Google maps.

    Maximum storage duration: 2 Years | Type: Functional Cookies
    LSID

    Used by Google to store user preferences while viewing pages that incorporate Google services.

    Maximum storage duration: 2 Years | Type: Functional Cookies
    NID

    Used by Google to remember user preferences, such as preferred language, to provide a more personalized experience.

    Maximum storage duration: 6 Months | Type: Functional Cookies
    SAPISID

    Used 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 Cookies
    __Host-GAPS

    Used 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

    CLID

    Unique identifier used to track user interactions and maintain unique sessions.


    Maximum storage duration: 1 Year | Type: Statistical Cookies
    MR

    Microsoft cookie that collects data on user interactions to improve services.

    Maximum storage duration: 7 days | Type: Statistical Cookies
    SM

    Used 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

    AID

    Used by Google to link your activity across devices if you have logged in with the same Google account.


    Maximum storage duration: 1 Year | Type: Marketing Cookies
    ANONCHK

    Used by Microsoft Advertising to check the anonymity of data sent by tracking cookies.

    Maximum storage duration: 10 minutes | Type: Marketing Cookies
    MUID

    Microsoft cookie used to track user interactions across Microsoft domains.

    Maximum storage duration: 13 Months | Type: Marketing Cookies
    __Secure-3PSID, __Secure-3PAPISID, __Secure-3PSIDTS, __Secure-3PSIDCC

    Google 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 Cookies
    ADS_VISITOR_ID

    Used by Google to identify and track visitors across various websites to display personalized advertising.

    Maximum storage duration: 2 Years | Type: Marketing Cookies
    OTZ

    Used by Google to personalize ads on Google properties, like Google Search.

    Maximum storage duration: 1 Month | Type: Marketing Cookies
    __Secure-1PAPISID, __Secure-1PSID

    Used 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 Cookies

Cookies 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.