TestMyLogic Terms of Use
Version 1.0.3 · Effective 1 September 2026
The Korean-language version is the authoritative legal text.
Revision history
- 1.0.3 (effective 1 September 2026) — Added Clause 11 to Article 15 and amended Article 15(8) and Article 16(3) alongside it: a connected AI client can now leave bug and improvement reports about this product, and the app transmits them to the Company's server (default: on — it can be turned off in the app's settings, and when off, reports stay on your computer only). No email address and no diagnostic log ride this channel, and automatic identifier masking is applied before sending. No other clause changed in wording or number. This amendment does not widen what an AI client can see on your computer — the Company receives one new thing: product reports written by an AI. The Company considers this amendment not disadvantageous to users but does not so determine conclusively, leaving it a matter for judgment under Article 3(3).
- 1.0.2 (effective 31 August 2026) — the descriptions of how the product behaves in Article 10(6) and Article 15(3), 15(4) and 15(6) were corrected to match what the software actually does, and Article 15(10) was added. The App's internal communication now requires a credential; what an AI client may do is limited to the permissions the user has turned on; and overwriting a strategy or deleting a sweep result now runs only after a confirmation is answered in the App. No clause was renumbered apart from the addition of 15(10). This amendment reduces what an AI client can do without action by the user, and narrows what leaves the user's computer by default. The Company believes this does not amount to an amendment unfavourable to the user, but does not assert it, and leaves it as a question under Article 3(3).
- 1.0.1 (effective 30 August 2026) — the descriptions of how the product behaves in Article 3(4), Article 8(4), Article 9 and Article 10 were corrected to match what the software actually does. The App no longer starts itself at Windows login, update checking became a setting the user controls, and what the App shows before an amendment is accepted is now stated accurately. No clause was renumbered. Article 3(4), however, is narrower than it was: version 1.0 said results and data could be read in the App while an amendment was pending, which the App never did; 1.0.1 states what the App actually does and, in its place, states that the data is neither deleted nor locked and can be read without the App. The Company does not assert whether this amounts to an amendment unfavourable to the user; that is left as a question under Article 3(3).
- 1.0 (effective 29 August 2026) — first issue.
Article 1 (Purpose)
These Terms set out the conditions for using the desktop software TestMyLogic and the website www.testmylogic.com (together, the "Service") provided by 비전측정소프트(VMSOFT) (the "Company"), and the rights and obligations of the Company and the user.
Article 2 (Definitions)
- "App": the TestMyLogic desktop program installed on the user's Windows computer. It consists of the interface, a background program (daemon), and the backtest engine.
- "Workspace": the folder on the user's computer where the App stores the user's data. In an installed build it defaults to
TestMyLogicunder the user's home folder, and the user may move it. - "Strategy": a definition of trading rules the user writes in TOML. It may contain expressions and scripts that are executed.
- "Sweep": a computation that generates many parameter combinations for one strategy and backtests them in bulk against historical data.
- "Verdict": a statistical grade the App computes for a sweep result, on three axes — overfitting risk, walk-forward performance, and combinatorial validation. It is not a recommendation and not advice.
- "Market data": price (OHLCV) and funding data the user obtains directly from an exchange's public API through the App's download feature.
- "License check": the procedure by which the App sends an anonymous device key and the app version to the Company's server and receives a short-lived lease.
- "AI client": a third-party AI program the user installs separately on their own computer and may allow to operate the App.
Article 3 (Publication, Incorporation and Amendment of these Terms)
- The Company publishes these Terms on the website.
- Incorporation. When the App is first launched it displays the full text of these Terms and of the Privacy Policy, and the user must accept them before the App can be used. The App's features do not open before acceptance. The installer contains no terms screen — acceptance happens at first launch, not during installation. The Company records the version of each document the user accepted and the time of acceptance on the user's computer, and also on the Company's server once the machine is connected to the internet (Article 16). The App has no ability to open a browser and therefore carries no links to the website. For that reason the full text of both documents ships inside the App, and the user can read them again at any time with no internet connection.
- The Company may amend these Terms and will give notice of an amendment on the website. Where an amendment is disadvantageous to users, the Company follows the applicable law as to the method and period of notice.
- On amendment the Company asks for consent again. Continued use is not treated as consent. Until the amended Terms are accepted, the App shows only the consent screen carrying the two amended documents; no other screen or feature opens. Results and data the user already holds on their own computer are neither deleted nor locked away; they remain in place and are available again the moment the user accepts. That data is stored in open formats, so it can also be read and backed up without going through the App (Article 12(3)). The revision history, version and effective date appear at the top of this document and are published on the website.
- Two things are not yet settled — (i) how to define the options available to a user who does not accept an amendment (discontinuing use, uninstalling), and (ii) how many days of advance notice to give.
Article 4 (What the Service Is)
TestMyLogic is an analysis tool that tests, statistically, whether a backtest the user ran themselves is overfitted to historical data. The Service consists of the following.
- Local backtest computation. Once the user sets a strategy and parameter ranges, the backtest engine installed on the user's computer runs the combinations in bulk. One sweep supports at most 100,000 combinations and at most 4,096 values per parameter. Computation happens entirely on the user's computer, and the backtest engine has no network capability at all. It uses the CPU cores of the user's computer in parallel, with no cap on the number of cores used.
- Overfitting verdicts. The App computes statistical verdicts on three axes plus a parameter-robustness indicator for a sweep result. The methods are based on published academic literature (Bailey, Borwein, López de Prado, Zhu, 2017 and others).
- Trade diagnostics. Analysis screens for individual trade records.
- Market data download. Public price data for the symbols and periods the user specifies is downloaded directly from an exchange's public API to the user's computer and stored as local files (Parquet). See also Article 14.
- Strategy authoring. Strategies can be written and edited in the App's built-in editor.
- AI client integration (optional). If the user wishes, an AI client they have installed can be connected so that it operates the App. See also Article 15.
- Website. Installer downloads, release notes, the privacy policy, and frequently asked questions. The website tallies download counts per artifact kind (the tally holds no IP address, browser information or referrer).
Operating environment. Windows 10 / 11, 64-bit. The App's interface runs on the Microsoft Edge WebView2 runtime.
Article 5 (Features the Service Does Not Have)
This Article defines the boundary of the Service's functionality; it is not merely a disclaimer. The Service does not have the following.
- No order execution. The Service places no orders on any exchange. No functionality to submit, fill or cancel orders is implemented. There is no automated trading.
- No exchange account connection. The Service does not ask for, store, or have anywhere to keep exchange API keys or secrets. The only calls the App makes to an exchange are to public price endpoints that require no authentication.
- No custody or movement of funds. The Service creates no wallet, holds no funds, and never takes custody of anything of value.
- No trading signals. The Service does not tell anyone what to buy or sell, or when. A verdict is a statistical diagnosis of a backtest the user already ran; it is not a recommendation.
- Not investment advice. See Article 21.
Article 6 (Eligibility and Minors)
- A user uses the Service by accepting these Terms and installing and using the App. The Company issues no accounts. The values the Company holds for each installation are pseudonymous (a device key and similar) and are not linked to the user's identity; their nature and classification are governed by the Privacy Policy.
- Matters concerning children's personal data are governed by the Privacy Policy. These Terms set no separate minimum age for eligibility.
- The product contains no age-verification mechanism. Neither the App nor the website has any age check or legal-guardian consent procedure.
Article 7 (Scope of the Software Licence)
- Subject to these Terms, the Company grants the user a non-exclusive, non-transferable and revocable right to use the App for the user's own purposes. Ownership of the software does not transfer.
- The user must not reverse-engineer or decompile the App, circumvent or tamper with the license check, or distribute modified builds — except to the extent that applicable law mandatorily permits.
- The user must obtain the App only through the official route the Company announces (the website's download page). The installer is code-signed, and Windows displays the publisher as 비전측정소프트(VMSOFT) — the registered Korean trade name, shown here as it appears on screen so that a user can compare it character for character.
- The two example strategy files shipped with the App are works of the Company. The user may study and modify them to build their own strategies. These Terms do not settle whether the resulting derivative may be published or distributed to third parties.
Article 8 (License Check and Offline Use)
This Article describes the App's actual behaviour.
- What the request body contains. The App sends the Company's server (www.testmylogic.com) an anonymous device key and the app version, and nothing else. The server rejects a request outright if any other field is present. No account information and no usage history is included.
- What the request itself reveals. Because it is an internet request, the user's IP address and the identifying string the App attaches (
testmylogic-desktop) reach the Company's server. The purpose, retention period and legal classification of that IP are governed by the Privacy Policy — these Terms do not restate them. - Frequency. Once 90 seconds after the App starts, then every 12 hours. After a failure it retries in 1 hour.
- When it happens. This check is performed by the App itself, while the App is running. Closing the App also stops the background program (Article 10(3)), so no check occurs while the user is not running the App.
- Offline allowance. Even if the check cannot reach the server, the App works normally for 7 days.
- After 7 days, only one thing is restricted: starting a new sweep. Reading existing results, browsing datasets, downloading price data, validating a strategy, and letting an already-running sweep finish all continue to work. The Company does not block a user's access to data they already hold on account of license state.
- There is a second reason a new sweep can stop, and it has nothing to do with time. If the stored lease's signature no longer verifies (a rotated signing key, a tampered file, a rolled-back build), starting a new sweep also stops. In that case the 7-day grace does not apply.
- The structure of the signing keys, and what follows from it. The public key used to verify a lease signature is built into the App and is never fetched from the server. Therefore (i) the Company cannot remotely disable the license check in builds already distributed — a new build must be released — and (ii) revoking a signing key affects every user holding a lease issued with that key, simultaneously. Individual users cannot be targeted (Article 23(4), Article 24).
- No device limit. The Company places no limit on the number of devices for which leases are issued. Device registrations and lease issue/renewal history are recorded on the Company's server and used in aggregate (items, purposes and retention are governed by the Privacy Policy).
- The nature of the device key. The device key is not a licence key the user has to keep or manage. If the key file is damaged the App creates a new one automatically, and the user loses nothing.
- A lease is valid for 24 hours, renews automatically, and is bound to the device it was issued to; it cannot be moved to another computer.
- The Company may introduce conditions on lease issuance in future (a paid plan, for example), in which case it will give advance notice under Article 11(4). A stronger enforcement layer than the current license check is contemplated by design (the present check is, by itself, a light gate).
Article 9 (Automatic Updates)
- When automatic checking is on (paragraph 7), the App checks the Company's server for a new version 60 seconds after launch and every 24 hours thereafter. The request URL carries three things: the operating system, the CPU architecture, and the current app version. Nothing else is in the URL.
- However, for the same reason as Article 8(2), this request likewise reveals the user's IP to the Company's server. How that request is logged and for how long is governed by the Privacy Policy.
- This check likewise happens only while the App is running (same reason as Article 8(4)).
- If a new version exists, the App downloads it automatically only where the setting in paragraph 7 is "Check and download". This consumes the user's network bandwidth. Under "Check only" the App reports that a new version exists and does not download it; the user starts the download themselves.
- Installation proceeds only when the user presses a button. The Company does not install anything on its own.
- The downloaded file's digital signature is verified before installation.
- Automatic updating is controlled by the user, in the App's settings screen. One of three values is chosen — "Do not check", "Check only", or "Check and download" — and the default is "Check and download". Under "Do not check" the automatic check in paragraph 1 does not happen, and a request reaches the Company's server only when the user runs a check from the settings screen themselves. Changing the setting does not stop a download already in progress.
- The Company may adopt a policy of supporting only versions at or above a given release. If it does, it will announce this on the website — an App already on the latest version receives no response content from the server, so an in-app notice alone would not reach every user.
Article 10 (Installed Components and How Long They Run)
- The App consists of an interface program and a background program (daemon), which handles computation, data, and interface integration.
- The App does not start itself at Windows login. Neither the installer nor the App registers a login item, and the App starts only when the user launches it. If a login item left by an earlier version is still present, the App removes it itself — after confirming that the entry really points at this App, so nothing else in the startup list is touched.
- The background program lives exactly as long as the App window. It starts with the App and stops, together with the backtest engine, when the window is closed. If a computation or a download is still running, the App asks before closing. Nothing of this App remains running on the computer while the user is not running it.
- The App has no tray icon. No part of it keeps running out of sight after the window is closed, and launching the App again brings the window that is already open to the front.
- The background program listens only on the user's own computer (127.0.0.1) and cannot be reached from an external network.
- The App's internal communication requires a credential. Each time it starts, the background program mints one value for the App window and one for AI clients, keeps them in a folder under the user's account, and refuses any request that does not present the right one. This does not mean it is safe from other programs on the same computer — those values live in files under the user's own account, so a program running with that same account can read them and reach the background program. This is the common limit of this class of program running on a user's computer. Users are responsible for keeping their own computing environment secure.
- Uninstalling the program does not delete the user's data. The workspace, configuration files, the device key file, and integration files installed into an AI client all remain. A user who wants them deleted must delete those folders themselves.
Article 11 (Fees and the Beta Stage)
- The Service is currently in open beta, and every feature is free during the beta. The Company charges users nothing.
- Beta software may contain defects, and features may change or be removed without notice.
- The Company collects no payment information, and no payment functionality is implemented.
- If a paid plan is decided, the Company will announce it first on this site and in the App. This restates a promise already published on the website, and these Terms do not alter it. No existing user will be charged without advance notice. The words "in the App" in this paragraph take precedence over the notice provisions of Article 26(2), because the site has already promised the App as an equivalent channel.
- When a paid plan is introduced, the payment processor, withdrawal of subscription, and refunds will be set out in a separate published policy. These Terms do not contain that policy.
- The effect of the end of the beta on existing installations has not yet been decided — whether existing users continue to use the Service free of charge, whether there are succession conditions, and whether the App keeps working are all undetermined.
Article 12 (The User's Data)
- Strategies the user creates, price data they download, sweep results, trade records and verdict records are all stored on the user's computer.
- The App does not transmit that data to the Company's servers. This statement is about the behaviour of the software, and the two routes by which the user themselves sends data outward are not covered by it — the AI-client integration in Article 15, and the body of a bug report in Article 17 (into which the user can type anything). Both routes open only through the user's own action.
- The storage formats are open specifications — downloaded price and funding data and the analysis ledger are Parquet; sweep artifacts are Arrow Feather plus JSON. Users can read, move and back up their own data without the App.
- The Company does not back up the user's data and cannot restore it. Backing up and preserving data is the user's responsibility. For data loss caused by disk failure, folder deletion or replacing a computer, the Company has no means of recovery. The same is true of deletions performed by a connected AI client (Article 15(7)).
- Rights in strategies the user writes and in the outputs they produce belong to the user (whether derivatives of the example strategies in Article 7(4) are excepted is undetermined). The Company asks for no licence to any of it.
Article 13 (Executable Content the User Writes)
- A strategy file may contain expressions and scripts that are actually executed. The App executes them on the user's computer.
- The execution environment is constrained: a cap on operation count (1,000,000), a 1-second time limit per call, caps on call depth and expression depth, and caps on the size of strings, arrays and maps apply; scripts cannot reach the file system, the network, or external modules; arbitrary code evaluation is disabled; and reading data from a future point in time is treated as an error. (These are caps on data-structure size, not on the memory use of the process as a whole.)
- Notwithstanding those constraints, the correctness of the logic the user writes, and the results of executing it, are the user's responsibility. The Company does not warrant that a strategy the user wrote behaves as the user intended.
- An AI client may write and save strategies on the user's behalf, and may overwrite existing strategies (Article 15). Even then, that strategy is treated as the user's content and the consequences of executing it are attributed to the user.
Article 14 (Market Data and Exchanges)
- The Company does not provide market data and does not distribute it. It is the Company's policy not to include exchange-derived price or funding data in any distributed artifact. However, the mechanical check enforcing that policy is applied only to the installer bundle — the
.mcpbextension and the skill zip carry no equivalent check (the policy applies to all three; the enforcement is on one). - The user obtains market data themselves. The App's download feature sends requests directly from the user's computer to an exchange's public API, and that data does not pass through the Company's servers.
- There are four destinations —
api.binance.com(prices),data.binance.vision(monthly archives),fapi.binance.com(funding), andapi.bybit.com(prices and funding). - Consequently, when the download feature runs, the user's IP address is exposed to those services. This is outside the Company's control. Such a request may be started by the user in the App, or by an AI client the user has connected (Article 15(7)).
- Users must check and comply with the terms of use and API policies of the exchange concerned. The Company does not license exchange data to users and is not responsible for its accuracy, completeness or availability.
- If an exchange changes or discontinues its API, or restricts the user's access, the download feature may stop working.
Article 15 (AI Client Integration)
- A user may connect a third-party AI client they installed so that it operates the App. This is an optional feature; every feature of the App works without it.
- An AI client is a service between the user and its provider. The Company does not provide it and does not control its behaviour. That client is governed by its provider's own terms and privacy policy, which the user must review.
- What connecting actually does on the user's computer differs per client.
- Connecting one client copies integration files into that program's settings folder.
- Connecting another runs that provider's command-line program (running a third-party program, not editing a file).
- For a third, the App only detects and advises, and changes nothing. Connecting and disconnecting run only when the user presses the control in the App; an AI client cannot perform those actions itself. The integration file contains the credential used to reach the background program (Article 10(6)).
- What a connected AI client can see — only the items the user has turned on. Each item below may be passed to that AI provider only if the user has turned that permission on in the App, and then only within the scope of what the user asks the AI to do. Immediately after connecting, only the first item is on; the other four are off (paragraph 10).
- Verdict grades, summary statistics, configuration values
- The result rows of a query the user asked for. These include stored price candles and individual trade rows — 1,000 rows by default, 10,000 at most, each string cell truncated at 500 characters, and the query cut off at 10 seconds.
- The body of a strategy file (up to 32 KiB per direction)
- A screen capture of the App window — if the AI asks, the App captures its own window and passes it along. It does not capture other programs or the desktop.
- The absolute path of the workspace folder on the user's computer. On Windows that path normally contains the user's account name.
- What crosses is always a row-capped query result; the whole corpus never crosses. There is no path by which an entire price file or an entire result matrix flows to an AI client.
- What a connected AI client can do, and what happens to the user when it does. Each item below runs only if the user has turned that permission on, and immediately after connecting they are all off (paragraph 10). Of these, overwriting a strategy and deleting a sweep result do not run — even with the permission on — until the App asks for a confirmation and receives an answer.
| Kind | What happens to the user |
|---|---|
| Start or cancel a sweep | A computation of up to 100,000 combinations starts and occupies the CPU cores of the user's computer; a computation in progress may be destroyed |
| Start, refresh or cancel a price download | Consumes the user's bandwidth and disk, and exposes the user's IP to an exchange (Article 14(4)) |
| Save a strategy | Can create a new strategy and, if explicitly asked, overwrite an existing one — an overwrite runs only after a confirmation is answered in the App (creating a new strategy is never asked about) |
| Create, rename or move a sweep result folder; rename a result | Changes the directory structure inside the user's workspace |
| Navigate or capture the screen | Changes what the user is looking at, and captures the window |
| Delete a sweep result | Permanently deletes the artifact files on disk and the row in the list. There is no recycle bin and no undo — it runs only after a confirmation is answered in the App, and when it runs the background program's log keeps one line recording it |
- The protection on deletion, and its limit. Deleting a result requires the result id and that row's display name to match byte for byte; on any mismatch nothing is deleted. But on a match it proceeds, and the Company has no means of recovery (Article 12(4)).
- What is not open to an AI client: deleting a strategy file, deleting a folder, relocating the workspace. The user must do these in the App. The error-reporting screen of Article 17 likewise cannot be operated by an AI client through tool calls — but an AI client's bug and improvement reports have their own channel (Clause 11).
- The consequences of operations an AI client performs on the user's behalf are attributed to the user. The Company is not responsible for the judgements, outputs or malfunctions of a third-party AI.
- Permissions are set by the user and can be withdrawn at any time. The App's settings screen (AI client connections) turns each item in paragraphs 4 and 6 on and off individually, and each item states what is passed when it is on. An AI client cannot widen its own permissions — the route that changes them opens only in the App window. The confirmation in paragraph 6 can likewise only be answered in the App window and cannot be answered by an AI client through a tool call. However, a program that drives the user's screen can press the button in the App window, so the Company does not warrant that a person gave that confirmation.
- An AI client may leave bug and improvement reports about this product, and the App transmits them to the Company's server. A report is first stored in the workspace folder on the user's computer and shown on the App's screen; when automatic transmission is on (the default), the App also sends it to the Company's server (www.testmylogic.com). Automatic transmission can be turned off on the App's settings screen; when off, reports stay on the user's computer only. What a transmission carries: the title, body and reproduction context the AI wrote, the report kind, the reporting AI client's name (as that program declared it), the App version and the operating system — and, for the same reason as Article 17(2), the request itself exposes the user's IP address to the Company's servers. No reply email address and no diagnostic log ride this channel. Before sending, the App masks identifiers it can determine from this machine on its own — such as storage paths carrying the user's account name — in the same way as Article 17(4); and the limit of Article 17(5) applies equally: other information the AI copied into the text may not be masked. This feature is not part of the permission lists in paragraphs 4 and 6 — turning it on or off is the user's App setting, not an AI permission, and no additional data of the user's is passed to the AI provider. Reports are capped in number, size and frequency, and the oldest may be discarded from the on-device inbox.
Article 16 (Personal Data)
- The processing of personal data is governed by the Privacy Policy the Company publishes separately. These Terms do not restate its contents — items, purposes, retention periods, sub-processors, and the rights of data subjects and the deadlines for exercising them are all set by that policy.
- The Privacy Policy takes effect together with these Terms. The two documents are amended together, and on amendment the App displays both and asks for consent again (Article 3(2) and 3(4)).
- These Terms state five communications as fact, and the personal-data handling of each is covered by the Privacy Policy — the license check (Article 8), the update check (Article 9), the record of consent (Article 3(2)), bug reports (Article 17), and the transmission of AI-client reports (Article 15(11)). The Company does not use any expression to the effect that "there is no communication at all".
- The Company does not track how users behave or how they use the Service (the same sense as the site's "no usage tracking").
Article 17 (Enquiries and Bug Reports)
- The Company has two contact channels — email at contact@testmylogic.com, and the bug-report feature inside the App. A bug report is transmitted to and stored on the Company's server (www.testmylogic.com).
- What the report request contains: the title and body the user typed, the report kind and severity, and automatically attached values — app version, build identifier, operating system, language, and the screen where the issue occurred. The body is capped at 20,000 characters, and the request as a whole and any attached log have their own byte caps. This list concerns what is in the request body; for the same reason as Article 8(2), the request itself reveals the user's IP to the Company's server.
- A reply email address is optional and is sent only if entered. It is deliberately excluded from masking, because it is the reply channel.
- A diagnostic log is attached only if the user ticks the box themselves, and the default is off. Before transmission the App masks identifying values it can derive from this machine — user names, storage paths, email addresses, server addresses.
- Some things are not masked. Masking operates only on patterns derived from the machine, so third-party names, contact details or confidential information the user types into the body themselves are transmitted as written. Users must not include other people's personal data or information subject to a duty of confidentiality in a report.
- The Company uses the contents of reports it receives for error diagnosis and service improvement. Personal data contained in a report is handled under the Privacy Policy.
- The Company reads and processes the reports it receives. These Terms do not commit to replying to any individual report or to a processing deadline. Deadlines for responding to a data subject's requests are set by the Privacy Policy.
- The Company does not commit to a level of availability or technical support.
Article 18 (The User's Costs and Operating Environment)
- The computer, electricity, internet connection and storage needed to use the Service are the user's cost. Sweep computation occupies the CPU cores of the user's computer, and price downloads and automatic updates use the user's connection and disk.
- Subscription or usage fees for an AI client the user connects are a matter between the user and that provider and are unrelated to the Company.
- The App's interface runs on the Microsoft Edge WebView2 runtime. [Not yet measured — the Company needs to test this.] How the installer behaves on a computer without that runtime (including whether it contacts a third-party server during installation) has not been confirmed. Until it is, these Terms make no commitment on this point.
- The App displays no notice or warning about storage usage. Managing the size of downloaded price data is the user's responsibility.
Article 19 (Prohibited Conduct)
Users must not do the following.
- Circumvent, disable or tamper with the App or the license check
- Redistribute, sell or lease the App or its components
- Distribute modified installers obtained outside the official route
- Send automated, excessive requests to the Company's servers or otherwise interfere with the operation of the Service
- Use the App to obtain data in a manner that violates an exchange's terms of use
- Include other people's personal data, or information subject to a duty of confidentiality, in a bug report (Article 17(5))
- Use the Service for a purpose that violates applicable law
- Present the Service's verdicts to third parties as investment advice or a solicitation to invest — the Service's output is a statistical diagnosis of the character set out in Article 21, and repackaging it as advice or solicitation differs from the character of the Service the Company has represented
Article 20 (Intellectual Property and Third-Party Open Source)
- Rights in the App, the backtest engine, the website, the documentation and the example strategy files belong to the Company or to the rightful owner.
- Rights in strategies the user writes and in the results of running them belong to the user (Article 12(5), subject to the reservation in Article 7(4)).
- The distributed artifacts contain third-party open-source components, each under its own licence. These include typefaces (OFL-1.1), a large number of MIT, Apache-2.0, BSD and ISC components, a small number of MPL-2.0 components, the Node.js runtime, the DuckDB native module, and the crates statically linked into the Rust engine.
- The complete list of components and the full text of every licence are in the notice file named in paragraph 5. This Article does not reproduce that list — the list is generated from the tree being packaged, so it cannot disagree with the distribution, whereas a copy written into a clause would be out of date at the next dependency change.
- Third-party open-source notice. The Company ships a notice file carrying the copyright statements and full licence texts with the distribution, and also publishes it on the website. Two locations:
| Location | |
|---|---|
| Installation folder | notices/THIRD_PARTY_NOTICES.txt |
| Website | www.testmylogic.com/open-source.txt |
The two files carry the same content, and building an installer verifies that the notice matches the tree actually being packaged — if it does not, no installer is produced.
- For each open-source component, that component's own licence takes precedence over these Terms. These Terms do not restrict any right granted by an open-source licence.
Article 21 (Disclaimer of Warranty — the Nature of Backtest Results)
This Article states the same thing as the product's reason for existing. The Company does not treat it as boilerplate.
- A backtest that shows high performance is usually a result fitted to historical data. TestMyLogic was built to reveal that fact. A verdict the Service computes means the result was not refuted on historical data — not that it will work going forward.
- A verdict is a probabilistic statement, not a conclusion. All three axes have a grade meaning "not distinguished", which means *"not that it is bad, but that this number cannot answer the question"* (the App's own wording). By the Company's published measurement, "not distinguished" is the most common answer on the walk-forward axis (87%).
- The limits of the fill model. Backtest profit and loss is computed with a modelled fill on historical bar data. Slippage, bid-ask spread, market impact, partial fills and liquidity do not exist in the model. A stop-loss is treated as filling exactly at the stop price even when the low went further below it; a take-profit is treated as filling at the computed price. Fees are a single flat rate the user sets, applied equally to entry and exit (asymmetric values are rejected). Zero fees is a valid input, so a user can construct a backtest of a frictionless world and the App will attach verdicts to it normally.
- A good verdict does not mean no losses. The App measures overfitting risk, not profitability, and a favourable grade can attach to a result that actually lost money in more than half of its splits. The App shows a separate warning in that case.
- A verdict cannot reach beyond the period used to compute it. A "very low" obtained from data containing only one bull market means very low as to that bull market.
- Short results are computed under spot rules. The price data the App downloads is spot data, and shorts are simulated at 1× leverage with no funding cost and no liquidation. In a real perpetual contract, funding alone can flip the sign of a long-held short's profit and loss. The App attaches a note to that effect on such results.
- Revising a strategy and re-running it until the verdict improves is repeated search over the same data. A verdict obtained that way is worth less than the same verdict obtained on the first attempt. The App warns about this in text, and the numeric probability of passing by chance as a function of the number of attempts is provided to a connected AI client (the number is not displayed on screen).
- Some features are approximations. The effect of changing a stop-loss value, for example, is a directional estimate; the exact value requires re-running the backtest with the new setting. The App marks this on the relevant screen.
- The Company publishes numbers for the reliability of its verdicts, and those numbers come with instructions for reading them. The App displays: "the probability that a strategy with no skill at all receives a passing verdict was designed to be 5% or below, and the measurement is below that"; "detection of a synthetic edge of 7.6% per year distributed across the whole period is about 23.4%"; and, for the confirmation grade of combinatorial validation, three separate figures (1.1% / 3.2% / 45.4%). Three reading rules attach to these numbers and all three are required — (i) the no-skill rate is an upper bound, not a settled null value; (ii) the detection rate is conditional on the stated synthetic-edge condition and varies greatly by strategy family, so quoting it without the condition overstates it; and (iii) no figure may be inverted into "the probability that this result is real" — that reading requires a prior probability nobody has ever measured.
- Accordingly the Company represents the following. The text below is a quotation of what already appears in the footer of every page of the website.
Simulation only · No order execution · Not investment advice · Past performance does not guarantee future returns
- All investment decisions based on the use of the Service and on its results are made by the user, at the user's own judgement and responsibility. Trading crypto assets carries the risk of losing the principal invested.
- The Company does not warrant that the Service operates without error or without interruption.
Article 22 (Limitation of Liability)
- The Company is not liable for investment decisions the user makes on the basis of the Service's verdicts or computations, or for the resulting gains or losses.
- The Company is not liable for the logic of strategies or scripts the user writes, for the accuracy of data the user obtains from an exchange, or for the behaviour of a third-party AI client the user connects.
- The Company has no means of recovering data lost on the user's computer (Article 12(4)).
- Liability for damage caused by the Company's intent or gross negligence is not limited.
Article 23 (Restriction, Suspension and Termination of Use)
- Termination by the user. A user may stop using the Service at any time by uninstalling the App. There is no separate termination procedure. However, uninstalling alone does not delete the user's data (Article 10(7)); a user who wants it deleted must delete those folders themselves.
- Effect of termination. On termination the licence in Article 7 ends and the user must stop using the App and remove it. The user's rights in data already stored on their computer are unaffected.
- Change or discontinuation of the Service by the Company. The Company may change the content of the Service or discontinue providing it, with advance notice on the website. Termination of the Service as a whole is dealt with separately in Article 24.
- On breach of these Terms. The Company reserves the right to restrict use where a user has breached Article 19. However, the Company currently has no technical means of blocking use on an individual user or individual device basis (Article 8(8)). The Company does not describe means it does not have as if it had them.
- Immediate revocation of a lease is not technically guaranteed. The App is designed to work offline, so a lease already issued may remain valid for up to its validity period (24 hours) plus the offline allowance (7 days).
- The procedure for exercising the right in paragraph 4 has not yet been set — whether advance notice is given, whether there is an opportunity to object, and any grace period are undetermined.
Article 24 (Termination of the Service)
This Article did not exist in the earlier draft. The facts below are what make that absence a defect.
- If the Company stops operating the license-check server, starting new sweeps stops on every already-installed device after at most 8 days (24-hour lease validity plus the 7-day offline allowance). That is this product's core feature.
- As Article 8(6) and Article 23(5) correctly state, reading existing results and accessing the user's data continue after that. But reading only that could be mistaken for "the App keeps working without a server", so this Article corrects it.
- The Company cannot remotely lift this gate in builds already distributed (Article 8(8)). Lifting it requires building and distributing a new build without the gate.
- What the Company will do on terminating the Service has not been decided. No termination policy exists anywhere in the repository.
Article 25 (Survival)
Notwithstanding the expiry or termination of these Terms, the following survive by their nature: Article 12(5) (the user's rights), Article 13(3), Article 17(5) and (6), Article 20 (intellectual property and open source), Article 21 (disclaimer of warranty), Article 22 (limitation of liability), Article 27 (general provisions), and Article 28 (governing law and dispute resolution).
Article 26 (Company Details and Method of Notice)
- Company details
| Item | Detail |
|---|---|
| Trade name | VMSOFT |
| Representative | Henry Han |
| Business registration number | 723-06-01443 |
| Phone | 070-8670-0220 |
| contact@testmylogic.com |
The registered Korean-language forms of the trade name, the representative's name and the business address appear in the Korean version of these Terms, which is the authoritative text. The business registration number above is language-neutral and is the identifier by which the Company can be looked up.
The Company does not currently sell anything and has therefore not filed as a mail-order business, so no filing number appears in this table. If a paid plan is introduced, the Company will confirm whether a filing is required and amend this Article.
- The Company gives notice to users by publishing on the website. However, notice concerning a paid plan is given both on the site and in the App, under Article 11(4). In-app notices about other matters are a secondary channel and may not reach every user (Article 9(8)). Amendments to these Terms and to the Privacy Policy are an exception to that limit — the App displays the amended documents itself and asks for consent again, so they reach users who never visit the website (Article 3(2) and 3(4)).
Article 27 (General Provisions)
- Force majeure. The Company is not liable for delay or failure to perform caused by events beyond its control, such as natural disaster, war, power failure, network failure, or the failure of a third-party service (hosting, database, exchange APIs).
- Severability. If any provision of these Terms is held invalid or unenforceable, the remaining provisions are unaffected.
- Assignment. A user may not assign rights or obligations under these Terms to a third party. Nothing has been settled as to succession if the Company transfers the business or the proprietor's circumstances change.
- Entire agreement. These Terms and the policies the Company publishes separately (the Privacy Policy and others) constitute the entire agreement between the Company and the user concerning use of the Service.
- Effect of notice. A notice published on the website takes effect on its stated effective date or, if none is stated, when it is posted. Where applicable law or these Terms set an advance-notice period, the notice takes effect only after that period has passed.
- No third-party rights. These Terms confer no rights on anyone other than the Company and the user.
Article 28 (Governing Law and Dispute Resolution)
- The laws of the Republic of Korea govern these Terms and the Service. However, where the mandatory consumer-protection law of the country or region of the user's habitual residence gives the user stronger protection, that protection continues to apply.
- If a dispute arises, the user and the Company will first attempt in good faith to resolve it through
contact@testmylogic.com. - A claim that is not resolved by agreement is brought before the court designated by applicable law. These Terms do not restrict a user's right under mandatory law to use a court in the user's place of residence, a small-claims procedure, or a consumer dispute-resolution body.
Addendum
These Terms (version 1.0.3) take effect on 1 September 2026. Version 1.0.2 was in effect from 31 August 2026, version 1.0.1 from 30 August 2026, and version 1.0 from 29 August 2026, each until the amendment that followed it.