Advanced Strategy Parameters

Quick article search

MoonShot Strategy and Its Parameters

The purpose of this strategy is to place Buy orders on coins that pass its filters at a specified distance from the current price, smoothly move these orders up or down following the price, and buy coins on sharp downward spikes. Unlike other strategies, the MoonShot strategy does not have a detect event as such. Coins on which Buy orders will be placed are selected through the strategy’s filters, and the orders are placed and moved according to the parameters described below.


MoonShot Strategy

General Parameters


  • MShotPrice: a field for specifying the price, as a percentage relative to the current market price, at which to place the Buy order (the value is always positive). The Buy order is always placed below the market price by the percentage specified in this parameter and, during smooth price movement, the strategy attempts to maintain this distance using the Moonshot corridor mechanism. For a long position, the Buy order will automatically be placed below the current price; for a short position — above the current price;

  • MShotPriceMin: a field for specifying the minimum price, as a percentage relative to the current market price, to which the market price may approach the order price — meaning this is the upper boundary of the Moonshot corridor in which the Buy order may remain without being repositioned (the value is always positive).
    Example:
    with a long position and the following settings: MShotPrice = 3 (%), MShotPriceMin = 2 (%), the Buy order will be placed 3% below the current price, and the upper boundary of the Moonshot corridor will be set 2% below the current price, meaning the height from the Buy order to the upper boundary of the corridor will be 3 – 2 = 1%.
    The lower boundary of the Moonshot corridor will be added automatically and will appear 1% below the Buy order as well.
    When the price moves downward, the Moonshot corridor shifts downward as well, maintaining the distance MShotPriceMin = 2%, and as soon as the upper boundary of the Moonshot corridor moves below the placed Buy order, the Buy order will be repositioned lower to a new price line, maintaining the distance to the current price according to MShotPrice = 3%.
    Likewise, the algorithm works during upward price movement: when the lower boundary of the Moonshot corridor rises above the placed Buy order, the Buy order will be repositioned higher to a new price line, maintaining the distance to the current price according to MShotPrice = 3%.
    To see the Moonshot corridor boundaries, right-click the Funnel icon (Filters on charts) and enable the checkbox Show Moonshot price corridor;

  • MShotMinusSatoshi: checkbox YES/NO.
    If YES is set, the Buy order will not be placed closer than 2 satoshi from the ASK price. Useful for coins priced under 100 satoshi, where the price step is 1% or more;

  • MShotAdd3hDelta: a field for specifying an additional percentage to MShotPrice for each percent of the 3-hour delta.
    Example:
    if MShotAdd3HourlyDelta = 0.05 (%), MShotPrice = 10 (%), and the coin’s 3-hour delta is 20%, then for a long position the Buy order will not be placed 10% below the current price, but at 10% + (20 × 0.05) = 11%. Since the 3-hour delta changes over time, the distance from the current price to the Buy order will also be automatically recalculated. That is, if the 3-hour delta decreases, the Buy order will be placed closer to the price; if it increases — farther away;

  • MShotAddHourlyDelta: a field for specifying an additional percentage to MShotPrice for each percent of the 1-hour delta. Works analogously to the example above;

  • MShotAdd15minDelta: a field for specifying an additional percentage to MShotPrice for each percent of the 15-minute delta. Works analogously to the example above;

  • MShotAddMarketDelta: a field for specifying an additional percentage to MShotPrice for each percent of the Market delta. Works analogously to the example above;

  • MShotAddBTCDelta: a field for specifying an additional percentage to MShotPrice for each percent of the 1-hour BTC delta. Works analogously to the example above;

  • MShotAddBTC5mDelta: a field for specifying an additional percentage to MShotPrice for each percent of the 5-minute BTC delta. Works analogously to the example above;

  • MShotAddDistance: a field for specifying the percentage expansion of the outer price boundary (MShotPrice) depending on deltas. If the inner boundary increases by X%, then the outer boundary will increase by X × (1 + MShotAddDistance / 100)%.
    Example:
    MShotAddDistance = 100 (%), then the outer boundary will move twice as far as the upper boundary (+100%). By default: 0 — do not add anything;

  • MShotAddPriceBug: a field for specifying an additional percentage added to MShotPrice for each percent of PriceBug. Works analogously to the example above. The recommended value for this parameter is 0.2 — use it so that during exchange lags the bot places buys farther from the current price;

  • MShotSellAtLastPrice: checkbox YES/NO.
    If YES is set, then after a purchase the bot will place the sell order at the price equal to the maximum of: • the strategy’s Sell order price (Sell Price), and • the previous (4-seconds old — i.e., before the spike) ASK price, adjusted by MShotSellPriceAdjust (see below);

  • MShotSellPriceAdjust: a field for specifying the percentage adjustment applied to the ASK price. To calculate the sell price, the adjustment is subtracted from the ASK price.
    Example:
    the ASK price at the moment of the spike was 1000 satoshi. The adjustment MShotSellPriceAdjust = 1%: 1000 − 1% = 990 satoshi. If MShotSellAtLastPrice = YES, the terminal will place the Sell order at whichever of the two prices is higher: • the strategy’s regular Sell price, or • 990 satoshi;

  • MShotReplaceDelay: a field for specifying the delay time in fractional seconds before repositioning the Buy order downward (for long) or upward (for short) after the price drops to MShotPriceMin. That is, after the Buy order exits the Moonshot corridor, it will be moved back into it (further from the current price), but only after this delay;

  • MShotRaiseWait : a field for specifying the delay time in fractional seconds before repositioning the Buy order upward (for long) or downward (for short) after the price rises. That is, after the Buy order exits the Moonshot corridor, it will be moved back into it (closer to the current price), but only after this delay.

  • MShotSortBy: a menu for selecting the sorting method for coins based on various values that the MoonShot strategy evaluates during its operation:

    • Last1mDelta, Last15mDelta, Last30mDelta, Last1hDelta, Last2hDelta, Last3hDelta, 24h-Delta — by price deltas (for 1m, 15m, 30m, 1h, 2h, 3h, 24h);

    • DVolToHVolAsc — by the ratio of daily to hourly volume, ascending;

    • DVolToHVolDesc — by the ratio of daily to hourly volume, descending;

    • DailyVol, HourlyVol, MinuteVol, 3Min-Vol, 5Min-Vol — by volumes (24h, 1h, 1m, 3m, 5m);

    • MaxOrder — by maximum order size;

    • Orders — by the number of orders;

    • Session — by session value;

    • MaxPos — by maximum position;

    • MarkPrice — by mark price;

    • Funding — by funding;

    • Leverage — by leverage size;

    • Pump5m — by the 5-minute price pump delta (difference between the price 5 minutes ago and the maximum price over 5 minutes);

    • Pump1h — by the 1-hour pump delta (difference between the price 1 hour ago and the maximum price over 1 hour);

    • Dump1h — by the 1-hour dump delta (difference between the price 1 hour ago and the minimum price over 1 hour);

    • OrderBook (available only to MoonStrike owners) — by order book thickness, prioritizing coins with the thinnest order books:

  • MShotSortDesc: checkbox YES/NO.
    If YES is set, the sorting direction in MShotSortBy will be from larger to smaller values.
    If NO is set, the sorting direction will be from smaller to larger values;

  • MShotUsePrice: a menu for selecting the reference price when placing the Buy order at the distance MShotPrice:

    • BID – from the BID boundary

    • ASK – from the ASK boundary 

    • Trade – from the last trade.
      If MShotUsePrice = Trade but there are no trades available, the ASK price will be used automatically;

  • FastShotAlgo: checkbox YES/NO.
    If YES is set, a faster algorithm for handling Buy orders in the MoonShot strategy becomes active. It is recommended to enable this setting and regulate slowdown only through MShotReplaceDelay. The FastShotAlgo parameter works on all exchanges, although the actual acceleration depends on the specific exchange. Enabling this parameter slightly increases CPU load (approximately by 10%).

    If the AutoTrading Extension module is activated in Moonbot, the MoonShot strategy gets additional parameters that expand its capabilities — i.e., MoonShot can place a repeat Buy order on the same coin without waiting for the first Sell order to execute.

    • if MShotRaiseWait = 0, algorithm 1 is used

    • otherwise, algorithm 2 is used.
      You may set MShotRaiseWait = 0.01 — this will not affect trading but will enable algorithm 2.
      Algorithm 1: In this mode, the price for the MoonShot Buy order is calculated based on several of the latest trades.
      Algorithm 2: In this mode, the price is calculated based on the minimum trade price over the last 100ms. Side effect: this algorithm creates a "built-in raise-wait of 100ms", meaning the return to the price will not occur earlier than 100ms, because instead of the current price the minimum 100ms price is used. Therefore, the “price” remains unchanged for 100ms — but the Buy order must retreat from the price even faster.

      If the AutoTrading Extension module is activated in Moonbot, the MoonShot strategy gets additional parameters that expand its capabilities — i.e., MoonShot can place a repeat Buy order on the same coin without waiting for the first Sell order to execute;

  • MShotRepeatAfterBuy: checkbox YES/NO.
    If YES is set, place a repeat Buy order after the initial Buy and Sell order placement;

  • MShotRepeatIfProfit: a field for specifying the percentage of current price relative to the Buy price above which a repeat Buy order may be placed;

  • MShotRepeatWait: a field for specifying the time interval in seconds during which a repeat Buy may be placed, provided MShotRepeatIfProfit is satisfied.

    A repeat Buy order is placed only if the current price becomes higher than the Buy price by MShotRepeatIfProfit percent within MShotRepeatWait seconds.

    Default values MShotRepeatIfProfit = 0, MShotRepeatWait = 5 mean:
    “A repeat Buy order can be placed if the current price increases above the Buy price within 5 seconds after the purchase.”

  • MShotRepeatDelay: a field for specifying the delay time in seconds before placing a repeat Buy order.


⚠️ Important! Because MoonShot frequently repositions Buy orders (depending on the specific strategy settings, but in most cases this is true), the API keys may experience heavy load, potentially causing temporary bans from the exchange. Try to maintain fewer than 30–35 active Buy orders simultaneously. If you need more, distribute orders across separate API keys. You may also use subaccounts and multiple dedicated servers with different IPs.


When using MoonShot on the futures market, follow the additional quantitative order rules introduced by Binance.


In the MoonBot.ini file, in the Advanced settings section, the parameter ExpertMode=1 enables expert mode; if 0, expert mode is disabled.


With expert mode enabled (ExpertMode = 1):


  • minimum values in MoonShot for parameters previously limited to MShotPriceMin = 0.05 and MShotPrice = 0.10 become even smaller, i.e. MShotPriceMin = 0.01 and MShotPrice = 0.02

  • the minimum value for AutoCancelBuy, previously 90 seconds, becomes 15 seconds.


All modifications to MoonBot.ini must be made only when Moonbot is shut down.


Recommendations for running MoonShot on a VDS


When using MoonShot with a narrow price interval (up to 0.5% difference between MShotPriceMin and MShotPrice), it is recommended to set MShotAddDistance = 50, and also MShotUsePrice = Trade. In this case, prices for Buy-order repositioning will be taken from the last trade price, and the terminal will re-place orders faster — especially important for futures trading.


For strategies focused on fast trading (MoonShots with small intervals, MoonStrike, DropsDetection with small drawdown), it is recommended to use a non-zero HFT parameter (an integer value).