Strategies

he strategies are designed to separately fine-tune the parameters for different kinds of trading signals.

Important! This section applies to advanced settings. All the parameters can be changed with any accuracy, in any range. The bot does not check the "adequacy" of the values. We do not support the adjustment and operation of strategies, please turn them on only if you are sure in what you are doing.

Test strategies pack can be downloaded here: data.zip

Unpack the data folder from downloaded zip to bot's folder. ATTENTION! this operation will completely remove all previous strategies you had filled. Make a backup copy of the data folder before copying.

The window with strategies settings:

MoonBot Strategies Window

The strategies begin to work after you tick the checkboxes for needed ones and click "Start Selected" (except for strategies for manual trading). At the same time in the main window on the button "strategy" lights up a light bulb. Strategies related to the signals in Telegram begin work immediately. To start strategies related to auto-detect, you must also enable the "Auto Detect" button.

Priorities for applying settings:

  • Bot's main settings, "Risk Limit" group are adding to strategy filters (including global coins black list)
  • Autodetection: if there is at least 1 strategy for a certain type of signals, then it is used instead of the general settings. If several strategies are specified for one type of signals, then the first in the list matching the conditions (white list, black list, daily volume limits) is used.
  • Telegram:
    • if there are strategies for the signal's channel and signal's key (read below about key), first in the list matching both channel and key will be used.
    • If there are NO strategies matching both channel and key, then the first strategy with an empty key matching the channel will be used
    • If there are NO strategies matching the channel, then general settings will be used.

Telegram strategies logic changed in v. 3.46:

  • Telegram strategies work only if the checkbox "Settings -> Autobuy -> Advanced filter" is set.
  • Telegram strategies work independently of the checkbox " "Settings -> Autobuy -> Autobuy from Telegram" (you control a strategy autobuy option with the strategy itself)
  • Telegram strategies work independently of channels selection (in Settings -> Telegram) (you control the strategy channel by the strategy itself)
  • If there is no strategies matching the channel and the coin from a signal, then checkbox " "Settings -> Autobuy -> Autobuy from Telegram" will manage whether or not the bot should open markets chart for the coin and buy this coin

Creation and editing:

To create a new strategy, click "Add New". Fill the name, save. Select the signal type from the drop-down list, fill in the parameters.

The filled strategy can be copied to the clipboard to send to a friend (in plain text format). To insert received text, select the text with the strategy, copy it to the clipboard, click the "Paste" button in the bot.

Parameters meaning:

Main

 

 

  • StrategyName: Strategy name (each strategy must have a unique name)
  • Comment: Comment (defined by the user)
  • SignalType: Strategy type selector
  • ChannelName: Select the Telegram channel from the list of specified in the main settings
  • ChannelKey: Telegram signal type. for our premium channel its moon_1.. moon_20, for other channels its the keyword you use in Telegram signals filter (like "buy", "news", etc)
  • AcceptCommands (Telegram strategies only): Should the strategy accept Trust Management commands
  • SilentNoCharts: Do not open the market chart on signal/detect
  • ReportToTelegram: Send detected signal to your remote control channel (not executed orders report, but the signal itself like "#bnb drop detected")
  • EmulatorMode: Turn ON the emulation of trades. Real trades on this strategy will not happen if selected.

    Alarm settings on signal detection:

  • SoundAlert: Play sound alarm and show a button with the market name above the charts workspace for fast chart access (YES\NO)
  • SoundKind: Choose from predefined sounds.
  • KeepAlert: How long to keep the market alert button, seconds

Filters: 

 

 

 

  • CoinsWhiteList: Whitelist of coins (if empty, not used). If the list is specified, then the strategy analyzes ONLY the specified list of coins. Should be separated by commas, with no spaces.
  • CoinsBlackList: Black list of coins (if empty, not used). The strategy will not analyze these coins. Should be separated by commas, with no spaces.
  • MinVolume: The Minimum Daily Volume below which not to take coins into consideration (BTC). You can view the daily and hourly volumes of any coin by clicking the "Show Markets" button.
  • MaxVolume: The Maximum Daily Volume above which not to take coins into consideration
  • MinHourlyVolume: The Minimum Hourly Volume below which not to take coins into consideration
  • MaxHourlyVolume: The Maximum Hourly Volume above which not to take coins into consideration
  • PenaltyTime: During this period, specified in seconds, the strategy will not operate on a market which gave 3 negative trades in a row and on a market where you set up or canceled an order manually.
  • Delta_3h_Min: The Minimum value of the last 3 hours Delta (in %), below which the bot does not consider the coin. Delta is considered as the difference between the minimum and the maximum prices within the specified period.
  • Delta_3h_Max: The Maximum value of the last 3 hours Delta (in %) above which the bot does not consider the coin. 
  • Delta2_Type: Choose additional delta for filter test: 15 min, 30 min, 1 hour, 2 hours, Pump5m. (Pump5m delta is diff. between 5-min old price and max, price during last 5 minutes, %. Use to avoid dumps after flash pumps)
  • Delta_24h_Min: The Minimum Delta value for the last 24 hours (in %), below which the bot does not consider the coin.
  • Delta_24h_Max: The Maximum Delta value for the last 24 hours (in %) above which the bot does not consider the coin.
  • Delta2_Min: The minimum value of the add. Delta (not less than, in %).
  • Delta2_Max: The maximum value of the add. Delta (not greater than, in %).
  • Delta_BTC_Min: BTC minimum hourly rate change (%), not less than. Calculated as the difference between the average price for the last hour and the current price. Сan be negative.
  • Delta_BTC_Max: BTC maximum hourly rate change (in %), not more than.
  • Delta_BTC_24_MinBTC minimum daily rate change (in %). Calculated as the difference between the average price for the last hour and the current price. Сan be negative.
  • Delta_BTC_24_MaxBTC maximum daily rate change (in %). 
  • Delta_Market_Min: The average of all hourly deltas across all altcoins, not less than (in %). Calculated as the difference between the average price for the last hour and the current price, averaged over all pairs. Can be negative.
  • Delta_Market_Max: The average of all hourly deltas across all altcoins, no more than (in %). 
  • Delta_Market_24_Min: The average of all daily deltas across all altcoins, not less than (in %).
  • Delta_Market_24_Max: The average of all daily deltas across all altcoins, no more than (in %).
  • UseBV_SV_FilterThis is the filter of the ratio of volumes of purchases to volumes of sales. If the filter is included (Yes), the strategy will work using the BV_SV Stop definitions (BV_SV_Kind; BV_SV_TradesN)
  • BV_SV_FilterRatioThe value of the Buy Volume to Sell Volume ratio in a given time N (or for a predetermined number of past transactions) below which autobuy is not performed.  Example: for a given N = 60 minutes and FilterRatio = 2 coin will pass through the filter only if for the last hour bought coins volume is at least 2 times more than was sold (if sold in an hour on a total of 1 Btc, then bought should at least 2 Btc) .
  • NextDetectPenalty: Time, in seconds, during which the strategy will not work again after a detect or signal of the same coin. (min. time between 2 detections in a row)
  • GlobalFilterPenaltyTime, in seconds, during which the strategy will not work again after it has not passed via any of the filters above (if 0, the parameter is ignored).
  • DeltaSwitch: If a strategy starts to work with a coin under specified delta range (from X to Y), then it will stay on the coin until (X-DeltaSwitch to Y+DeltaSwitch) (currently makes sense only for MoonShot). Use it to make different strategies for different market conditions, i.e. 1 strategy for BTC delta from -1% to 0%, another strategy for BTC delta from 0% to 1%. If DeltaSwitch=0.2% then first strategy will stay on a coin up to 0.2% (0% + 0.2%)
  • PriceStepMin,PriceStepMax: price step as a percentage of current price (PriceStepMin=0 by default, PriceStepMax=0.5% by default to exclude "square" coins like HOT)
    Example: the HOT coin (current price is 20 sat.) has 5% price step. The XVG coin (current price is 200sat) has 0.5% (so default PriceStepMax filters out coins under 200sat)
    Actual coins price steps you can see in the coins table, the PumpQ column ("Show Markets" button)
    NOTE: if you want your existing strategies to work with such coins, increase the default PriceStepMax!

Buy conditions:  

 

 

 

  • AutoBuy: Autobuy detected coin. If YES, then place an order to buy at the parameters below. If NO, the strategy will give the signal, but the purchase will not be made, it is useful when you use the strategy as an assistant in the choice of coin for manual trading. The strategy is simply to signal you about interesting situations on the market, and you yourself will decide to open a position.
  • MaxActiveOrders: Max active orders for this particular strategy on different coins. If exceeded, autobuy will not be performed until some orders filled\cancelled
  • AutoCancelBuy: Auto cancellation of buy order after the specified time, in seconds. If 0, there is no cancellation.
  • AutoCancelLowerBuy: (Telegram only) Auto cancellation of buy order after the specified time, in seconds, if the lower purchase price signal was used.
  • BuyType: Specify a fixed ordersize, in the base currency (BTC, ETH, USDT). When 0, the value of the general settings (main window).
  • OrderSize: Specify a fixed ordersize, in the base currency (BTC, ETH, USDT). If 0, the value of the general settings will be used(main window).
  • buyPrice: The purchase price, (in %) from the price at the time of the strategy detect or from the price 30 seconds ago(next parameter).
  • Use30SecOldASK: If YES, then the bot will use [30-sec old ASK price + buyPrice] for the buy order, If NO, then [current ASK price + buyPrice]
  • TlgUseBuyDipWords: (Only for Telegram signals) If the signal contains stop-words to buy at a lower price (i.e. "buy dip", "when dump") and TlgUseBuyDipWords = YES, then a lower price will be used (look below).
  • TlgBuyDipPrice: (Only for Telegram signals) In the case above this price will be used (% to the current market price. use a negative value)

Sell Order:   

 

 

  • SellPrice: Selling price (in %) from the purchase price.

    Function "Lower Sell price on timer":

  • PriceDownTimer: Timer function "to reduce the price" (if 0, disabled), defined in seconds. If not 0, then after the specified time sell order begins to decrease by the given parameters.
  • PriceDownDelay: Delayed price reducing steps (in seconds). After the purchase, we first try to sell at a specified price. When the time of PriceDownTimer triggers we reduce the price for the first time, then after PriceDownDelay we reduce the prices for the second time, again on the
  • expiration PriceDownDelay we reduce the price for the third time, and so on.
    PriceDownRelative: If NO then next parameter is a percentage of the absolute sell price. If YES, then a percentage of the difference between sell and buy price
  • PriceDownPercent: Lower sell order to this value each step. Example: your initial sell is placed at 1000sat. PriceDownRelative=NO, PriceDownPercent=0.5%, PriceDownDelay=10s. In this case, every 10 seconds your sell will be lowered to (1000 - 0.5% = 5 sat): 995 sat, 990 sat, ...
  • PriceDownAllowedDrop: Percentage of buy price to which the function is allowed to drop sell price to. If 0, then not lower than buy price. Can be negative.


  • UseScalpingModeIf YES, and if the sell price is set less than 1%, it will use the scalping mode in which the bot can increase the price up to 2% depending on the ASK orderbook. Some sort of function to place an order under the wall in the main settings.

Stops:  

 

 

  • UseSignalStops: Only for Telegram signals. If a message with a signal contains stops and "autobuy settings -> advanced filter -> Use signals stops" is ON, then signals stops will be used. Otherwise, the strategy stops will be used.
  • UseStopLossUse stop loss or no, YES / NO.
  • StopLossEMA: Use the average price for the stop loss. If 0 then not used. 3,5,10 - averaged over the last 3, 5.10 ticks. Better to use a value here, so that when a single spike down happens and breaks the stop loss will avoid activating Panic Cell.
  • StopLossDelay: Delay activation of stop-losses and trailing, in seconds. * CR * * Delay is sometimes useful to MoonShot strategy when we caught not a single shot, but a temporary wall, that will disappear soon.
  • StopLoss: Stop loss price in % from actual buy price (don't forget to use negative value unless you need positive). This parameter and its derivatives are described in the basic configuration articles.
  • StopLossSpread: Spread for Stop Loss, % of current ASK price
  • AllowedDrop: Allowed level the bot can drop the price to after Stop Loss activation, % of buy price
  • UseSecondStop: Whether to use 2nd stop. The condition to use 2nd Stop: "If since TimeToSwitch2Stop seconds actual market Bid price is higher than PriceToSwitch (% of actual buy price), then switch to second Stop Loss". Important: If the main stop has been already activated, then the 2nd  stop won't be applied!
  • TimeToSwitch2Stop: Time in seconds (since the buy order was filled) to switch to 2nd stop
  • PriceToSwitch2Stop: Percentage of the price change from actual buy price to switch to Stop2. can be negative
  • SecondStopLoss: The value of the second stop (in %) of the purchase price.
  • UseStopLoss3: Use 3rd stop loss with the activation timer, YES / NO. Works similarly to the second stop, it gives you another level, where you can put a stop to breakeven. Important: If the main stop has been already activated, then the 3d stop won't be applied!
  • TimeToSwitchStop3: Time to activate 3d Stop, seconds
  • PriceToSwitchStop3: percentage of actual buy price to switch to Stop3
  • StopLoss3: Stop loss price in % of actual buy price (you may want to use positive If you expect high raise which might not happen)
  • AllowedDrop3: Allowed level the bot can drop price to on StopLoss3 activation, % of buy price. If the price drops further, upon reaching main Stop level the main AllowedDrop will be activated.
  • UseTrailing: Trailing use or not, YES / NO. Parameters trailing and its derivatives are described in the basic configuration articles.
  • TrailingPercent: Don't forget to use the negative value
  • Trailing EMA (default is 0 - turned off): The number of ticks, for which the average peak price. (0 - disabled) This parameter is to avoid triggering with a sudden single spike up (say instantly by 10%), trailing will not rise up immediately, but will wat a few more ticks, to avoid false triggering due to correction.
  • TrailingSpread: Spread for Stop Loss, % of current ASK price
  • UseTakeProfit: Use take profit. If yes. trailing will be activated only when the current price is higher than TakeProfit + Trailing
  • TakeProfit: Value in % to the purchase price.
  • UseBV_SV_Stop: Use Stop by BV to SV (Buy volume to Sell volume) ratio for the last N trades or last N seconds * CR *. Important: Activating this setting, the strategy will also check on the condition of BV ratio to SV at the entrance of a coin. If the condition is satisfied, autobuy is not made! (Otherwise, it would immediately trigger the BV\SV stop)
  • BV_SV_Kind: The method of calculating BV ratio to SV: for N transactions or N seconds.
  • BV_SV_TradesN: The number of transactions or seconds to calculate the BV ratio towards SV.
  • BV_SV_Ratio: The Ratio, If BV to SV is less then specified ratio, stop loss will be activated

Strategies description

 

Drops Detection

Also described on the "Autodetection" page. This method is giving a signal on the price drop for a specified percentage. Using this strategy you can configure different bot behavior depending on the daily trading volume on the coin, on the specific coins listed in the whitelist, and adjust for the different levels of buy price, sell price and stops.

111

Parameters: 

 

 

 

  • DropsMaxTime: Period to analyze, in seconds. Based on this parameter, all the parameters are estimated below. Example: set to 100 seconds, bot estimates price change in the last 100 seconds, ie, every new second(tick) is a new last 100 seconds interval.
  • DropsPriceMAInterval to calculate Moving Average. The bot is getting 2-seconds price ticks, so for example If you set this to 10 seconds, then every 5 prices will be averaged. The bot then takes maximum average price and compares it to the last price. If you do not want to average prices you can set this parameter to less than 2.
  • DropsLastPriceMATicks to calculate last price average value. If you set this to 1, then the last price will be taken as is. The more this value the less detection sensitivity for fast drops. If set to 0, then any sharp drop, bigger than the DropsPriceDelta value will trigger a detect.
  • DropsPriceDeltaPrice drop during the analysis period, percentage.
  • DropsPriceIsLowIf t YES, then in addition to the above-described conditions, the current market price has to be the hourly low.

 

 

 

Walls Detection

This method reveals coins with a large volume of buy orders for a long time (support). The example in Fig. below:

Configure parameters to specify a period to check how long the support was there; the bot checks it by 5-m candles. It recommended to set stoploss to a small level behind the wall, and to check manually news for the coin on twitter and so on. Usually, such walls followed by good news ensure that the coin is going to raise high.

Parameters: 

 

 

  • WallsMaxTime: Time to check the wall was there, seconds. The bot uses 5m candles to detect if the price had not dropped below the wall level.
  • WallsPriceDelta: Difference between minimum and maximum of 5m candles minimums. The objective is to determine how long the purchase wall is in place with a minimum of her movements.
  • WallBuyVolDeep: The distance between the price and wall inside the orderbook (in %). This parameter we specify within what distance from the current market price, we will check the presence of the volume of the wall.
  • WallBuyVolume: The volume of the tested walls in BTC (at least).
  • WallBuyVolToDailyVol: The volume of the wall is not less than the percentage of the volume of daily trades on the coin (in %). If the volume of the wall is 10BTC, and the daily trading volume is 100BTC, the strategy will work if the parameter is equal to 10/100 = 10% or less of it.
  • WallSellVolToBuy: Volume of the sell wall in % to buy wall. Its volume should not exceed X% of the volume of the buy wall.
  • WallSellVolDeep: How deep to look for sell orders in % to the current price

 

Example of the Walls strategy for Bittrex: copy the text below and paste it to the bot (Strategies form, the button "paste")

 

 

##Begin_Strategy
Active=-1
StrategyName=Walls Test
Comment=
SignalType=WallsDetection
ChannelName=
ChannelKey=
SilentNoCharts=NO
ReportToTelegram=YES
CoinsWhiteList=
CoinsBlackList=TRX,NBT
MinVolume=10
MaxVolume=500
AutoBuy=NO
MaxActiveOrders=10
AutoCancelBuy=180
BuyType=Buy
OrderSize=0.00000000
buyPrice=-3.00000000
SellPrice=4.00000000
UseStopLoss=NO
StopLoss=1.00000000
PanicSellSpread=0.10000000
AllowedDrop=0.00000000
UseTrailing=YES
TrailingPersent=-1.00000000
UseTakeProfit=YES
TakeProfit=2.50000000
DropsMaxTime=600
DropsPriceMA=1
DropsLastPriceMA=1
DropsPriceDelta=1.00000000
DropsPriceIsLow=NO
WallsMaxTime=3600
WallsPriceDelta=4.00000000
WallBuyVolDeep=2.00000000
WallBuyVolume=10
WallBuyVolToDailyVol=10.00000000
WallSellVolToBuy=75.00000000
WallSellVolDeep=15.00000000
##End_Strategy#

 

 

Pumps Detection (Binance ONLY!)

Fast detecting of executed buy orders (market history). Example: (false detection by the way, look warning below)

The thin green candle is a pack of buy orders executed in a second. (Actually, that was 1 buyer which bought plenty of MANA for 11 BTC).

Parameters: 

 

 

 

  • PumpPriceInterval: Interval to measure price raise, choose from: 60s, 30s, 15s, 4s
  • PumpPriceRaise: Price raised during last PumpPriceInterval seconds, %
  • PumpBuysPerSec: The number of purchases per second (green crosses on the graph). EMA (Executed buy orders)
  • PumpVolPerSec: Purchase volume per second, in BTC (the lower the value, the greater the likelihood of false detects)(Buy volume), in BTC
  • PumpBuyersPerSecMin: The number of customers in the given interval (at least). For different scenarios, this value might be different. Some pumps should be detected, making sure several people are already in or vice versa, you can detect only actions form a single person. (if 0 - then ignored)
  • PumpBuyersPerSecMax: Buyers count in the specified interval, not more then (If 0, then ignored)
  • PumpVolEMA: The interval for calculating the volume of purchases EMA (default is 2 seconds, may be a fraction), i.e. the averaging interval of volume purchases.
  • PumpBuyersInterval: Interval to calculate Buyers count (1 second by default)
  • PumpMoveTimer: Time to move the sell order (If 0 then never). The order is moved only once.
  • PumpMovePercent: Percentage of [distance from peak price to buy price], to which move the sell order. Example: PumpMoveTimer=5sec, PumpMovePersent=50%. The bot has detected a pump, bought a coin at 1000 sat, in next 5 seconds the price has further raised to 1200 sat. Initial sell was placed at 1300 sat. This case the bot will replace the sell to (50% from (1200 - 1000) = 1100 sat (half of the peak price in the other words).

 

Currently, only 1 PumpsDetection strategy can be active despite you can configure many of them.

It's recommended to use Pump Detection only for known in advance pumps when you know exact pump time. Turn it ON 15 seconds before the pump announcement and turn OFF immediately after.

WARNING! There is a high risk of false detection! Despite you can configure many parameters to avoid them, it is still possible that some market activity could be taken as a pump. look the example of MANA above.

Recommended parameters values for binance pump detection on the example of Mega Pump Group actual pumps (https://t.me/mega_pump_group)

PumpPriceRaise:=7; - 7% Price increase for the last 30 seconds. The more this value, the less chance of false detection, on the other hand, you might want to detect a pump as soon as possible when the price is not very high yet.
PumpBuysPerSec:=20;
PumpVolPerSec:=0.8; The volume added by the very first buyers. (usually admins and privileged members of the discord group). The more this value, the less chance of false detection
PumpBuyersPerSecMax:=4; The goal is to detect the pump at the very beginning when no more than 2-4 ppl already bought the coin.
PumpBuyersPerSecMin:=2; Reject a case when there is only 1 buyer occasionally bought some coin not related to the pump

 

MoonShot (buy on spikes):

The strategy puts buy orders and automatically replace them in order to catch spikes. (look picture below) Initially, the order is placed at a price below the market price on MShotPrice (in the example below 3%). With a further price drop to MShotPriceMin (in the example of 2%), the order is replaced on MShotPrice from the current market price. If the price increases, the order moves up. Thus, the order price is always in the range from MShotPrice to MShotPriceMin.

 

 

Using the delay (MShotReplaceDelay) you can slow order's replacing on downtrend; this is riskier but gives more actual trades. If MShotReplaceDelay=0 then the order will catch only spikes like in the picture above; this is less risky but happens less often.

Use delay on price raise (MShotRaiseWait) to avoid moving order up on fast pumps (which is very risky). Also, protect from the catch on dumps by using strategy daily volume filters (flash pumps could happen only on coins with low daily vol.)

With a relatively rapid drop in prices, it makes sense to use the MShotReplaceDelay delay to swap the buy order; In this case, the probability of a transaction increases, but the risk also increases.

Important:

  1. At partial execution greater than min. lot (0.001 BTC) the order will be immediately canceled and the sell will be set up regardless of the settings for partial cancellation (since there is no point in waiting for full execution after spike has happened)
  2. At the moment, the internal limit for max. active orders for the MoonShot is 10. In addition, MShotPriceMin should be greater than 0.5 and MShotPrice should be greater then MShotPriceMin+0.5. The restriction is due to the exchange's API limit.
  3. Charts for this strategy are not opened automatically to reduce API requests. You can open them manually through the list of orders.

Parameters:

 

 

 

  • MShotPrice: Price in % to current market to keep buy order at (always a positive value, the order is below market price at this value).
  • MShotPriceMin: Min, price in % to current market price, after which the order will be replaced to MShotPrice again. So that the order is always between MShotPrice and MShotPriceMin.
  • MShotMinusSatoshi: If YES, then buy orders will be placed not closer then 2 satoshi from current ASK price. Useful for coins with price 100sat or less, which have price step more than 1%.
  • MShotAdd3hDelta: For each percent of the 3-hour Delta add X% to the value of MShotPrice
  • MShotAddHourlyDelta: For each percent of hourly price delta add MShotAddHourlyDelta percent to price range [MShotPrice .. MShotPriceMin]. Example: If the coin was raised\fall to 10% in last hour, and MShotAddHourlyDelta=0.1, then 1% will be added to both parameters [MShotPrice .. MShotPriceMin]. The more the price deviation the more the distance to your order.
  • MShotAdd15minDeltaFor each percent of 15-minute Delta percentage add X% to the value of MShotPrice.
  • MShotAddMarketDeltaFor each percent of the hourly Market Delta add X% to the value of MShotPrice.
  • MShotAddBTCDeltaFor each percent of the hourly BTC Delta add X% to the value of MShotPrice.
  • MShotSellAtLastPrice: After Buy has happened put a sell order at a price equal to the maximum price of the strategy (the sell price) and the last price (4-sec-old, that was, before the spike happened) ASK price, taking into account the MShotSellPriceAdjust (see. Below).
  • MShotSellPriceAdjust: If the previous option is YES, then substitutes MShotSellPriceAdjust percent from the previous market price. Example: at the moment of a spike market price was 1000 sat. MShotSellPriceAdjust = 1. Then you order will be placed at higher of 2 prices: strategy settings sell price and 1000sat - 1% = 990sat. Explanation: after a spike, the price often goes back to where it was just before the spike, so its good idea to sell a bit lower.
  • MShotReplaceDelay: Delay to replace the buy upon price drops to MShotPriceMin.
  • MShotRaiseWait: Delay to replace the buy upon price raise.
  • MShotSortBy: Sorting of coins that the bot selects for the operation. Based on the 1-, 2-, 3-hourly deltas values or based on the hourly to daily volume ratio. Accordingly, the coin with the highest value will have the highest priority.
  • MShotUsePrice: Can be "ASK" (default) or "BID". Determines what price (ASK or BID) should be used to calculate MoonShot price corridor

 

 

Volumes Lite (Volumes detection)

The detector uses 4 intervals to check that the average prices and volumes grew from previous to next interval. Growth is set in percent. If you set 0 percent, then the condition turns into "price (volume) did not fall." If you specify -1000 on any interval, then the check on this interval is disabled.

Picture to illustrate: P - Prices, V - Volumes

 

Parameters: 

 

 

 

  • VLiteT0: The interval in seconds.
  • VLiteT1: The interval in seconds.
  • VLiteT2: The interval in seconds.
  • VLiteT3: The interval in seconds.
  • VLiteP1: The price increase from the previous to the subsequent interval of not less than (in %).
  • VLiteP2: The price increase from the previous to the subsequent interval of not less than (in %).
  • VLiteP3: The price increase from the previous to the subsequent interval of not less than (in %).
  • VLiteMaxP: Each increase by no more than (in%).
  • VLitePDelta1: Comparison of rising prices between themselves (in %).
  • VLitePDelta2: Comparison of rising prices between themselves (in %).
  • VLiteDelta0: Price change at the zero interval. (The difference between the max. And min. Price within a range of zero percent).
  • VLiteMaxSpike: The maximum difference between the max. price and average price within the specified interval, no more than (in %). It is necessary to eliminate mini-pumps.
  • VLiteV1: Growth from the previous to the subsequent interval (%).
  • VLiteV2: Growth from the previous to the subsequent interval (%).
  • VLiteV3: Growth from the previous to the subsequent interval (%).
  • VLiteWeightedAvg: The method of calculating average prices: if YES, it is considered to be the weighted average by volume in the interval, if NO, the average of the count of transactions in the interval.
  • VLiteReducedVolumes: If YES, then count the amount per minute. If NO then the full amount of the interval.(in case of long intervals) 

 

 

Volumes (currently in testing)

The essence of the method is in the detection of volumes. Two intervals are set: "short" and "long" and the volumes are calculated at both intervals. The volume on a long interval is considered reduced to a minute, i.e. volume per minute. For example, if the long interval is set to 300 seconds (5 minutes), the volume in 5 minutes was 10 BTC, then the volume per minute would be 2 BTC. In a short interval, the volume is taken as is. 
All ratios of volumes are given as numbers "how many times one is bigger than the other", not percentages!
When the conditions for volumes are triggered, the orderbooks are checked as the second step:

  • filling the glass with BIDs (green) on 2 levels.
  • Min level prices at a short interval.
  • Level max. prices at a short interval.
  • Filling the BIDs orderbook to a predetermined depth from the current ASK price.
  • Comparing the volume in the BIDs(green) orderbook at a given depth with the volume of ASKs (red) at a given height.
  • Determining the dynamics of filling the green orderbook from the moment of detection at the 1st step to the moment of placing the order (the bot waits for checking no more than 20 sec if the conditions did not work, no order is placed)

Parameters:

 

 

 

  • VolShortInterval: The short interval in seconds.
  • VolShortPriseRaise: Price increase over the short interval (it is possible to set 0).
  • VolLongInterval: Long interval in seconds.
  • VolBvShortToLong: The ratio of the volume of purchases (BV) on the Short interval to the total volume on the Long period (how many times bigger than the other one).
  • VolBvLongToHourlyMin: The ratio of the volume on the long interval to the hourly volume, at least.
  • VolBvLongToHourlyMax: The ratio of the volume on the long interval to the hourly volume, not more.
  • VolBvLongToDailyMin: The ratio of the volume on the long interval to the daily volume, at least.
  • VolBvLongToDailyMax: The ratio of the volume on the long interval to the daily volume, not more.
  • VolBvToSvShort: BV to SV ratio on the short interval.
  • VolBvShort: BV on the short interval (in BTC).
  • VolBuyersShort: The number of buyers on the short interval is not less than. (single flash spikes can be filtered out by this line)
  • VolSvLong: BV on the long interval is not more than (in BTC).
  • VolTakeLongMaxP: Whether to take MaxPrice rates at the long interval (useful in the case of a false rebound after a drop).
  • VolAtMinP: The volume in the green orderbook at min. prices for a short interval (in BTC).
  • VolAtMaxP: The volume in the green orderbook at max. prices for a short interval (in BTC).
  • VolDeltaAtMaxP: Dynamics(Delta) in the green orderbook at max. prices on the short interval after the detection until placing the order (bot waiting for not more than 20 seconds to check if the condition has not been met, the order is not placed), (in BTC).
  • VolDeltaAtMinP: Dynamics(Delta) in the green orderbook at min. prices for the short interval.
  • volBidsDeep: The depth at which to watch green orderbook, a percentage of current ASK.
  • volBids: Volume in the green orderbook at the specified depth (in BTC).
  • volAsksDeep: The height at which to watch the red orderbook, the percentage of the current ASK.
  • volBidsToAsks: The ratio BIDs ASKs volume to volume at the specified depths, not less than (in BTC).

Waves (currently in testing)

The idea is the same as Volumes Lite: The detect uses 4 intervals to check prices and volumes deviation from previous to next interval. Unlike VolumesLite, negative parameter means that the value has dropped, positive means the value has raised, zero parameters will be ignored.

Parameters: P - Prices, V - Volumes  

 

 

 

  • WavesT0: The interval in seconds.
  • WavesT1: The interval in seconds.
  • WavesT2: The interval in seconds.
  • WavesT3: The interval in seconds.
  • WavesP1: Price change from the previous to the next interval (in %). If you set a positive value, growth is checked. If you specify a negative value, verified drop. If zero, the parameter is ignored.
  • WavesP2: Price change from the previous to the next interval (in %). If you set a positive value, growth is checked. If you specify a negative value, verified drop. If zero, the parameter is ignored.
  • WavesP3: Price change from the previous to the next interval (in %). If you set a positive value, growth is checked. If you specify a negative value, verified drop. If zero, the parameter is ignored.
  • WavesDelta0: Price change at the zero interval (T0). (The difference between the max. and min. price within the T0 interval percent). If you set a positive value, growth is checked (measured delta is bigger than the one specified). If a negative value is set, then no growth is verified (delta measured is not greater than the predetermined. For example, "-1" means that the fluctuation was not more than 1%). If zero, the parameter is ignored.
  • WavesMaxSpike: The maximum difference between the max. price range and on average (not more than, in%). It is necessary to eliminate lumbago.
  • WavesV1: Growth of volumes from a previous to the subsequent interval. If you set a positive value, growth is checked. If you specify a negative value, verified drop. If zero, the parameter is ignored.
  • WavesV2: Growth of volumes from a previous to the subsequent interval. If you set a positive value, growth is checked. If you specify a negative value, verified drop. If zero, the parameter is ignored.
  • WavesV3: Growth of volumes from a previous to the subsequent interval. If you set a positive value, growth is checked. If you specify a negative value, verified drop. If zero, the parameter is ignored.
  • WavesWeightedAvg: The method of calculating average prices: if YES, it is considered to be the weighted average by volume in the interval, if NO, the average of the count of transactions in the interval.
  • WavesReducedVolumes: If YES, then count the volume per minute. If NO then the full amount on the interval.

 

Delta (Price\Volumes deviation)

 

Logic: We take a long interval of the last 100 seconds (as an idea, all parameters are adjustable) and a short window of 10 seconds. On each tick we run this 10-second window through the 100-second interval and calculate the minimum and maximum price averaged over the window. We get DeltaPrice in the last 100 seconds - the degree of movement of the coin. 
We consider the total volume for the last 100 seconds and the previous 100 seconds and compare how much% the volume has grown. 
We look at the last 10 seconds and count the number of deals and the change in the average price in the last 10 seconds compared to the average price in the last 100 seconds.

Parameters: 

 

 

 

  • DeltaInterval: Interval analysis of price and volume changes (long).
  • DeltaShortInterval: Interval of averaging prices and analysis of the dynamics of transactions (short).
  • DeltaPrice: Price change (delta) in the long interval (at least). It is considered as a percentage deviation between min. price and max. price based on prices averaging over short intervals.
  • DeltaVol: The total volume (BV + SV) on the long interval (at least, in BTC).
  • DeltaVolRaise: The total volume on the long interval is greater than the volume at the same previous interval for the given percentage (at least).
  • DeltaVolSec: The volume per second, averaged and thus delayed. The last seconds before the detect have more weight, single pump spikes are avoided with the averaging. If you put 0, it is ignored.
  • DeltaBuyers: The number of transactions (buyers + sellers) on the last short-range.
  • DeltaLastPrice: The average price on the last short interval increased or decreased by a predetermined percentage of the average price for a long interval. If the value is positive, then growth checked. If the value is negative, drop is checked. When 0, the parameter is ignored.

 

 

Moonstrike

The task of the strategy is to detect a spike down(similar to what Moonshot is waiting for) and place an order as quickly as possible in order to have time to buy something. Estimated mechanics - the spike itself in most of the cases will not be caught but it triggers stop loss orders of other market players as well as other stop-limit orders, therefore (and also because of the delay in the execution) the idea does NOT ALWAYS work. Following trades will not happen every time

It makes sense to run on a VPS in Japan, it also makes sense to increase the priority of the MoonBot application (in new versions, when started, the admin priority “above average” is set automatically).

 https://lh6.googleusercontent.com/-RknrJ5kfcQ_NJduIuXNyBW03hqjloA-f438lb_7SJ_VxjHaoMMt0mn4PYYxt_v3cawoefmkqjUiN-iV0nrRuPKOT95Xub2UIfNa4hjb8HB8v05W9WvYo3BIWD_tK2yM4sh-nwtb

Description of parameters:

 

 

MStrikeDepth: Depth of the spike as a percentage (10% by default, you can set 0.1% or higher). How is measured:
1. LastBidEMA (4 ticks) is considered using the next Formula: If on the next-to-last tick, the bid is less than LastBidEMA, then LastBidEMA is taken to be the same to the bid on the last-to-last tick (i.e., if the price falls, LastBidEMA will be equal to the bid in the orderbook 2 seconds ago) If on the next-to-last tick, the bid is larger than LastBidEMA, then the normal EMA (4) is considered Thus, when the price falls, the lastbid will always be minimal, with growth it will grow smoothly
2. Read the depth from LastBidEMA to the bottom of the spike at the time of the detection.
Note1: catches also “up-and-down” situation (for an exception, you should probably consider the EMA from bids, on the other hand, it will lead to catching slow drops like dropsdetect, but this is not interesting)
Note2: trades from the exchange arrive in turn, i.e. Spike begins to draw from top to bottom not instantly. Because of this, at some point (when the spike has become lower than MStrikeDepth, a detection will occur, in the meantime, the trades can go even lower. To override, see below MStrikeBuyDelay)

MStrikeVolume: The volume of spike at the time of detection is not less than.

MStrikeLastBidEMA: still in development.

MStrikeAddHourlyDelta: Similar to Moonshots, add% to MStrikeDepth for each percent of the hourly delta.

MStrikeAdd15minDelta: Similarly to above.

MStrikeAddMarketDelta: Similarly to above.

MStrikeAddBTCDelta: Similarly to above.

MStrikeBuyDelay: Delay in placing buy orders in milliseconds. It seems to be contrary to the idea of the strategy, but in a situation where trades after detection continue to draw the spike even lower, it can help. A delay is inserted between the detect and placing an order, during which the spike measurement continues.

Important:

  • The general parameters SellPrice and BuyPrice are REMOVED from this strategy! Instead, the parameters MStrikeBuyLevel and MStrikeSellLevel are introduced.
  • MStrikeBuyLevel - If 0, then we try to buy at the very bottom, if the value is 50.00 we try to buy 50% of the detected Strike depth, i.e. in the middle of it. Please note, that following trades from the same spike may arrive AFTER the detect has happened, simply because there is a delay between your Moonbot and the exchange server, that is sending you trades one by one, you need to make sure your strategy setting do not detect too early, otherwise, it is considered you are doing it intentionally and accept the risk.
  • MStrikeBuyRelative - If YES, it is counted as described in MStrikeBuyLevel. If NO, then the purchase order will be set at the specified percentage of the price at the moment of the detect. Example: MStrikeBuyRelative = YES, MStrikeBuyLevel = 5 - put a buy order 5% higher than the lowest point of the spike at the moment of the detect. MStrikeBuyRelative = NO, MStrikeBuyLevel = -5 - put a buy order at -5% from the price BEFORE the spike.
  • MStrikeSellLevel - percentage of the depth of the spike (and not the purchase price). For example, a spike 10% deep, SellPrice = 80% - in this case we sell 80% from 10% = +8% above the lowest detected price of the spike
  • Order size must be specified, indication 0 will not take ordersize from the slider off the main screen

The log messages consist of:

  • LastBidEMA value according to the formula above;
  • Min detected price of the spike at the time of placing the order
  • Spike depth in percent
  • The volume of the spike
  • Buy price
  • Pre-calculated selling price

For example:

04:13:00.097  BCD: MoonStrike LastBID: 0.00029700  min.Price: 0.00029500 Depth: 0.7% StrikeVol: 0.295 BTC   BuyPrice: 0.00029500 sell +0.7% SellPrice: 0.00029699

NewListing (Autobuy newly listed coins)

The strategy is available only If you tick the "I agree to send the results of my transactions to the server" ("Settings - Login") on all your bots and keep the check mark on for at least a week before using the strategy.

Using of the strategy is simple: create one (or several if you have the MultiOrders addon) strategy. Specify fixed price (in base currency) if you have assumptions about listing price; or specify relative price in percentage of actual listing price (the "BuyPriceAbsolute" parameter).

As soon as trades on new coin starts, the bot will place buy orders.

 

 

newlisting1

 

 

 

Combo

Combo is a pair of 2 strategies("Start" + "End"), which works together: after the first strategy "Start" has signaled, the bot starts to wait for the second strategy "End" for the specified time. If the "End" strategy has signaled during the waiting period, the bot will buy the coin and use Combo strategy settings to trade it. Otherwise, the bot waits for the "Start" strategy again.

Note: autobuy should be turned off in both "Start" and "End" strategy!

All 3 strategies must be active.

Parameters:

  • ComboStart: The first strategy
  • ComboEnd: The second strategy
  • ComboDelayMin: Time between 1st and 2nd strategy signals, not less than, seconds
  • ComboDelayMax: Time between 1st and 2nd strategy signals, not more than, seconds

 

 

Strategies for manual trading

For more flexible settings for manual trading, there is a special strategy type "Manual". To start using it, create one or more strategies of this type, don't mark them with checkboxes and don't start them. Unlike other strategies, "Manual" is turned by using the main menu, "Use Manual strategy" (look picture below). If you have more then 1 manual strategy, you may switch them by clicking on the caption with strategy name.

 

 

Note: when using manual strategy, its filters are applied when you click to set buy order; If you don't need filters, put in the strategy loose high values: for coin's Delta 0..1000, for BTC and markets delta -100..+100