PAIRS (Setting can only be used in the PAIRS config)DCA (Setting can only be used in the DCA config)COIN (Setting can be specified per coin)DCA_123 (Setting can be specified per DCA level)GLOBAL (Setting applies to all PAIRS and cannot be specified per COIN)DYN (Setting can use Dynamic logic)Settings that start with DEFAULT_ can be made coin specific.
If a setting has a coin specific override this has priority over default.
# By default you buy 10 worth but for ETH you buy 15 worth.
DEFAULT_initial_cost = 10
ETH_initial_cost = 15
Most DCA settings can be tuned per DCA level.
Say the deeper you go into DCA the less risky you want to get for example.
DEFAULT_DCA_buy_percentage_1 = 100
DEFAULT_DCA_buy_percentage_2 = 50
DEFAULT_DCA_buy_percentage_3 = 10
DEFAULT_DCA_buy_percentage_4 = 10
Dynamic logic turns your setting from a static setting to a dynamically calculated setting
You use the values of your buy and sell strategies to create these dynamic logic
DEFAULT_A_buy_strategy = ATRPERCENTAGE
DEFAULT_B_buy_strategy = RSI
# Calculate initial cost based on the ATR volatility indicator
DEFAULT_initial_cost = (SA * 2) + 10
# Check if the value of strategy B times 2 is less than 70
DEFAULT_buy_strategy_formula = (SB * 2) < 70
# Other possible comparison operators.
# == (Equal to), != (Not Equal), > (Greater than), < (Less than),
# >= (Greater than or equal to), <= (Less than or equal to)
SA would be the value of DEFAULT_A_buy_strategy
The S indicates you want to use the Strategy Value of A
If you are dealing with a setting that sells a position.
You would need to use a sell_strategy
All properties that support Dynamic logic can also make use of conditional statements.
In the bot we make use of the so called ternary operator to define this type of logic.
You can read more on ternary on this page:
Ternary explained 1
Ternary explained 2
# If my TCV is more than 2000 use 20 USDT for initial cost.
# Otherwise use 10
DEFAULT_initial_cost = TCV > 2000 ? 20 : 10
# If value of RSI is less than 40 use 1.5 trailing_buy
# Otherwise use 0.5
DEFAULT_B_strategy = RSI
DEFAULT_trailing_buy = SB < 40 ? 1.5 : 0.5
# We can also nest the conditionals to make more than 2 checks
# We can do this by adding a condition in our else part of the statement
# If my balance is more than 700 max trading pairs is 10
# If my balance is more than 300 max trading pairs is 5
# If my balance is more than 200 max trading pairs is 3
max_trading_pairs = (BAL > 700) ? 10 : (BAL > 300) ? 5 : 3
Dynamic logic turns your setting from a static setting to a dynamically calculated setting
Below you can find a list of all the possible options
Any method that has 2 or more parameters we use the | instead of a , in our properties formula. See example.
Example usage:
DEFAULT_buy_formula = Math.abs(SA) > 2 ? B && C: D && E
DEFAULT_initial_cost = Math.max(SPNL | PCOST) * 0.1
max_trading_pairsPAIRS GLOBAL-DYN
DCA_max_trading_pairsDCA GLOBAL-DYN
GLOBAL_(X)_strategy PAIRS
GLOBAL_(X)_strategy_pair PAIRS
auto_leverage_calculation PAIRS LEVERAGE
pair_expires_after_days PAIRS LEVERAGE
PAIRS DYNPAIRS DYNPAIRS DYN-LIMITEDLEVERAGE DCA_123 DYNLEVERAGE DCA_123DCA_123DCA_123DCA_123DCA_123DCA DCA_123 DYNPAIRS DYNPAIRS DYNDCA_123DCA_123DCA_123DCA_123DCA DCA_123 DYNDCA DCA_123 DYNDCA DCA_123 DYNDCA DYNDCA_123PAIRS DCA DYNDCA_123DCA_123DCA_123DCA_123DCA_123DCA_123DCA_123DCA_123 DYNDCA_123 DYNDCA_123DCA_123DCA_123 DYNDCA_123 DYNDCA_123DCA_123 DYNDCA_123 DYNDCA_123 DYNDCA_123DCA_123 DYNDCA_123 DYNDCA_123 DYNDCA_123 DYNDCA_123DCA_123 DYNDCA_123 DYNDCA_123 DYNPAIRS DCA DCA_123 DYNDCADCADCA_123PAIRS DCA DYNDCA_123DCA_123DCA_123DCA_123DCA_123DCA_123DCA_123DCA_123 DYNDCA_123 DYNDCA_123DCA_123DCA_123 DYNDCA_123 DYNDCA_123DCA_123 DYNDYNDYNExplanation of some of the indicator properties you will encounter
- candle_period
The time frame. candle_period is defined in seconds. 300 = 5 minute time frame
- length
The amount of candles used to calculate the indicator value.