{"id":955,"date":"2007-08-13T05:45:08","date_gmt":"2007-08-13T05:45:08","guid":{"rendered":"http:\/\/www.amibroker.org\/userkb\/2007\/08\/13\/3-io-fitness-goals-and-constraints\/"},"modified":"2012-08-17T11:04:55","modified_gmt":"2012-08-17T11:04:55","slug":"3-io-fitness-goals-and-constraints","status":"publish","type":"post","link":"http:\/\/www.amibroker.org\/editable_userkb\/2007\/08\/13\/3-io-fitness-goals-and-constraints\/","title":{"rendered":"IO – Fitness, Goals and Constraints"},"content":{"rendered":"

This page is obsolete. Current versions of AmiBroker feature built-in non-exhaustive, smart multithreaded optimizer and walk-forward engine.<\/font><\/b><\/p>\n

In AmiBroker we\u00a0have the capability to sort the results from optimization in AA based on any number of columns of performance metrics that are returned to us from the process but what if we want to be able to:\u00a0<\/p>\n

\u00b7\u00a0\u00a0\u00a0 Prioritize the\u00a0results based on some combination of performance metrics written as an equation without having to use the custom back tester which while very capable does have an impact on run time\u00a0<\/p>\n

If we could optimize systems based on the results of equations, which I will term Fitness, that we can write outside of normal AFL then this leaves us the flexibility to optimize on virtually anything without having to constantly rewrite potentially complex segments of code in the custom back tester.\u00a0 As examples we should be able to optimize for Fitness\u00a0based on simple expressions like:\u00a0<\/p>\n

\u00a0\u00a0\u00a0\u00a0 –\u00a0\u00a0 \u00a0Fitness = CAR \/ MDD ^ 1.5\u00a0<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Which allows us to value having a low MDD more highly then having a high CAR<\/p>\n

\u00a0\u00a0\u00a0\u00a0 –\u00a0\u00a0\u00a0 Fitness = CAR * 0.98 ^ Trades \/ MDD\u00a0<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Which allows us to value solutions with fewer trades as being more important\u00a0<\/p>\n

\u00a0\u00a0 \u00a0 –\u00a0\u00a0\u00a0 Fitness = UM1PH * CAR \/ MDD\u00a0<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Which\u00a0allows us to incorporate\u00a0a\u00a0User Metric from the custom back tester in conjunction with other standard AmiBroker\u00a0metrics\u00a0<\/p>\n

\u00b7\u00a0\u00a0\u00a0 Penalize\u00a0potential solutions because they don’t\u00a0meet certain Goals or Constraints we have such as having CAR that is too low or number of Trades that are\u00a0too high for an\u00a0intermediate term system we are trying to develop. \u00a0This would allow us to write and have optimization utilize statements like:<\/p>\n

\u00a0\u00a0\u00a0\u00a0 –\u00a0\u00a0\u00a0\u00a0Goal = CAR > 30<\/p>\n

\u00a0\u00a0\u00a0\u00a0 –\u00a0\u00a0\u00a0\u00a0Goal = Trades: < 50<\/p>\n

\u00a0 \u00a0\u00a0 –\u00a0\u00a0\u00a0\u00a0Constraint =\u00a0MDD < 10<\/p>\n

These are standard shareware features in IO<\/em>.<\/p>\n

A\u00a0shareware version of IO<\/em> with full documentation can be found in the AmiBroker Files Section …
\nhttp:\/\/groups.yahoo.com\/group\/amibroker\/files\/IO.zip<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"

This page is obsolete. Current versions of AmiBroker feature built-in non-exhaustive, smart multithreaded optimizer and walk-forward engine. In AmiBroker we\u00a0have the capability to sort the results from optimization in AA based on any number of columns of performance metrics that are returned to us from the process but what if we want to be able […]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[115],"tags":[],"_links":{"self":[{"href":"http:\/\/www.amibroker.org\/editable_userkb\/wp-json\/wp\/v2\/posts\/955"}],"collection":[{"href":"http:\/\/www.amibroker.org\/editable_userkb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.amibroker.org\/editable_userkb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.amibroker.org\/editable_userkb\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"http:\/\/www.amibroker.org\/editable_userkb\/wp-json\/wp\/v2\/comments?post=955"}],"version-history":[{"count":3,"href":"http:\/\/www.amibroker.org\/editable_userkb\/wp-json\/wp\/v2\/posts\/955\/revisions"}],"predecessor-version":[{"id":3498,"href":"http:\/\/www.amibroker.org\/editable_userkb\/wp-json\/wp\/v2\/posts\/955\/revisions\/3498"}],"wp:attachment":[{"href":"http:\/\/www.amibroker.org\/editable_userkb\/wp-json\/wp\/v2\/media?parent=955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.amibroker.org\/editable_userkb\/wp-json\/wp\/v2\/categories?post=955"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.amibroker.org\/editable_userkb\/wp-json\/wp\/v2\/tags?post=955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}