Skip to content

Example configs

On this page you'll find a few example configurations, showing commonly used functionality and configurations that have been used in the past that are usefull as starting point for creating your own configurations

Support-resistance based grid

The configuration below will make Hawkbot trade on a fixed set of symbols, trading both long & short at the same time. The grid will be based on 4H support & resistance levels, placing 7 orders in each grid. The total wallet exposure for longs will be 1, while the total wallet exposure of shorts is 0.8.

This configuration is considered a safe setup, but requires a decently sized wallet ($10K+) due to minimum notional on exchanges. Obviously you can increase the wallet_exposure_ratio to gain more profits, but this will also increase risks. This configuration includes the multi-symbol auto reduce plugin, set to utilize 40% of gained profits for reducing stuck positions. It also contains the hedge plugin, making the opposite position side enter potentially more aggressive when a position is stuck.

config.json
   {
    "hedge_mode": true,
    "multicore": false,
    "persisted_tick_purge_expiry_time": "5m",
    "plugins": {
      "MultiAutoreducePlugin": {
        "reduce_interval": "60s",
        "profit_percentage_used_for_reduction": 0.4,
        "activate_above_upnl_pct": 100
      }
    },
    "symbol_configs": [
      {
        "symbol": [
          "CHZUSDT",
          "DOTUSDT",
          "DOGEUSDT",
          "MATICUSDT",
          "AVAXUSDT",
          "ETCUSDT",
          "LINKUSDT",
          "ADAUSDT",
          "XRPUSDT"
        ],
        "exchange_leverage": 10,
        "long": {
          "enabled": true,
          "strategy": "BigLongStrategy",
          "mode": "NORMAL",
          "wallet_exposure_ratio": 0.125,
          "strategy_config": {
            "entry_order_type": "LIMIT",
            "cancel_orders_on_position_close": true,
            "limit_orders_reissue_threshold": 0.003,
            "dca": {
              "period": "3M",
              "period_timeframe": "1m",
              "algo": "LIN_PEAKS_TROUGHS_HIGHLOW",
              "nr_clusters": 7,
              "outer_price_level_nr": 1,
              "outer_price_period": "12M",
              "outer_price_timeframe": "4H",
              "outer_price_nr_clusters": 10,
              "outer_price_algo": "PEAKS_TROUGHS_HIGHLOW",
              "minimum_distance_to_outer_price": 0.07,
              "ratio_power": 0.75
            },
            "hedge": {
              "activate_hedge_above_wallet_exposure_pct": 35,
              "dca_config": {
                "period": "3M",
                "period_timeframe": "1m",
                "algo": "LIN_PEAKS_TROUGHS_HIGHLOW",
                "nr_clusters": 7,
                "outer_price_distance_from_opposite_position": 0.03,
                "ratio_power": 0.75
              }
            },
            "tp": {
              "minimum_tp": 0.0028
            }
          }
        },
        "short": {
          "enabled": true,
          "strategy": "BigShortStrategy",
          "mode": "NORMAL",
          "wallet_exposure_ratio": 0.1,
          "strategy_config": {
            "entry_order_type": "LIMIT",
            "cancel_orders_on_position_close": true,
            "limit_orders_reissue_threshold": 0.003,
            "dca": {
              "period": "3M",
              "period_timeframe": "1m",
              "algo": "LIN_PEAKS_TROUGHS_HIGHLOW",
              "nr_clusters": 7,
              "outer_price_level_nr": 2,
              "outer_price_period": "12M",
              "outer_price_timeframe": "4H",
              "outer_price_nr_clusters": 10,
              "outer_price_algo": "PEAKS_TROUGHS_HIGHLOW",
              "minimum_distance_to_outer_price": 0.1,
              "ratio_power": 0.55
            },
            "hedge": {
              "activate_hedge_above_wallet_exposure_pct": 35,
              "dca_config": {
                "period": "3M",
                "period_timeframe": "1m",
                "algo": "LIN_PEAKS_TROUGHS_HIGHLOW",
                "nr_clusters": 7,
                "outer_price_distance_from_opposite_position": 0.03,
                "ratio_power": 0.55
              }
            },
            "tp": {
              "minimum_tp": 0.0022
            }
          }
        }
      }
    ]
  }

Tight manual grid

The configuration below shows a setup that trades much more aggressively using a fixed-distance grid trading both long & short. The stoploss is disabled in this configuration, but can simply be enabled by changing the enabled field for the stoploss config to true. The configuration trades using a grid of 5 orders, but has an aggressive ratio_power value, sticking very close to the price action even in volatile times. This configuration is a good starting point if you want to run grids specific to the momentum of a coin.

config.json
    {
      "hedge_mode": true,
      "multicore": false,
      "state_synchronize_interval_s": 5,
      "initial_entry_block_ms": 11000,
      "override_max_exposure_ratio_check": true,
      "persisted_tick_purge_expiry_time": "5m",
      "symbol_configs": [
        {
          "symbol": [
            "ANKRUSDT"
          ],
          "long": {
            "enabled": true,
            "strategy": "BigLongStrategy",
            "tick_execution_interval_ms": 250,
            "wallet_exposure_ratio": 12,
            "strategy_config": {
              "entry_order_type": "LIMIT",
              "limit_orders_reissue_threshold": 0.00001,
              "repost_lower_allowed": false,
              "dca": {
                "period": "3D",
                "period_timeframe": "1m",
                "algo": "LINEAR",
                "nr_clusters": 5,
                "outer_price_distance": 0.042,
                "ratio_power": 1.5,
                "allow_add_new_smaller_dca": false
              },
              "tp": {
                "minimum_tp": 0.0025
              },
              "stoploss": {
                "enabled": false,
                "last_entry_trigger_distance": 0.01,
                "post_stoploss_mode": "MANUAL",
                "order_type": "STOP"
              }
            }
          },
          "short": {
            "enabled": true,
            "strategy": "BigShortStrategy",
            "tick_execution_interval_ms": 250,
            "wallet_exposure_ratio": 12,
            "strategy_config": {
              "entry_order_type": "LIMIT",
              "limit_orders_reissue_threshold": 0.00001,
              "repost_higher_allowed": false,
              "dca": {
                "period": "3D",
                "period_timeframe": "1m",
                "algo": "LINEAR",
                "nr_clusters": 5,
                "outer_price_distance": 0.042,
                "ratio_power": 1.5,
                "allow_add_new_smaller_dca": false
              },
              "tp": {
                "minimum_tp": 0.0025
              },
              "stoploss": {
                "enabled": false,
                "last_entry_trigger_distance": 0.01,
                "post_stoploss_mode": "MANUAL",
                "order_type": "STOP"
              }
            }
          }
        }
      ]
    }

Manual scalping aid

The configuration below shows an example configuration that can be used as a manual scalping aid on long positions. There are several keys mapped to actions as can be seen in the config. Next to placing a grid upon pushing the corresponding button (b in the example below), it will also automatically maintain a stoploss-order to enforce a maximum loss budget (set at 1% of the exposed balance in the example below). Upon each order fill, it will automatically move the stoploss to enforce this loss budget. Lastly, it has a number of TP distances that can be changed using the 1-9 keys, and a trailing stoploss that is activated once the position is ensured to be in profit.

Warning

Please be aware this strategy will capture your keyboard output to perform it's tasks, so make sure you're not doing anything else on your machine when using this

config.json
{
  "hedge_mode": true,
  "multicore": false,
  "persisted_tick_purge_expiry_time": "5m",
  "state_synchronize_interval_s": 5,
  "symbol_configs": [
    {
      "symbol": [
        "OMUSDT"
      ],
      "long": {
        "enabled": true,
        "strategy": "ManualScalpLongStrategy",
        "wallet_exposure_ratio": 1,
        "tick_execution_interval_ms": 10,
        "pulse_interval_ms": 250,
        "strategy_config": {
          "initial_entry_size": 0.1,
          "dca_multiplier": 1.5,
          "grid_width": 0.005,
          "nr_orders_per_grid": 3,
          "entry_offset_price_steps": 8,
          "key_buy": "b",
          "key_cancel_entry": "c",
          "key_cancel_all": "a",
          "key_toggle_tp": "t",
          "key_toggle_stoploss": "l",
          "key_close_position": "x",
          "key_quit": "q",
          "tp_distances": {
            "1": 0.001,
            "2": 0.002,
            "3": 0.003,
            "4": 0.004,
            "5": 0.005,
            "6": 0.006,
            "7": 0.007,
            "8": 0.008,
            "9": 0.009
          },
          "tp": {
            "minimum_tp": 0.005,
            "trailing_enabled": true,
            "trailing_activation_distance_from_position_price": 0.0019,
            "trailing_trigger_distance_from_current_price": 0.0014,
            "trailing_execution_distance_price_steps": 3,
            "trailing_shift_threshold": 0.002
          },
          "stoploss": {
            "enabled": true,
            "order_type": "STOP",
            "upnl_exposed_wallet_trigger_threshold": 0.01
          }
        }
      }
    }
  ]
}