How Gunbot works

Easy to install
Five easy steps to get started with Gunbot. Get your own cryptocurrency trading bot!
Multiplatform: runs on Windows, Linux and Mac
Step 1

Get Gunbot 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. Just unzip the software package and launch it. Gunbot is portable, so no complex installations required. Access the user-friendly interface in your browser instantly.

Connect Gunbot with exchange API
Step 2

Seamlessly Connect to Exchange

Link Gunbot to your exchange account effortlessly. Just enter your API key and secret. Rest easy knowing your API secret stays secure on your system. Ensure the API key can 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 like "Top 10 volume USDT pairs." Opt for coins with regular 2%+ price swings. Gunbot handles any coin pair on your exchange, from BTC-ETH to USDT-BTC.

Creating a strategy is pretty easy
Step 4

Customize Your Strategy

Tailor 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 run its magic. Sit back and relax as the bot manages your trades. Receive real-time trade notifications via Telegram. Instead of manual orders, focus on refining your overall strategy. Maximize your profits while Gunbot handles the routine tasks. Need help? We're here to support your trading journey. Start your automated crypto success story today!

Developer friendly

Don't like graphical user interfaces? You can also control Gunbot by editing a JSON config file, or code custom strategies with JS. Every time changes are written to the config file, changed settings are loaded and applied seamlessly. Have a look at a few examples showing how easy it is to configure Gunbot without 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.