@steerprotocol/steer-toolset
v1.7.1
Published
Backtesting toolset for Steer Protocol
Downloads
77
Readme
Steer Protocol Developer Toolkit
The Steer toolset is a growing suite of products to help in developing, debugging, and testing bundles for Steer's platform. In its current stages, the app backtester is the primary feature we expect to be used.
Install Locally
Install via npm or yarn
$ npm install -g @steerprotocol/steer-toolset
Confirm installation with
$ steer-toolset (--version)
Strategies (apps)
In Steer's architecture, apps are WebAssembly bundles containing logic for processing optional data and which produce a transaction request for an action to be taken on chain. In this context, strategies are apps configured to interact with one of Steer's Multi Position Concentrated Liquidity Manager Vaults. In the typical automation flow, data connectors are used to provide data to this strategy as inputs; currently we only support recieving the associated pool's trading candles as data inputs for the strategy. Custom data connectors are coming in the near future, but for now (without custom configuration) your strategy should have no data input or one input that takes OHLCV data.
Users can find a strategy on Steer's dapp, clone the template strategy and develop their own logic, or try some of Steer's preset strategies.
For more information reference the documentation: -Introduction to Steer -Writing an app
Running a Backtest
Once you have a strategy you would like to backtest, you can run the test with the following:
USAGE
$ steer-toolset app backtest [FILE] [-p <value>] [-s <value>] [-c]
ARGUMENTS
FILE File to load strategy from
FLAGS
-c, --commandLine Use the command line to run the backtest. Useful if you don't want to run the backtest in a browser. Deprecated as only simple config objects are supported.
-p, --pool=<value> Pool which the strategy will be tested against.
-s, --sleep=<value> Sleep setting for pulling historical data in seconds. Useful if pulling large datasets or you
don't want to be rate limited.
EXAMPLES
$ steer-toolset app backtest '../strategy-template-assemblyscript/build/debug.wasm'
After running the command a new browser window should open up connected to a local server where you will configure the app and set up the backtest parameters. Try refreshing or filling out more info if things seem to freeze, it is advised to set in the following order:
Protocol → Chain → Pool → DataSet → CandleSize (appears on the graph) → Strategy Config → Simulation Settings
After this you should see a green button to start the simulation:
Once the backtest is complete, check the terminal to see the results!
If you have any problems or sugguestions, please report using Gleap. There is a small chat button in the bottom left of the browser pop up, follow the prompts, we greatly appreciate it. Feel free to ask questions in our Discord as well.
steer-toolset doctor
Clear all cache files and supporting modules. This will delete all datasets you have downloaded. This can be done manually by finding the Steer-toolset in your AppData folder for npm modules and deleting files from the data folder.
USAGE
$ steer-toolset doctor
DESCRIPTION
Clear all cache files and supporting modules
EXAMPLES
$ steer-toolset doctor
See code: dist/commands/doctor.ts
Commands
steer-toolset app
steer-toolset app backtest FILE
steer-toolset doctor
steer-toolset help [COMMAND]
steer-toolset job [TYPE_OF_JOB]
steer-toolset plugins
steer-toolset plugins:install PLUGIN...
steer-toolset plugins:inspect PLUGIN...
steer-toolset plugins:install PLUGIN...
steer-toolset plugins:link PLUGIN
steer-toolset plugins:uninstall PLUGIN...
steer-toolset plugins:uninstall PLUGIN...
steer-toolset plugins:uninstall PLUGIN...
steer-toolset plugins update
steer-toolset strategy [FILE]
steer-toolset app
Manage strategies for Steer Protocol
USAGE
$ steer-toolset app
DESCRIPTION
Manage strategies for Steer Protocol
EXAMPLES
$ steer-toolset app backtest
See code: dist/commands/app/index.ts
steer-toolset app backtest FILE
Backtest a strategy against a given data connector
USAGE
$ steer-toolset app backtest [FILE] [-p <value>] [-s <value>] [-c]
ARGUMENTS
FILE File to load strategy from
FLAGS
-c, --commandLine Use command line to run the backtest. Useful if you don't want to run the backtest in a browser.
-p, --pool=<value> Pool which the strategy will be tested against.
-s, --sleep=<value> Sleep setting for pulling historical data in seconds. Useful if pulling large datasets or you
don't want to be rate limited.
DESCRIPTION
Backtest a strategy against a given data connector
EXAMPLES
$ steer-toolset app backtest
steer-toolset doctor
Clear all cache files and supporting modules
USAGE
$ steer-toolset doctor
DESCRIPTION
Clear all cache files and supporting modules
EXAMPLES
$ steer-toolset doctor
See code: dist/commands/doctor.ts
steer-toolset help [COMMAND]
Display help for steer-toolset.
USAGE
$ steer-toolset help [COMMAND] [-n]
ARGUMENTS
COMMAND Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for steer-toolset.
See code: @oclif/plugin-help
steer-toolset job [TYPE_OF_JOB]
describe the command here
USAGE
$ steer-toolset job [TYPE_OF_JOB] [-n <value>] [-f]
FLAGS
-f, --force
-n, --name=<value> name to print
DESCRIPTION
describe the command here
EXAMPLES
$ steer-toolset job
See code: dist/commands/job/index.ts
steer-toolset plugins
List installed plugins.
USAGE
$ steer-toolset plugins [--core]
FLAGS
--core Show core plugins.
DESCRIPTION
List installed plugins.
EXAMPLES
$ steer-toolset plugins
See code: @oclif/plugin-plugins
steer-toolset plugins:install PLUGIN...
Installs a plugin into the CLI.
USAGE
$ steer-toolset plugins:install PLUGIN...
ARGUMENTS
PLUGIN Plugin to install.
FLAGS
-f, --force Run yarn install with force flag.
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Installs a plugin into the CLI.
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ steer-toolset plugins add
EXAMPLES
$ steer-toolset plugins:install myplugin
$ steer-toolset plugins:install https://github.com/someuser/someplugin
$ steer-toolset plugins:install someuser/someplugin
steer-toolset plugins:inspect PLUGIN...
Displays installation properties of a plugin.
USAGE
$ steer-toolset plugins:inspect PLUGIN...
ARGUMENTS
PLUGIN [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ steer-toolset plugins:inspect myplugin
steer-toolset plugins:install PLUGIN...
Installs a plugin into the CLI.
USAGE
$ steer-toolset plugins:install PLUGIN...
ARGUMENTS
PLUGIN Plugin to install.
FLAGS
-f, --force Run yarn install with force flag.
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Installs a plugin into the CLI.
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ steer-toolset plugins add
EXAMPLES
$ steer-toolset plugins:install myplugin
$ steer-toolset plugins:install https://github.com/someuser/someplugin
$ steer-toolset plugins:install someuser/someplugin
steer-toolset plugins:link PLUGIN
Links a plugin into the CLI for development.
USAGE
$ steer-toolset plugins:link PLUGIN
ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ steer-toolset plugins:link myplugin
steer-toolset plugins:uninstall PLUGIN...
Removes a plugin from the CLI.
USAGE
$ steer-toolset plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ steer-toolset plugins unlink
$ steer-toolset plugins remove
steer-toolset plugins:uninstall PLUGIN...
Removes a plugin from the CLI.
USAGE
$ steer-toolset plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ steer-toolset plugins unlink
$ steer-toolset plugins remove
steer-toolset plugins:uninstall PLUGIN...
Removes a plugin from the CLI.
USAGE
$ steer-toolset plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ steer-toolset plugins unlink
$ steer-toolset plugins remove
steer-toolset plugins update
Update installed plugins.
USAGE
$ steer-toolset plugins update [-h] [-v]
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.
steer-toolset strategy [FILE]
describe the command here
USAGE
$ steer-toolset strategy [FILE] [-n <value>] [-f]
FLAGS
-f, --force
-n, --name=<value> name to print
DESCRIPTION
describe the command here
EXAMPLES
$ steer-toolset strategy
See code: dist/commands/strategy.ts