HaasScript Facts

Every minute is tested

When a script is being backtested, every single minute in the backtest period is tested. Although this hurts the backtest speed, it is required for the most accurate results. There is a command available to optimize the backtest speed. Read more here:

Account & Market Definition

Several commands, like the ClosePrices() or PlaceBuyOrder() , have a market parameter. The parameter type is a string and is built using the following structure.

PriceSource_BaseCurrency_QuoteCurrency_ContractName

The contract name can be empty for spot and margin markets but is required for leverage.

BITSTAMP_BTC_USD_
BINANCE_ETH_BTC_
BITMEX_XBT_USD_XBTUSD
BITMEX_ETH_XBT_ETHU19

InputAccountMarket

InputAccountMarket will return an extended version with the account identifier and leverage

c3f53076-0c8d-4d9c-90fb-35e36143c076_BITMEX_ADA_XBT_ADAU19_10

This same string can be used for every command that requires an account, market, or leverage definition.

InputAccount

Input account only returns the account identifier as a string, this string can be used as the market in PlaceBuyOrder . The command will place an order on the same market as the main market but on a different account.

CreateMarket

CreateMarket allows you to compile a custom market string. All the parameters are optional and the default market setting will be used if not set. If, for example, the script is on BITSTAMP_BTC_USD_ and we call CreateMarket('', '', 'EUR') it will return BITSTAMP_BTC_EUR_ . This allows for creative scripts.