MT4 Sidekick
Overview
MT4 Sidekick — Demo Account Barometer
MT4 Sidekick is a new and innovative tool that uses a Demo Account to create a database of trade results that is shared with a Live Account. When a strategy (EA) in a Live Account receives a trade signal it checks the database to determine how that strategy is currently performing in the Demo Account. If the strategy is currently performing well in the Demo Account then a new position is opened in the Live Account — otherwise, the signal is ignored.
The idea is very simple, two accounts — Demo and Live — running the same portfolios and strategies. The strategies in the Demo Account are allowed to trade with no restrictions and are used to create and update an active, shared database of trading results. When a strategy in the Live Account receives a signal it checks the database before opening a new position. In this way the Live Account can use the Demo Account as a barometer to determine how a strategy is performing in the current market. The availability of a barometer that measures current performance and which can be accessed before a position is opened is a powerful technique. A strategy’s performance will vary depending on patterns that occur in the current, incoming data — and the incoming data is always changing. So, taking advantage of a Demo Account in this way — i.e. as a “barometer” — opens up a new way of managing EAs and trades that can be used to your advantage to provide a real “edge”.
Requirements:
- High-quality strategies generated / trained by FSB-Pro. Using MT4 Sidekick is not a substitute for creating good strategies — that should still be the #1 priority. High-quality strategies are ones with excellent back testing statistics and Win / Loss percent in the high 80% (or higher).
- Confidence in your broker’s Demo Account. That is, you’ve determined your strategies and portfolio EAs perform similarly in Demo and Live accounts.
- Our Portfolio Maker tool is used to combine individual FSB-Pro strategies into a portfolio EA. Portfolio Maker is required because it inserts code into the portfolio EA that knows how to access MT4 Sidekick’s shared database.
MT4 Sidekick is an EA (Expert Advisor) that runs in your Demo Account. It keeps track of all trades and maintains a database of all trades — strategy-by-strategy (i.e. by Magic Number). The same portfolio EA(s) that you created using FSB-Pro and Portfolio Maker run in both this Demo Account and your Live Account. When a strategy in the Live Account receives a signal, it checks the shared database to determine how the strategy is currently performing under current market conditions. If the check passes then a new position is opened in the Live Account — otherwise the signal is ignored.
License Key Activation
After installing the application, the first time you launch the program it will prompt for the license key — which was sent by email. After the license key is entered it will be stored on your machine so subsequent launches will not require that you again input the license key.
Installing To Demo And Live Accounts
MT4 Sidekick is easy to install — it consists of two files: SidekickEA.ex4 and Sidekick.dll. Both are copied to your Demo Account’s MetaTrader 4 installation folder — SidekickEA.ex4 to the …\MQL4\Expert folder and Sidekick.dll to the …\MQL4\Libraries folder. There is one important requirement — you really must close all running instances of MetaTrader’s Terminal.exe. This is because MetaTrader loads DLLs into memory and never releases them, making it impossible to update a DLL when Terminal.exe is running. If this is the first time you are installing MT4 Sidekick then it may not be necessary to close Terminal.exe — but you should be aware of this requirement as future updates become available.
The SidekickEA.ex4 Expert Advisor only needs to be installed to Demo Accounts, whereas the Sidekick.dll is installed to both Demo and Live Accounts. To facilitate installing these files, the MT4 Installer application can be used. The installer can copy the SidekickEA.ex4 and Sidekick.dll files to your MetaTrader installation folders — up to 5 Demo or Live accounts. After selecting the Data Path(s) of your MetaTrader installation folders, check the CheckBox on the left and press the ‘Install’ button. Again, be aware that in order to update a DLL the corresponding Terminal.exe program must NOT be running.
Just to be clear — Sidekick.dll is required by both your Demo and Live Accounts, whereas SidekickEA.ex4 is only run within the Demo Account. It is okay if SidekickEA.ex4 is copied to a Live Account — simply ignore it.
SidekickEA.ex4 is an Expert Advisor — attach it to a chart window and it will begin running. You can choose any symbol or time frame — it doesn’t matter — also, there are no input parameters to set. When you attach SidekickEA.ex4 to a chart it will create a database of all trade results for the Demo account — depending on the number of trades this could take a few seconds or a couple of minutes. The SidekickEA.ex4 is harmless — it does not trade. It simply creates a database when first attached to a chart, and then updates that database as trades are completed.
The image above shows SidekickEA.ex4 running in a Demo account. When you press the “Show Stats” button a grid should appear that summarizes all trade results. This is one way to confirm that the shared database has been created.
Attach Portfolio EA To DEMO And LIVE Accounts
Demo Account
The final step is to attach your portfolio EA to both the Demo and Live Accounts — i.e. the same portfolio EA is attached to both accounts. The portfolio EA is created by Portfolio Maker, which combines individual strategies generated / optimized by Forex Strategy Builder Professional. Portfolio Maker is required because it inserts the code that knows how to access the shared database created by the Sidekick expert advisor (SidekickEA.ex4).
The image below shows the input settings for the portfolio EA when attached to a Demo account. Please use the default settings. This is because you want the portfolio EA to trade without any restrictions in the Demo account. The first input setting “Use Sidekick to monitor Demo Account” should be false.
Live Account
The image below shows the input settings for the portfolio EA when attached to a Live account. In this case the input settings are important since the code needs to know which shared database to access.
- Use Sidekick to monitor Demo Account: true
- Demo Account Number to monitor: [account number used to create the shared database]
- Which policy to use? [we recommend ‘Consecutive Wins’]
There are currently 4 “policies” (or rules) you can choose from. When a strategy in the Live Account detects a signal it checks the shared database to determine whether the policy has been satisfied. If ‘yes’, then a new position is opened — otherwise, the signal is ignored. The 4 policies are:
- Policy #1: Minimum Win Ratio for the most recent 10 trades
- Policy #2: Minimum Consecutve Wins
- Policy #3: Win Ratio OR Consecutive Wins
- Policy #4: Win Ratio AND Consecutive Wins
Though you are free to experiment, we recommend using Consecutive Wins. In the FAQ page we briefly describe why that is our preference, along with additional comments about MT4 Sidekick and Portfolio Maker.
Additional Features
Demo Stats
Pressing the ‘Demo Stats’ button will list the current trading status of those strategies that belong to the current portfolio EA. For example, in the image below, the portfolio EA contains 40 strategies. When the ‘Demo Stats’ button is pressed then the ‘Experts’ tab lists the status of the 16 strategies that have traded so far. And, among those 16 strategies, 5 have 2 or more consecutive wins. If we had instead been using Policy #1 (Win Ratio), then win ratios would have been reported.
Disable (Enable) Trading
Pressing the ‘Disable Trading’ button prevents new positions from being opened. Positions that are currently open will remain open and only close when the appropriate signal is detected.
Disable (Enable) Sidekick
Pressing the ‘Disable Sidekick’ button means the portfolio EA will no longer refer to the shared database when deciding whether or not to open a new position.
Database
The shared database created by the Demo Account is implemented as a folder with files. The name of the folder is the Demo Account’s number, and the names of the individual files are the magic numbers of each strategy. For example, the image below shows the database for Demo Account number ‘123456’, along with the magic numbers of those strategies that have traded so far. Strategies that have not yet traded will not appear in the database.
The individual files are text files that contain trade results for each strategy. For example, the image below shows the trade results for strategy ‘195001064’.
Trouble Shooting
As an aid to help confirm the portfolio EA is working properly in the Live Account, we’ve color-coded the chart’s background. Below are some examples:
Example #1:
SidekickEA is not running and a database does not exist. This would occur if SidekickEA has never been run previously.
Example #2:
SidekickEA is not currently running, but a database does exist. This would occur if SidekickEA had been run in the past but is not currently running in a Demo Account
Example #3:
SidekickEA is currently running and a database exists — suggesting the software is working as expected.
Portfolio Maker
Introduction
Portfolio Maker
Combine FSBPro-Generated Strategies Into A Single EA
Forex Strategy Builder Professional is the leading software platform for generating and analyzing advanced MetaTrader strategies. It provides an easy way to build forex strategies by combining various technical indicators, and enables users to create Expert Advisors (EA) that act at several levels — by using logical groups for the trading rules.
Portfolio Maker is a new tool that allows you to bundle the individual strategies created by Forex Strategy Builder Professional into a single EA. This makes it much easier to manage and trade a portfolio of FSBPro-generated strategies.
Forex Strategy Builder uses a Strategy Generator that creates 1000’s of strategies per hour. The best strategies are automtically added to a ‘Collection’, where they can later be filtered (using a variety of different metrics), refined, back-tested and re-optimized to achieve the best statistics. Once you are satisfied with the results, the source code (*.mq4) for each strategy can be exported as stand-alone Expert Advisor (EA) to be used in the MetaTrader trading platform.
With Forex Strategy Builder you create a “portfolio” of dozens, finely tuned, individual EAs. However, an important limitation of MetaTrader requires that each EA be attached to a separate chart. This creates a new set of problems that traders didn’t have to contend with prior to EA portfolios:
- MetaTrader is limited to 100 charts
- Each MetaTrader chart consumes CPU resources — such that a single instance of a MetaTrader terminal session can consume the majority of a machine’s resources and cause it to perform sluggishly
- It is tedious, time-consuming and error-prone to manually create dozens of charts and attach individual EAs
Whereas previously our time and effort was spent on developing one (or a few) profitable EAs, with Forex Strategy Builder Professional we now have a new problem — how to manage portfolios that include dozens or 100’s of strategies. What a great problem to have!! Well — Portfolio Maker provides a solution. Not only can you now bundle dozens or hundreds of strategies into a single EA, but you can also back test this portfolio EA in MT4’s Strategy Tester and also analyze those results using MT4 Tracker. It really doesn’t get any better than this…
Portfolio Maker is a Windows application that can be used to bundle individual strategies created by FSB Professional into a single EA. It was developed to complement Popov’s software that generates large collections of profitable EAs — where each EA is attached to its own MT4 chart. There are a number of compelling benefits to be gained by combining a portfolio of individual strategies into a single EA:
Portfolio Maker Features (referring to the resultant portfolio EA):
- The Portfolio EA Requires Only ONE MT4 chart
- The Portfolio EA Can Be Back-Tested Using MT4’s Strategy Tester
- The Back-Testing Results Can Be Further Analyzed By MT4 Tracker
How To Use
Portfolio Maker is easy to use. However, there are a number of steps to follow — so, please pay close attention. The reason why these steps are necessary is because we are taking the source code (*.mq4) from many stand-alone Expert Advisors, extracting the strategies and indicators, and rearranging the source code so it can be re-built as a single, portfolio EA.
Here are the steps we’ll be performing:
- Use FSB Pro to create the strategies you wish to combine into a single, portfolio EA.
- From FSB Pro, export the strategies in the form of their *.mq4 source files.
- Launch Portfolio Maker and add all the *.mq4 strategy files that will be combined into a single, EA.
- Specify the location of your MetaTrader ‘MQL4’ folder so that Portfolio Maker will know where to create all the intermediate files necessary to build a single EA.
- From Portfolio Maker, press the ‘Create’ button to actually create all the *.mq4 and *.mqh source code files.
- From within the MetaEditor program, locate (in the ‘Experts’ folder) the *.mq4 file that was just created and press the ‘Compile’ button. This will compile the main *.mq4 along with all the support *.mqh files necessary to build this single EA that now includes all your strategies.
Before we begin, there is one important requirement that must be followed in order for this all to work — and that is you must use magic numbers as the filenames for all your individual strategies. This is how Portfolio Maker helps you keep track of strategies and their corresponding magic number — we do this by using magic numbers as filenames. Also, it is possible for Portfolio Maker to programmatically determine the filenames and, in this way, frees you from having to manually input magic numbers. Below is an example:
As as example, we use the following format to name strategy files — you can choose something completely different. The only requirement is the filename must be a valid magic number — that is, it can only include numerals (no letters, punctuation, spaces, etc):
We follow a particular format when creating filenames — again, you can choose something different, whatever you think works best:
We use the format S-P-GGG-NNN, where
S => Symbol
P => Period
G => Group Number
N => Strategy Number (within the group)
For ‘S’ we use:
1 => EURUSD
2 => USDCHF
3 => USDJPY
4 => GBPUSD
For ‘P’ we use:
1 => M1
2 => M5
3 => M15
4 => M30
5 => H1
6 => H4
7 => D1
Examples:
16018001 => EURUSD, H4, Group 18, Strategy #1
26002005 => USDCHF, H4, Group 2, Strategy #5
And then we’ll save the strategies in folders with names such as ‘16018xxx’ — e.g. folder 16018xxx includes 26 strategies, with filenames 16018001.xml through 16018026.xml.
Once you’ve created your strategies (*.xml) and exported the corresponding *.mq4 files, then we are ready to begin…
Step 1: Enter a name for the new, portfolio EA *.mq4 file. This is how it will appear in MetaTrader. Do not include the *.mq4 extention — Portfolio Maker will automatically add that.
Step 2: Enter a short description of the portfolio. This will be displayed near the top of the MetaTrader chart.
Step 3: Very important — enter the location of your MetaTrader’s ‘MQL4’ folder. This is easily found from within the MetaTrader terminal using the main menu: File / Open Data Folder / and select the ‘MQL4’ folder. The reason this is important is because within the MQL4 folder lives the ‘Experts’ and ‘Include’ folders where Portfolio Maker creates the *.mq4 and *.mqh files you’ll need for building the single EA.
Step 4: Using the ‘Add’ button, navigate to the folder where all the *.mq4 strategy files were located and select the ones you wish to add to the portfolio EA.
Step 5: Decide whether the entry size of each position will be based on lots or percent (of account). A portfolio can NOT be a mixture of strategies that use lots and percentages — choose one. If using lots, the 4 input values should be in terms of lots. If using percent, the 4 input values should be percentages. These input values are applied globally and do overwrite the original values that were used when the strategy was created by FSB-Pro. Please keep in mind when using percent the strategy code treats these values as percentages and the algorithm used to convert to lots will divide by 100. So, if you specify a percent that is too small — e.g. 0.01 — then the conversion will fail because the computed lot size will be zero. We’ve tested using percentages of 1 or greater.
Step 6: Press the ‘Create’ button. This creates the *.mq4 and *.mqh files you’ll subsequently need for building the single, portfolio EA.
Step 7: You are almost done. What remains is to launch MetaEditor, locate the *.mq4 file that you named in ‘Step 1’ and press the ‘Compile’ button. If all goes well then a new *.ex4 file will be created — this is your new portfolio EA that includes all your strategies. This file is completely self-contained and you can copy it to other MetaTrader installations without any other requirements.
Step 8: This step is optional — though very useful. You can now use MetaTrader’s Strategy Tester to back-test your portfolio EA. We do not recommend using the ‘Every tick’ model — since that would probably take a few years. But using ‘Open prices’ or ‘Control points’ will usually complete within a few minutes — depending on how many strategies are included in your portfolio, the data horizon, and the period. The more data points that are included in your back test, then the longer it will take. To give you an idea, our favorite period is H4 and we’ll use a data horizon of 6 – 12 months, which may take around 3 minutes to complete on a fast machine. And, finally, when the back-test completes it will create a special log file that includes all the trades. This log file can then be used by MT4 Tracker to further analyze how each of your strategies performed during the back-testing period.
Input Values
There are two types of input values:
- Entered from Portfolio Maker
- Entered from the EA when attaching to a chart
Input Values Entered From Portfolio Maker
The amounts used for ‘Entry’, ‘Maximum’, ‘Adding’ and “Reducing’ are ‘global’ values that apply to all the strategies in a portfolio. It may be that when creating strategies in FSB-Pro your different strategies use different amounts. And this makes sense when strategies are intended to be used individually. But when strategies are combined into a single EA, then these amounts take on a different meaning. It now makes sense for the amounts to be the same for each strategy in the portfolio because it gives you some control over how much of your account is at risk when the portfolio is trading.
Input Values Entered When Attaching The Portfolio EA To A Chart
Your portfolio EA may contain dozens (or hundreds) of strategies, and managing the overall trading pattern of a portfolio EA is much different than a single EA — i.e. if you don’t pay close attention then your exposure can quickly grow larger than what you are comfortable with. These inputs allow you some control over how frequently your portfolio will open new positions.
Stop trading when FreeMargin drops below this value: If account’s Free Margin drops below this value then do not open any new trades. Default is ‘0’.
Stop trading when Balance drops below this value: If account’s Equity drops below this value, the expert will close out all positions and stop automatic trading. Default is ‘500’.
Stop trading when Margin exceeds this value: If account’s Margin rises above this value then do not open any new trades. Default is ‘99999’.
Stop trading when opened positions exceed this value: If portfolio’s open positions exceed this value then do not open any new trades. Default is ‘99999’.
Stop trading when floating loss drops below this value: If account’s floating loss drops below this value then do not open any new trades. Default is ‘-99999’.
For example, suppose you want to stop using a portfolio EA but there are still a number of open (pending) trades. If you set the 3rd input (‘Stop trading when Margin exceeds this value’) to ‘1’, then no new trades will be opened and pending trades will gracefully close. The alternative would be to remove the EA (or close the chart window) and then manually close each pending trade.
The 3rd input can also be useful if you wish to limit the number of pending trades if you discover the portfolio is opening more trades than you are comfortable with.
Minimum WinRatio (per strategy): If a strategy’s WinRatio falls below this value (e.g. 0.60), then it will no longer be able to open new positions. However, it will still be used to close any positions that currently remain open.
Maximum Consecutive Losses (per strategy): If a strategy’s consecutive losses exceeds this value (e.g. 2) , then it will no longer be able to open new positions. However, it will still be used to closed any positions that currently remain open.
Licensing
Portfolio Maker software is copyrighted © by Nuts About Nets, 2006-2017.
FSB Portfolio Maker – Application For Creating A Portfolio Expert Advisor From FSB-Generated Strategies
END USER LICENSE AGREEMENT (EULA)
Except where otherwise noted, all of the documentation and software included in the Portfolio Maker software package is copyrighted by Nuts About Nets, LLC.
IMPORTANT-READ CAREFULLY:
This Nuts About Nets, LLC End-User License Agreement (“EULA”) is a legal agreement between you (either an individual or a single entity) and Nuts About Nets, LLC for the Portfolio Maker software product identified above, which includes computer software and may include associated media, printed materials, additional computer software applications, and “online” or electronic documentation (“SOFTWARE PRODUCT”).
By downloading, installing, copying, running, executing, or otherwise using any portion of the SOFTWARE PRODUCT, you agree to be bound by the terms of this EULA. If you do not agree to be bound to the terms of this EULA, then please do not download, install, accept (for example, and not by way of limitation, by checking the “I DO NOT ACCEPT” box in connection with this EULA at the beginning of the software download, installation, and/or initial execution process), or permit others to download, install, copy, run, execute, or otherwise use the SOFTWARE PRODUCT.
SOFTWARE PRODUCT LICENSE
The SOFTWARE PRODUCT is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The SOFTWARE PRODUCT is licensed, not sold.
1. GRANT OF LICENSE. This EULA grants you the following rights:
a. SOFTWARE PRODUCT. You may install and use one copy of the SOFTWARE PRODUCT on a single computer, including a workstation, laptop or notebook machine, terminal or other digital electronic device (“COMPUTER”).
b. Storage/Network Use.
You may also store or install a copy of the SOFTWARE PRODUCT on a storage device, such as a network server, used only to install or run the SOFTWARE PRODUCT on your other COMPUTERS over an internal network; however, you must acquire and dedicate a license for each separate COMPUTER on or from which the SOFTWARE PRODUCT is installed, used, accessed, displayed or run. A license for the SOFTWARE PRODUCT may not be shared or used concurrently on different COMPUTERS.
c. No Sale. You acknowledge and agree that this copy of the SOFTWARE PRODUCT has been licensed to you pursuant to the terms and conditions of this EULA and that such copy of the SOFTWARE PRODUCT has not been sold to you. In addition, you acknowledge that this copy of the SOFTWARE PRODUCT is not subject to the “first sale” doctrine as that term is defined in United States Copyright laws.
d. Restrictions. You agree (i) not to copy, transfer, assign, rent, resell, distribute or use the SOFTWARE PRODUCT other than as expressly authorized in this EULA, (ii) not to remove any copyright notice, trademark notice, and/or other proprietary legend or indication of confidentiality set forth on or contained in the SOFTWARE PRODUCT, and (iii) to refrain from using the SOFTWARE PRODUCT for any other purpose other than as expressly authorized in this EULA.
2. DESCRIPTION OF OTHER RIGHTS AND LIMITATIONS.
a. Limitations on Reverse Engineering, Decompilation, and Disassembly. You may not reverse engineer, decompile, recompile, precompile, disassemble, hack, port, or otherwise attempt to discover the source code to the SOFTWARE PRODUCT.
b. Support Services. Nuts About Nets, LLC may provide you with support services related to the SOFTWARE PRODUCT (“Support Services”). Any supplemental software code provided to you as part of the Support Services shall be considered part of the SOFTWARE PRODUCT and subject to the terms and conditions of this EULA.
c. Software Transfer. You may permanently transfer all of your rights under this EULA, provided you retain no copies, you transfer all of the SOFTWARE PRODUCT (including all component parts, the media and printed materials, any upgrades, and this EULA) and the recipient agrees to the terms of this EULA. If the SOFTWARE PRODUCT is an upgrade, any transfer must include all prior versions of the SOFTWARE PRODUCT.
d. Termination. Without prejudice to any other rights, Nuts About Nets, LLC may terminate this EULA if you fail to comply with the terms and conditions of this EULA. In such event, you must destroy all copies of the SOFTWARE PRODUCT and all of its component parts.
3. INTELLECTUAL PROPERTY RIGHTS.
All title and intellectual property rights in and to the SOFTWARE PRODUCT, and any copies you are permitted to make herein are owned by Nuts About Nets, LLC. Furthermore, you agree that Nuts About Nets, LLC owns all right, title, interest, and intellectual property rights in and to the SOFTWARE PRODUCT and in all patents, trademarks, trade names, inventions, copyrights, know how and trade secrets, and any related applications or extensions, relating to the design, manufacture, operation or service of the SOFTWARE PRODUCT.
4. EXPORT RESTRICTIONS.
You acknowledge that the SOFTWARE PRODUCT is subject to United States export jurisdiction. You agree to comply with all applicable international and national laws that apply to the Software Product and/or to the export of technical data, including the United States Export Administration Regulations, as well as end-user, end-use, and destination restrictions issued by the United States and other governments. You agree that you will not export or re-export the SOFTWARE PRODUCT (or portions thereof) to any country, person or entity subject to U.S. export restrictions. You specifically agree not to export or re-export the SOFTWARE PRODUCT (or portions thereof): (i) to any country subject to a U.S. embargo or trade restriction; (ii) to any person or entity who you know or have reason to know will utilize the SOFTWARE PRODUCT (or portion thereof) in the production of nuclear, chemical or biological weapons; or (iii) to any person or entity who has been denied export privileges by the U.S. government.
5. DISCLAIMER OF WARRANTIES.
To the maximum extent permitted by applicable law, Nuts About Nets, LLC and its suppliers provide the SOFTWARE PRODUCT and any (if any) Support Services “AS IS AND WITH ALL FAULTS”, and hereby disclaim all warranties and conditions, either express, implied or statutory, including, but not limited to, any (if any) implied warranties or conditions of merchantability, of fitness for a particular purpose, of non-infringement, of lack of viruses, of accuracy or completeness of responses, of results, of ability to achieve a particular result, of ability to execute uninterrupted or error-free, and of lack of negligence or lack of workmanlike effort, all with regard to the SOFTWARE PRODUCT, and the provision of or failure to provide Support Services. THE ENTIRE RISK AS TO THE QUALITY OF OR ARISING OUT OF USE OR PERFORMANCE OF THE SOFTWARE PRODUCT AND SUPPORT SERVICES, IF ANY, REMAINS WITH YOU.
Specifically, and without limiting the foregoing, you acknowledge that Nuts About Nets, LLC has not made any representations or warranties with respect to the SOFTWARE PRODUCT or the functionality thereof and has made no representations or warranties with respect thereto. In addition, you acknowledge that you have selected the SOFTWARE PRODUCT, and that Nuts About Nets, LLC makes no representations or warranties with respect to the fitness of the SOFTWARE PRODUCT for any purpose.
6. NO SUPPORT
Nothing in this EULA shall obligate Nuts About Nets, LLC to provide any support for the SOFTWARE PRODUCT. Nuts About Nets, LLC may, but shall be under no obligation to, correct any defects in the SOFTWARE PRODUCT and/or provide updates to You of the SOFTWARE PRODUCT. You shall promptly report to Nuts About Nets, LLC any defects You find in the SOFTWARE PRODUCT to aid Nuts About Nets, LLC in creating improved revisions of such items.
7. EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER DAMAGES.
To the maximum extent permitted by applicable law, in no event shall Nuts About Nets, LLC or its suppliers be liable under any theory of liability for any special, incidental, indirect, or consequential damages whatsoever (including, but not limited to, damages for loss of profits or confidential or other information, for business interruption, for personal injury, for loss of privacy, for failure to meet any duty including of good faith or of reasonable care, for negligence, and for any other pecuniary or other loss whatsoever) arising out of or in any way related to the use of or inability to use the SOFTWARE PRODUCT, the provision of or failure to provide support services, or otherwise under or in connection with any provision of this EULA, even in the event of the fault, tort (including negligence), strict liability, breach of contract or breach of warranty of Nuts About Nets, LLC or any supplier, and even if Nuts About Nets, LLC or any supplier has been advised or should know of the possibility of such damages.
8. LIMITATION OF LIABILITY AND REMEDIES.
Notwithstanding anything to the contrary contained in this EULA, and without limiting any other rights, remedies, limitations, or restrictions in this EULA or under law, Nuts About Nets, LLC will not be liable with respect to any subject matter of this EULA under any contract, negligence, strict liability, or other theory, at law or in equity, for any amounts aggregating in excess of amounts paid to it under this agreement in the twelve (12) month period before the cause of action arose.
9. INDEMNITY
You hereby agree to indemnify, protect, defend and hold Nuts About Nets, LLC harmless from and against any and all claims, losses and damages, including without limitation, reasonable attorneys’ and experts’ fees and disbursements, (a) which may at any time be asserted against Nuts About Nets, LLC by any party for Your failure to perform any of the covenants, agreements, terms, provisions or conditions contained in this EULA, (b) by any party by reason of Your use or misuse of the SOFTWARE PRODUCT, or (c) resulting from any failure by You to comply with any term or condition of this EULA. The provisions of this Section 10 shall survive the expiration or earlier termination of the EULA.
10. ENTIRE AGREEMENT.
This EULA (including any addendum or amendment to this EULA which is included with the SOFTWARE PRODUCT) is the entire agreement between you and Nuts About Nets, LLC relating to the SOFTWARE PRODUCT and the Support Services (if any or many) and it supersedes all prior or contemporaneous oral or written communications, proposals and representations with respect to the SOFTWARE PRODUCT or any other subject matter covered by this EULA. To the extent the terms of any Nuts About Nets, LLC policies or programs for Support Services conflict with the terms of this EULA, the terms of this EULA shall control.
If any provision of this EULA shall be or become invalid, illegal, or unenforceable in any respect, the validity, legality, and enforceability of the remaining provisions contained herein shall not be affected thereby. No failure or delay in exercising any right or remedy shall operate as a waiver of any such (or any other) right or remedy. Any modification or waiver to this EULA must be in writing and signed by both parties. The language of this EULA shall be construed as a whole, according to its fair meaning and intent, and not strictly for or against either party, regardless of who drafted or was principally responsible for drafting this EULA or any specific term or conditions hereof.
Nothing in this EULA shall be deemed to create any type of agency, joint venture, or partnership relationship between the parties. Neither party shall have any right or authority to bind or obligate the other in any manner to any third party. In the event of any legal proceeding between the parties arising out of or related to this EULA, the prevailing party shall be entitled to recover, in addition to any other relief awarded or granted, its costs and expenses (including reasonable attorneys’ and expert witness’ fees) incurred in any such proceeding.
MT4 Tracker
Introduction
MT4 Forex trading is evolving to take advantage of a new paradigm that employs dozens or hundreds of Expert Advisors. A tool is required to monitor and track the performance of each strategy. MT4 Tracker was developed just for this purpose.
MT4 Tracker is a Windows application that can be used to refine and optimize a portfolio of EAs.
In addition to collecting statistics for each strategy, MT4 Tracker can exclude or “prune” poorly performing strategies from an EA Portfolio Expert and regenerate a new Expert Advisor that trades with greater reliability and profit.
Features of MT4 Tracker:
- Import Account History Report From MT4
- Calculate And View Statistics And Performance Charts
- Monitor the performance of dozens or 100’s of Expert Advisors
- Display performance chart of every Expert Advisor
- Perform “What If” Experiments By Excluding Certain Strategies
- Prune Portfolio Expert To Remove Poorly-Performing Strategies
- Detailed Inspection Of Balance Chart To Identify Cause Of Dips
- Compare Linearity Of Balance Charts Before And After Pruning
Import Account History Report
To begin using MT4 Tracker the Account History report (*.HTM) is exported from MT4 and then imported into MT4 Tracker. The video below shows how to export MT4’s Account History
MT4 Tracker reads and parses the Account History and then populates its Table View, which shows all your trades, along with their corresponding Magic Numbers.
Calculate And View Statistics And Performance Charts
MT4 Tracker reads and parses the Account History and then populates its Table View, which shows all your trades from the MT4 Account History report, along with their corresponding Magic Numbers. Each row in the table represents a single strategy and summarizes its trading results by displaying: Magic Number, Number of Trades, Net Profit, Win Percent, Profit Factor, Expectancy, and Return/DD Ratio statistics. The last column in the table, Exclude, is used to mark the strategy for removal or “pruning” (more on this later).
Monitor Strategy Performance
With the imported data loaded into the Table View, you can now scroll through the list of Magic Numbers and actually see how each strategy is performing. And at the bottom of the window a balance chart for the portfolio as a whole is shown, along with some of its statistics.
Display EA Performance Chart
You can quickly scroll through the performance chart of each EA by pressing the
Perform “What If” Experiments
One of the most useful features of MT4 Tracker is that it gives you the ability to exclude certain strategies and then recalculates the account’s performance. In this way — that is, by comparing the account’s performance with / with out certain strategies — then you can decide which strategies to remove from your portfolio going forward.
The image below shows a couple of ways to exclude strategies. One way is to scroll down the Table View and select each strategy, one-by-one, and view its performance chart. If you don’t like its performance then click the ‘Exclude’ checkbox corresponding to that strategy. A second way is to right-click inside the Table View and a pop-up menu will appear with a few options — e.g. exclude a collection of strategies whose Expectancy, Profit Factor, Win Percent or Return/DD Ratio is below a threshold value that you specify.
Also, you can click on the column headers — e.g. Net Profit, Win Percent, Profit Factor, Expectancy — to sort the strategies from best-to-worst (or vice versa). In this way it may become more apparent which strategies are “keepers” and which should be excluded.
In the example below we show the balance chart for the portfolio “Before” and “After” excluding those strategies whose Return/DD Ratio is < 3. If you examine the statistics for the portfolio as a whole, you can see the improvement can be fairly dramatic when poor-performing strategies are removed.
Recent Trade Results
Whether you are monitoring an older strategy with many trades or a new strategy with few trades, it is often useful to analyze its most recent performance. For example, when deciding whether or not a strategy is ready to move from a demo to live account, Petko Aleksandrov from Forex Academy recommends the “10 trades / 100 pips” rule. (NOTE: When trading 0.01 lots, 100 pips is roughly equivalent to $10 USD). Alternatively, if a strategy has been trading for awhile and you want to view its most recent performance (in order to decide whether or not to exclude it from a portfolio EA), then it is desirable to view some statistics of its most recent trades. The “Recent Trades” feature allows you to view statistics for all your strategies over their last N trades — where you decide what N is.
To use this feature, right-click in the Statistics grid and a pop-up menu appears — select ‘Most Recent Trades’. A small Dialog box appears where you enter the number of most recent trades — e.g. 10.
When you click ‘OK’, then a new window with a statistics grid appears with the same magic numbers as in the main statistics grid. This new grid is a subset of the main one and displays the statistics for the last N trades — e.g. in the example below, the last 10 trades. If a strategy has fewer than 10 total trades, then those results are the same as in the main grid and are also shown.
Prune Poorly-Performing Strategies
MT4 Tracker can take a Portfolio Expert MQ4 input file, remove (or “prune”) those strategies that have been marked for exclusion, and then regenerate a new Portfolio Expert MQ4 output file. This feature is accessed by selecting the “Excluded Strategies” tab. Please note that this feature only applies to EA Studio’s Portfolio Experts.
Along the left-hand side is the list of strategies (i.e. Magic Numbers) that have been marked to be excluded. The “Before” and “After” stats and charts are also shown. To actually make the changes you will need to enter 3 pieces of information and then press the ‘Apply’ button. The 3 pieces of information are: Base Magic Number, Input Portfolio Expert (MQ4) filename, and Output Portfolio Expert (MQ4) filename.
The chart below shows the result of substituting the original Portfolio Expert with a “pruned” one. This is a live “micro” account. At around trade #58 the original Portfolio Expert was replaced with a new “pruned” version where all strategies with winning percentages less than 80% had been removed.
Input Values For Portfolio EA
When MT4 Tracker generates a modified portfolio EA for the purposes of excluding poor-performing strategies or for collecting statistics when testing the portfolio EA in MT4’s Strategy Tester, it adds some additional code to the *.mq4 source code file — including new input values intended to add trading protection when the portfolio is running in an account. The new inputs are described below.
Input Values Entered When Attaching The Portfolio EA To A Chart
Your portfolio EA may contain dozens of strategies, and managing the overall trading pattern of a portfolio EA is much different than a single EA — i.e. if you don’t pay close attention then your exposure can quickly grow larger than what you are comfortable with. These inputs allow you some control over how frequently your portfolio will open new positions.
Stop all trading: When set to ‘true’ then do not open any new trades — effective immediately. Default is ‘false’.
Stop trading when FreeMargin drops below this value: If account’s Free Margin drops below this value then do not open any new trades. Default is ‘0’.
Stop trading when Margin exceeds this value: If account’s Margin rises above this value then do not open any new trades. Default is ‘99999’.
Stop trading when floating loss drops below this value: If account’s floating loss drops below this value then do not open any new trades. Default is ‘-99999’.
For example, suppose you want to stop using a portfolio EA but there are still a number of open (pending) trades. If you set the 3rd input (‘Stop trading when Margin exceeds this value’) to ‘1’, then no new trades will be opened and pending trades will gracefully close. The alternative would be to remove the EA (or close the chart window) and then manually close each pending trade.
The 3rd input can also be useful if you wish to limit the number of pending trades if you discover the portfolio is opening more trades than you are comfortable with.
Minimum WinRatio (per strategy): If a strategy’s WinRatio falls below this value (e.g. 0.50), then it will no longer be able to open new positions. However, it will still be used to close any positions that currently remain open.
Most Recent Number of trades: This refers to how many trades are used when computing the minimum WinRatio (above).
Maximum Consecutive Losses (per strategy): If a strategy’s consecutive losses exceeds this value (e.g. 2) , then it will no longer be able to open new positions. However, it will still be used to closed any positions that currently remain open.
Ignore Strategies
If your account has been active for awhile then it may include many magic numbers you are no longer interested in and which pollute the results. Using this feature you can create a list of magic numbers to ignore. This list will be excluded from both the BEFORE and AFTER computations. You can access this feature from the main menu by selecting Tools / Ignored Strategies…
Custom Period
Similar to the “Ignored Strategies” feature, the Custom Period feature allows you to focus only on those magic numbers that have traded within a narrow data horizon. To use this feature, enter ‘Start’ and ‘End’ dates, check ‘Use Custom Period’ and press the ‘OK’ button. You will then be prompted to (re)open an Account History (*.htm) report file. Only those magic numbers that traded within your Custom Period will be included in the BEFORE and AFTER computations. You can access this feature from the main menu by selecting Tools / Custom Period…
Strategy Tester Analysis
This is one of our favorite features — you can test your portfolio EA using MT4’s Strategy Tester and then analyze the results using MT4 Tracker, just as you would using MT4’s Account History report. By default, MT4’s Strategy Tester does not keep track of magic numbers because it assumes each EA contains a single strategy. However, by adding a little bit of code to the portfolio EA’s OnDeinit() function then when back testing completes we can create a log file with a list of all the trades and their corresponding magic numbers. MT4 Tracker can analyze these back testing results in the same way as it does the Account History report. In this way you can prune the portfolio EA to remove potentially poor-performing strategies *before* adding your portfolio EA to an account.
You can access this feature from the main menu by selecting Tools / Open Tester Log…. From there you will need to navigate to MetaTrader’s “..\tester\files” folder. If you don’t know where this folder is located, you can easily find it from within MetaTrader by selecting File / Open Data Folder. The ‘tester’ folder is in the same directory as MetaTrader’s ‘terminal.exe’ program. As you can see from the image above, the name of the log file follows a specific format — e.g. StrategyTester_[Symbol]_[Period]-[ExpertName].log.
Linearity As A Measure Of Robustness
MT4 Tracker computes “linearity” charts for both the “BEFORE” and “AFTER” portfolio balance charts. How one interprets a portfolio’s balance chart is somewhat subjective, though we do place importance on linearity as a measure of robustness. The reason for this is because in the absence of being able to predict the future, a balance chart that exhibits a linear pattern over its first 200 trades gives us some confidence future trades will continue the pattern.
‘Robustness’ is an elusive property that is highly desirable in all trading systems. It refers to how a particular strategy (or portfolio of strategies) performs over a period of time that includes many trading transactions. A robust strategy is one whose performance is consistent and doesn’t vary. A portfolio that includes a diverse collection of EAs has an advantage over a single EA in terms of its ability to trade in a consistent, robust manner.
From a statistical point of view, one could claim that a linear balance chart infers the portfolio trades in a robust manner. The “Before” and “After” linearity charts allow you to compare portfolio performance before and after pruning poor-performing strategies. R-squared is a statistical measure of how close the data are to a fitted, regression line. Roughly, it is the percentage of data points that contribute to a linear, fitted curve. And if linearity can be considered a measure of robustness, then R-Squared provides a valuable metric by which we can compare one balance chart with another.
Articles of interest:
Regression analysis and interpreting R-squared and Goodness-Of-Fit.
Multi-Market techniques for robust trading strategies.
Monte Carlo approach to stress-test a trading strategy.
Correlating Strategies
The “correlation” chart displays overlaid Balance (blue) and Price (black) charts. In addition, markers can be added to show the trades for one or more strategies. In this way we can (a) determine whether there is any correlation between strategies in terms of their trading patterns, and (b) better see how our strategies and portfolio performs during different market conditions — e.g. trending up, trending down, ranging, etc.
To use this feature it is necessary to import Price chart data (in CSV format) from MetaTrader. If you are not sure how to do this, you can Google “mt4 save csv price chart”. The period (i.e. time frame) does not matter — that is up to you. However, what is important is the data horizon of this data set must include all the dates in your Account History. Also, keep in mind this is a date-based chart (i.e. the X-axis is a date), compared to a trade-based chart where the X-axis is Trade #.
Once the Price chart data is loaded then the graph displays overlaid Balance (blue) and Price (black) charts. The black squares represent the close prices for the bar data that was imported. You may see what appears to be gaps in the Price chart — these are not gaps but, rather, weekend dates when the market is closed. From these overlaid charts it may be interesting to examine how your portfolio, as a whole, performs during different market conditions (i.e. when the price trends up, down or is ranging).
By selecting strategies (magic numbers) from the list then colored markers are added to the Balance chart to show the dates their trades were closed. This information is interesting for a couple of reasons: (a) it shows how strategies perform during different market conditions, and (b) you can see whether or not there is any correlation between the trading patterns of different strategies. If the trading patterns are similar for two strategies it might mean they are duplicates, or it might mean they are equally effective at generating open and close signals.
Using the ‘Show All’ and ‘Clear’ buttons in the upper-right portion of the graph will display (or hide) all the trades for all the strategies. This may be interesting in that now you can see how your portfolio performs, as a whole, across different market conditions.
Source Code Modifications
In order to exclude a strategy from a portfolio EA it is necessary to make a few minor modifications to its source code and then rebuild. MT4 Tracker keeps these changes to a minimum and uses comments — rather than actually deleting lines of code. Below is an example of the types of modifications that are made:
Adding OnDeinit() For Strategy Tester Analysis
It turns out you can use MT4’s Strategy Tester to collect trading data on your portfolio EA that can then be analyzed by MT4 Tracker. This is very useful because it allows you to analyze each strategy’s performance and potentially exclude it from the portfolio before you use the portfolio EA in a demo or live account. Furthermore, MT4’s Strategy Tester uses your broker’s data — which may be slightly different than the data set used to generate / train the strategies in your portfolio EA.
By default, the *.mq4 portfolio EA created by EA Studio does not use an ‘OnDeinit’ function. You can safely add the code below anywhere in the source code file and it will be called by Strategy Tester when the back testing completes. The code inside this OnDeinit() function only executes during back testing — as you can see from the use of the conditional ‘if(true == MQLInfoInteger(MQL_TESTER))’.
MT4 Tracker can also insert this code for you. When you follow the procedure to exclude strategies from the portfolio EA then MT4 Tracker will insert the OnDeinit() function, in addition to modifying the source code to exclude strategies.
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ // $(MT4 TRACKER ) void OnDeinit(const int reason) { if(true == MQLInfoInteger(MQL_TESTER)) { string strLogFilename = "StrategyTester" + "_" + _Symbol + "_" + IntegerToString(_Period) + ".log"; // If the file already exists, then delete it... int handle = FileOpen( strLogFilename, FILE_READ | FILE_TXT ); if (handle != INVALID_HANDLE) { FileClose(handle); FileDelete(strLogFilename); handle = INVALID_HANDLE; } // Create the LogFile... handle = FileOpen(strLogFilename,FILE_CSV|FILE_WRITE|FILE_READ,","); if (handle < 0) { Print("*** ERROR: OnDeInit: Could not create log file: ", strLogFilename ); return; } int PosType; double Lots; datetime OpenTime; double OpenPrice; double StopLossPrice; double TakeProfitPrice; double Profit; double Commission; // long Ticket; string PosComment; long MagicNumber; int iHistoryTotal = OrdersHistoryTotal(); for(int i = 0; i < iHistoryTotal; i++) { if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) { // Print("Error with OrderSelect: ",GetErrorDescription(GetLastError())); // Comment("Cannot check current position!"); continue; } if(OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) { // Print("Trade [" + IntegerToString(i) + "]: Pending Order"); continue; // A pending order. } PosType = OrderType(); OpenTime = OrderOpenTime(); OpenPrice = OrderLots() * OrderOpenPrice(); Lots = OrderLots(); Commission = OrderCommission(); Profit = OrderProfit() + OrderCommission(); StopLossPrice = OrderStopLoss(); TakeProfitPrice = OrderTakeProfit(); PosComment = OrderComment(); MagicNumber = OrderMagicNumber(); string text = "Trade [" + IntegerToString(i) + "]: " "Time=" + TimeToString(OpenTime,TIME_SECONDS) +", "+ "Type=" + (PosType==OP_BUY ? "Long" : "Short") +", "+ "Lots=" + DoubleToString(Lots,2) +", "+ "Price=" + DoubleToString(OpenPrice,_Digits) +", "+ "StopLoss=" + DoubleToString(StopLossPrice,_Digits) +", "+ "TakeProfit=" + DoubleToString(TakeProfitPrice,_Digits) +", "+ "Commission=" + DoubleToString(Commission,2) +", "+ "MagicNumber=" + IntegerToString(MagicNumber) +", "+ "Profit=" + DoubleToString(Profit,2); string text2 = IntegerToString(MagicNumber) + "::" + DoubleToString(Profit,2); // Write line to log file... FileWrite( handle, text2 ); } FileFlush(handle); FileClose(handle); } return; }
Licensing
MT4 Tracker software is copyrighted © by Nuts About Nets, 2006-2017.
MT4 Tracker – Application For Managing And Optimizing MT4 Strategy Portfolios
END USER LICENSE AGREEMENT (EULA)
Except where otherwise noted, all of the documentation and software included in the MT4Tracker software package is copyrighted by Nuts About Nets, LLC.
IMPORTANT-READ CAREFULLY:
This Nuts About Nets, LLC End-User License Agreement (“EULA”) is a legal agreement between you (either an individual or a single entity) and Nuts About Nets, LLC for the MT4Tracker software product identified above, which includes computer software and may include associated media, printed materials, additional computer software applications, and “online” or electronic documentation (“SOFTWARE PRODUCT”).
By downloading, installing, copying, running, executing, or otherwise using any portion of the SOFTWARE PRODUCT, you agree to be bound by the terms of this EULA. If you do not agree to be bound to the terms of this EULA, then please do not download, install, accept (for example, and not by way of limitation, by checking the “I DO NOT ACCEPT” box in connection with this EULA at the beginning of the software download, installation, and/or initial execution process), or permit others to download, install, copy, run, execute, or otherwise use the SOFTWARE PRODUCT.
SOFTWARE PRODUCT LICENSE
The SOFTWARE PRODUCT is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The SOFTWARE PRODUCT is licensed, not sold.
1. GRANT OF LICENSE. This EULA grants you the following rights:
a. SOFTWARE PRODUCT. You may install and use one copy of the SOFTWARE PRODUCT on a single computer, including a workstation, laptop or notebook machine, terminal or other digital electronic device (“COMPUTER”).
b. Storage/Network Use.
You may also store or install a copy of the SOFTWARE PRODUCT on a storage device, such as a network server, used only to install or run the SOFTWARE PRODUCT on your other COMPUTERS over an internal network; however, you must acquire and dedicate a license for each separate COMPUTER on or from which the SOFTWARE PRODUCT is installed, used, accessed, displayed or run. A license for the SOFTWARE PRODUCT may not be shared or used concurrently on different COMPUTERS.
c. No Sale. You acknowledge and agree that this copy of the SOFTWARE PRODUCT has been licensed to you pursuant to the terms and conditions of this EULA and that such copy of the SOFTWARE PRODUCT has not been sold to you. In addition, you acknowledge that this copy of the SOFTWARE PRODUCT is not subject to the “first sale” doctrine as that term is defined in United States Copyright laws.
d. Restrictions. You agree (i) not to copy, transfer, assign, rent, resell, distribute or use the SOFTWARE PRODUCT other than as expressly authorized in this EULA, (ii) not to remove any copyright notice, trademark notice, and/or other proprietary legend or indication of confidentiality set forth on or contained in the SOFTWARE PRODUCT, and (iii) to refrain from using the SOFTWARE PRODUCT for any other purpose other than as expressly authorized in this EULA.
2. DESCRIPTION OF OTHER RIGHTS AND LIMITATIONS.
a. Limitations on Reverse Engineering, Decompilation, and Disassembly. You may not reverse engineer, decompile, recompile, precompile, disassemble, hack, port, or otherwise attempt to discover the source code to the SOFTWARE PRODUCT.
b. Support Services. Nuts About Nets, LLC may provide you with support services related to the SOFTWARE PRODUCT (“Support Services”). Any supplemental software code provided to you as part of the Support Services shall be considered part of the SOFTWARE PRODUCT and subject to the terms and conditions of this EULA.
c. Software Transfer. You may permanently transfer all of your rights under this EULA, provided you retain no copies, you transfer all of the SOFTWARE PRODUCT (including all component parts, the media and printed materials, any upgrades, and this EULA) and the recipient agrees to the terms of this EULA. If the SOFTWARE PRODUCT is an upgrade, any transfer must include all prior versions of the SOFTWARE PRODUCT.
d. Termination. Without prejudice to any other rights, Nuts About Nets, LLC may terminate this EULA if you fail to comply with the terms and conditions of this EULA. In such event, you must destroy all copies of the SOFTWARE PRODUCT and all of its component parts.
3. INTELLECTUAL PROPERTY RIGHTS.
All title and intellectual property rights in and to the SOFTWARE PRODUCT, and any copies you are permitted to make herein are owned by Nuts About Nets, LLC. Furthermore, you agree that Nuts About Nets, LLC owns all right, title, interest, and intellectual property rights in and to the SOFTWARE PRODUCT and in all patents, trademarks, trade names, inventions, copyrights, know how and trade secrets, and any related applications or extensions, relating to the design, manufacture, operation or service of the SOFTWARE PRODUCT.
4. EXPORT RESTRICTIONS.
You acknowledge that the SOFTWARE PRODUCT is subject to United States export jurisdiction. You agree to comply with all applicable international and national laws that apply to the Software Product and/or to the export of technical data, including the United States Export Administration Regulations, as well as end-user, end-use, and destination restrictions issued by the United States and other governments. You agree that you will not export or re-export the SOFTWARE PRODUCT (or portions thereof) to any country, person or entity subject to U.S. export restrictions. You specifically agree not to export or re-export the SOFTWARE PRODUCT (or portions thereof): (i) to any country subject to a U.S. embargo or trade restriction; (ii) to any person or entity who you know or have reason to know will utilize the SOFTWARE PRODUCT (or portion thereof) in the production of nuclear, chemical or biological weapons; or (iii) to any person or entity who has been denied export privileges by the U.S. government.
5. DISCLAIMER OF WARRANTIES.
To the maximum extent permitted by applicable law, Nuts About Nets, LLC and its suppliers provide the SOFTWARE PRODUCT and any (if any) Support Services “AS IS AND WITH ALL FAULTS”, and hereby disclaim all warranties and conditions, either express, implied or statutory, including, but not limited to, any (if any) implied warranties or conditions of merchantability, of fitness for a particular purpose, of non-infringement, of lack of viruses, of accuracy or completeness of responses, of results, of ability to achieve a particular result, of ability to execute uninterrupted or error-free, and of lack of negligence or lack of workmanlike effort, all with regard to the SOFTWARE PRODUCT, and the provision of or failure to provide Support Services. THE ENTIRE RISK AS TO THE QUALITY OF OR ARISING OUT OF USE OR PERFORMANCE OF THE SOFTWARE PRODUCT AND SUPPORT SERVICES, IF ANY, REMAINS WITH YOU.
Specifically, and without limiting the foregoing, you acknowledge that Nuts About Nets, LLC has not made any representations or warranties with respect to the SOFTWARE PRODUCT or the functionality thereof and has made no representations or warranties with respect thereto. In addition, you acknowledge that you have selected the SOFTWARE PRODUCT, and that Nuts About Nets, LLC makes no representations or warranties with respect to the fitness of the SOFTWARE PRODUCT for any purpose.
6. NO SUPPORT
Nothing in this EULA shall obligate Nuts About Nets, LLC to provide any support for the SOFTWARE PRODUCT. Nuts About Nets, LLC may, but shall be under no obligation to, correct any defects in the SOFTWARE PRODUCT and/or provide updates to You of the SOFTWARE PRODUCT. You shall promptly report to Nuts About Nets, LLC any defects You find in the SOFTWARE PRODUCT to aid Nuts About Nets, LLC in creating improved revisions of such items.
7. EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER DAMAGES.
To the maximum extent permitted by applicable law, in no event shall Nuts About Nets, LLC or its suppliers be liable under any theory of liability for any special, incidental, indirect, or consequential damages whatsoever (including, but not limited to, damages for loss of profits or confidential or other information, for business interruption, for personal injury, for loss of privacy, for failure to meet any duty including of good faith or of reasonable care, for negligence, and for any other pecuniary or other loss whatsoever) arising out of or in any way related to the use of or inability to use the SOFTWARE PRODUCT, the provision of or failure to provide support services, or otherwise under or in connection with any provision of this EULA, even in the event of the fault, tort (including negligence), strict liability, breach of contract or breach of warranty of Nuts About Nets, LLC or any supplier, and even if Nuts About Nets, LLC or any supplier has been advised or should know of the possibility of such damages.
8. LIMITATION OF LIABILITY AND REMEDIES.
Notwithstanding anything to the contrary contained in this EULA, and without limiting any other rights, remedies, limitations, or restrictions in this EULA or under law, Nuts About Nets, LLC will not be liable with respect to any subject matter of this EULA under any contract, negligence, strict liability, or other theory, at law or in equity, for any amounts aggregating in excess of amounts paid to it under this agreement in the twelve (12) month period before the cause of action arose.
9. INDEMNITY
You hereby agree to indemnify, protect, defend and hold Nuts About Nets, LLC harmless from and against any and all claims, losses and damages, including without limitation, reasonable attorneys’ and experts’ fees and disbursements, (a) which may at any time be asserted against Nuts About Nets, LLC by any party for Your failure to perform any of the covenants, agreements, terms, provisions or conditions contained in this EULA, (b) by any party by reason of Your use or misuse of the SOFTWARE PRODUCT, or (c) resulting from any failure by You to comply with any term or condition of this EULA. The provisions of this Section 10 shall survive the expiration or earlier termination of the EULA.
10. ENTIRE AGREEMENT.
This EULA (including any addendum or amendment to this EULA which is included with the SOFTWARE PRODUCT) is the entire agreement between you and Nuts About Nets, LLC relating to the SOFTWARE PRODUCT and the Support Services (if any or many) and it supersedes all prior or contemporaneous oral or written communications, proposals and representations with respect to the SOFTWARE PRODUCT or any other subject matter covered by this EULA. To the extent the terms of any Nuts About Nets, LLC policies or programs for Support Services conflict with the terms of this EULA, the terms of this EULA shall control.
If any provision of this EULA shall be or become invalid, illegal, or unenforceable in any respect, the validity, legality, and enforceability of the remaining provisions contained herein shall not be affected thereby. No failure or delay in exercising any right or remedy shall operate as a waiver of any such (or any other) right or remedy. Any modification or waiver to this EULA must be in writing and signed by both parties. The language of this EULA shall be construed as a whole, according to its fair meaning and intent, and not strictly for or against either party, regardless of who drafted or was principally responsible for drafting this EULA or any specific term or conditions hereof.
Nothing in this EULA shall be deemed to create any type of agency, joint venture, or partnership relationship between the parties. Neither party shall have any right or authority to bind or obligate the other in any manner to any third party. In the event of any legal proceeding between the parties arising out of or related to this EULA, the prevailing party shall be entitled to recover, in addition to any other relief awarded or granted, its costs and expenses (including reasonable attorneys’ and expert witness’ fees) incurred in any such proceeding.