How Gunbot works

Easy to install
Follow these five easy steps to get started with Gunbot as your crypto trading bot.
Multiplatform: runs on Windows, Linux and Mac
Step 1

Get Your Crypto Trading Bot Running in Minutes

Get started by installing Gunbot on your computer or VPS. It's hassle-free and works on Windows, Linux, macOS, and even Raspberry Pi.

Simply unzip the software package and launch it. With Gunbot's portable design, you avoid complex installations. Instantly access the user-friendly interface through your web browser.

Connect Gunbot with exchange API
Step 2

Seamlessly Connect to Exchange

Linking Gunbot to your exchange account is a snap. Just enter your API key and secret. Rest easy knowing your API secret stays secure on your system. Ensure the API key has permissions to read info and execute trades – Gunbot doesn't need withdrawal permissions.

Add pairs manually or with filter rules
Step 3

Choose Your Winning Pairs

Select the coins you want Gunbot to trade and pick suitable strategies for each pair. Add pairs individually or set filter rules with AutoConfig, like "Top 10 volume USDT pairs." Opt for coins with regular 2%+ price swings. Gunbot can handle any coin pair on your exchange, from BTC-ETH to USDT-BTC.

Creating a strategy is pretty easy
Step 4

Customize Your Bot Trading Strategy

Modify your trading strategy effortlessly. Adjust the trading limit, defining Gunbot's investment per trade.

Explore various approaches like grid trading, trend following, or using indicators like Bollinger Bands. Even manually bought coins can be optimized for profit with Gunbot’s smart selling.

Learn about different ways to use Gunbot.

Dashboard with overview of active trading pairs
Step 5

Relax While Bot Does the Work

Let Gunbot do its magic. Sit back and relax as the bot handles your trades. Receive real-time trade notifications via Telegram. Instead of managing manual orders, focus on refining your overall strategy. Maximize your profits while Gunbot takes care of the routine tasks. Need help? Our support team is always ready to assist. Start your automated crypto success story today!

Developer friendly

Prefer coding over graphical interfaces? Control Gunbot by editing a JSON config file, or code custom strategies with JavaScript. Every time changes are saved to the config file, the new settings are seamlessly applied. Check out some examples to see how easy it is to configure Gunbot without using the GUI.
Config example: trading pairs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
  pairs: {
    binanceFutures: {
      'USDT-BTC': {
        strategy: 'SMACROSS',
        enabled: true,
        override: {
          TRADING_LIMIT: 1000,
          BUY_ENABLED: false,
          SELL_ENABLED: true,
          ROE: 10
        }
      },
      'USDT-ETH': {
        strategy: 'SMACROSS',
        enabled: true,
        override: {
          TRADING_LIMIT: 500,
          BUY_ENABLED: false,
          SELL_ENABLED: true,
          ROE: 5
        }
      }
    }
  }
}
Config example: strategy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
{
  strategies: {
    mm: {
      BUY_METHOD: 'Market_Maker',
      BUY_ENABLED: true,
      SELL_METHOD: 'Market_Maker',
      SELL_ENABLED: true,
      TRADING_LIMIT: 10,
      STOP_LIMIT: 15,
      ROE: 5,
      bitRage: false,
      REBATES_BUSTER: false,
      MAX_BUY: 3,
      MAX_SELL: 3,
      BUY_LEVEL: 99,
      GAIN: 99,
      DOUBLE_CHECK_GAIN: false,
      NBA: 0,
      BUYLVL1: 0.1,
      BUYLVL2: 2,
      BUYLVL3: 70,
      SELLLVL1: 0.1,
      SELLLVL2: 2,
      SELLLVL3: 70,
      BUYLVL: 1,
      SELLLVL: 1,
      XTREND_ENABLED: false,
      BUY_RANGE: 0.1,
      SELL_RANGE: 0.1,
      TSSL_TARGET_ONLY: false,
      PP_BUY: 0,
      PP_SELL: 99999,
      SHORT_LEVEL: 0.1,
      LONG_LEVEL: 0.2,
      ROE_TRAILING: false,
      ROE_LIMIT: 0.1,
      LEVERAGE: 0,
      STOP_BUY: 0,
      STOP_SELL: 0,
      TAKE_PROFIT: false,
      TP_PROFIT_ONLY: false,
      TP_RANGE: 0.6,
      TAKE_BUY: false,
      TBUY_RANGE: 0.5,
      FUNDS_RESERVE: 0,
      KEEP_QUOTE: 0,
      TL_ALLIN: false,
      TL_PERC: 0,
      PERIOD: 5,
      USE_RENKO: false,
      RENKO_PERIOD: 15,
      RENKO_BRICK_SIZE: 0.0001,
      RENKO_ATR: false,
      ADX_ENABLED: false,
      ADX_LEVEL: 25,
      DI_PERIOD: 14,
      ATRX: 0.5,
      ATR_PERIOD: 14,
      BTC_PND_PROTECTION: false,
      BTC_MONEY_FLOW: 50,
      BTC_PND_PERIOD: 14,
      CANDLES_LENGTH: 99,
      EMA1: 8,
      EMA2: 4,
      EMA_LENGTH: 50,
      EMASPREAD: false,
      EMAx: 0.5,
      FAST_SMA: 1,
      SLOW_SMA: 2,
      SINGLE_BUY: false,
      HIGH_BB: 0,
      LOW_BB: 0,
      SMAPERIOD: 50,
      STDV: 2,
      KUMO_SENTIMENTS: false,
      ICHIMOKU_PROTECTION: false,
      KIJUN_PERIOD: 26,
      TENKAN_PERIOD: 9,
      SENKOUSPAN_PERIOD: 52,
      DISPLACEMENT: 26,
      KUMO_CLOSE: false,
      KIJUN_CLOSE: false,
      TENKAN_STOP: false,
      KIJUN_STOP: false,
      TENKAN_CLOSE: false,
      ROE_CLOSE: false,
      KUMO_STOP: false,
      KIJUN_BUY: false,
      KIJUN_SELL: false,
      KUMO_BUY: false,
      KUMO_SELL: false,
      TENKAN_BUY: false,
      TENKAN_SELL: false,
      MACD_LONG: 20,
      MACD_SHORT: 5,
      MACD_SIGNAL: 10,
      MFI_ENABLED: false,
      MFI_BUY_LEVEL: 30,
      MFI_SELL_LEVEL: 70,
      MFI_LENGTH: 14,
      RSI_BUY_ENABLED: false,
      RSI_SELL_ENABLED: false,
      RSI_BUY_LEVEL: 30,
      RSI_SELL_LEVEL: 70,
      RSI_LENGTH: 14,
      RSI_METHOD: 'oscillator',
      STOCH_ENABLED: false,
      STOCH_BUY_LEVEL: 20,
      STOCH_SELL_LEVEL: 80,
      SLOW_STOCH_K: 3,
      STOCH_D: 3,
      STOCH_K: 14,
      STOCH_METHOD: 'oscillator',
      STOCHRSI_ENABLED: false,
      STOCHRSI_BUY_LEVEL: 0.1,
      STOCHRSI_SELL_LEVEL: 0.9,
      STOCHRSI_LENGTH: 14,
      STOCHRSI_METHOD: 'oscillator',
      DOUBLE_UP: false,
      DOUBLE_UP_CAP: 1,
      DU_BUYDOWN: 0.5,
      DU_CAP_COUNT: 2,
      DU_METHOD: '1',
      RSI_DU_BUY: 99,
      RT_ENABLED: false,
      RT_BUY_LEVEL: 0.2,
      RT_GAIN: 0.1,
      RT_MAXBAG_PROTECTION: 99,
      RT_ONCE: false,
      RT_ONCE_AND_CONTINUE: false,
      RT_SELL_UP: 0.5,
      RT_BUY_UP_LEVEL: 0,
      RT_TREND_ENABLED: false,
      TRAIL_ME_BUY: false,
      TRAIL_ME_SELL: false,
      TRAIL_ME_DU: false,
      TM_RT_SELL: false,
      TRAIL_ME_RT: false,
      TRAIL_ME_BUY_RANGE: 0.1,
      TRAIL_ME_SELL_RANGE: 0.1,
      TRAIL_ME_RT_SELL_RANGE: 0.1,
      IGNORE_TRADES_BEFORE: 0,
      MIN_VOLUME_TO_BUY: 5,
      MIN_VOLUME_TO_SELL: 0.00001,
      PANIC_SELL: false,
      SL_DISABLE_BUY: false,
      COUNT_SELL: 9999,
      TRADES_TIMEOUT: 0,
      MARKET_BUY: false,
      MARKET_SELL: false,
      MARKET_CLOSE: false,
      MARKET_STOP: false,
      MARKET_RTBUY: false,
      MARKET_RTSELL: false,
      MARKET_BUYBACK: false,
      MARKET_DU: false,
      MARKET_FOK: false,
      PRE_ORDER: false,
      PRE_ORDER_GAP: 0,
      MAKER_FEES: false,
      MEAN_REVERSION: true,
      IS_MARGIN_STRAT: true,
      PSAR_PERIOD: 360,
      PSAR_STEP: 0.02,
      PSAR_MAX: 0.2,
      AUTOSELL: true,
      BR_PANIC_SELL: false,
      MAIN_BASE: 'BTC'
    }
  }
}
Config example: automated config changes with AutoConfig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
{
  'Add pairs': {
    pairs: {
      exclude: '',
      include: 'BTC-',
      maxPairs: 10,
      noCrossOver: false,
      exchange: 'binance'
    },
    filters: {
      price: {
        type: 'minPrice',
        target: 0.000002
      },
      spread: {
        type: 'maxSpreadPct',
        target: 0.4
      },
      volume: {
        type: 'minVolume24h',
        target: 140
      },
      linreg: {
        type: 'linearRegressionChannel',
        target: 35
      },
      maxChange: {
        type: 'maxVolatilityPct24h',
        target: 10
      },
      btcPnd: {
        type: 'variableExact',
        btcPnd: false
      },
      change: {
        type: 'maxPricePctChangeInterval',
        target: -0.2,
        lastSnapshots: 4
      },
      change2: {
        type: 'maxPricePctChangeInterval',
        target: -0.5,
        lastSnapshots: 12
      }
    },
    overrides: {
      BUY_ENABLED: false,
      SELL_ENABLED: false
    },
    schedule: '*/5 * * * *',
    type: 'addPairs',
    strategy: 'spot',
    snapshots: 100,
    setITB: true,
    resume: true,
    debug: false,
    muteTG: true,
    enabled: true,
    setPairVariable: {
      status: 'new'
    }
  },
  'Set targets and ranges': {
    pairs: {
      exclude: '',
      include: 'BTC-',
      exchange: 'binance'
    },
    filters: {
      hasDifference: {
        type: 'pairVariableExact',
        status: 'new'
      }
    },
    overrides: {
      targets: true,
      BUY_ENABLED: true,
      SELL_ENABLED: true,
      BUY_METHOD: 'pp',
      SELL_METHOD: 'gain',
      PP_BUY: ' this.pair.Bid * 0.9965',
      GAIN: 0.5,
      TRAIL_ME_BUY_RANGE: ' (((this.pair.R1 - this.pair.S1) / this.pair.Bid) * 100) * 0.1',
      DU_BUYDOWN: ' (((this.pair.R1 - this.pair.S1) / this.pair.Bid) * 100) * 0.5'
    },
    clearOverrides: false,
    schedule: '* * * * *',
    type: 'manageOverrides',
    setITB: true,
    debug: true,
    muteTG: true,
    enabled: true,
    setPairVariable: {
      status: 'hasTargets'
    }
  },
  'Remove pairs': {
    pairs: {
      exclude: '',
      noBag: true,
      removeDisabled: true,
      notRemoveBefore: 1,
      exchange: 'binance'
    },
    filters: {
      timeout: {
        type: 'minTimeInConfig',
        target: 30
      }
    },
    schedule: '*/3 * * * *',
    type: 'removePairs2',
    debug: true,
    enabled: true,
    muteTG: false
  },
  'Detect strong BTC movement': {
    pairs: {
      exclude: 'UP,DOWN',
      include: 'USDT-BTC',
      maxPairs: 0,
      noCrossOver: false,
      exchange: 'binance'
    },
    filters: {
      pump: {
        type: 'minPricePctChangeInterval',
        target: 0.4
      }
    },
    overrides: {},
    schedule: '* * * * *',
    type: 'addPairs',
    strategy: 'gain',
    snapshots: 60,
    setITB: true,
    resume: true,
    debug: false,
    muteTG: true,
    enabled: true,
    setVariable: {
      btcPnd: true
    },
    resetVariable: {
      btcPnd: false
    },
    filters2: {
      dump: {
        type: 'maxPricePctChangeInterval',
        target: -0.4
      }
    }
  }
}
Custom JS strategy example
Use Gunbot as execution engine for your own strategies

Learn more about how trading with Gunbot really works.

,