Strategies

The strategies are designed to separately fine-tune the parameters for different kind of 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 on them only if you are sure you are doing.

The form with strategies settings:

The strategies begin to work after you tick the checkboxes for needed ones and click "Start Selected". 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:

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 empty key mathing the channel will be used

If there are NO strategies matching the channel, then general settings will be used.

Creation and aditing:

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:

General:

StrategyName: The name (each strategy must has unique name)

Comment: The comment

SignalType: Type of the signal

ChannelName: Telegram channel name

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)

SoundAlert: Play sound alarm and show a button with market name under the charts workspace for fast chart access (YES\NO)

SoundKind: choose from 4 predefined sounds

KeepAlert: how long to keep the market button, seconds

Filters:

CoinsWhiteList: the coins white list. If empty, not used

CoinsBlackList: the coins black list. If empty, not used

MinVolume: min. daily volume

MaxVolume: max. daily volume

MinHourlyVolume: min. hourly volume

MaxHourlyVolume: max. hourly volume

PenaltyTime: period in seconds. During this period 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 cancelled order manually.

Delta_3h_Min: Min. delta (%) for last 3 hours

Delta_3h_Max: Max. delta (%) for last 3 hours

Buy order:

AutoBuy: Should the bot autobuy detected coin

MaxActiveOrders: Max active orders for this particular strategy. If exceded, autobuy will be turned off until some orders filled\cancelled

AutoCancelBuy: time, seconds to auto cancel buy order. If 0 then do not cancel

BuyType: currently only Buy

OrderSize: buy order size, BTC

buyPrice: buy price, %

Use30SecOldASK: If YES, then the bot will use [30-sec old ASK price + buyPrice] for buy order, If NO, then [current ASK price + buyPrice]

TlgUseBuyDipWords: (Only for Telegram signals) If the signal contains stop-words to buy at lower price (i.e. "buy dip", "when dump") and TlgUseBuyDipWords = YES, then lower price will be used (look below).

TlgBuyDipPrice: (Only for Telegram signals) In the case above this price will be used (% to current market price. use negative value)

SellPrice: sell price, %

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.

UseSecondStop: (Only for Telegram signals) Whether to use 2nd stop. The condition to use 2nd Stop: "If since TimeToSwitch2Stop seconds the market price is higher then actual buy price, then switch to second Stop Loss".

TimeToSwitch2Stop: (Only for Telegram signals) time in seconds to switch to 2nd stop

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: use Trailing Stop

TrailingPersent: Don't forget to use negative value

TrailingSpread: Spread for Stop Loss, % of current ASK price

UseTakeProfit: Use take profit. If yes. trailing will be activated only when current price is higher then TakeProfit + Trailing

TakeProfit: value in % to buy price

Drops detection:

DropsMaxTime: all parameters are the same as for Drops Detection in main settings

DropsPriceMA:

DropsLastPriceMA:

DropsPriceDelta:

DropsPriceIsLow:

Walls detection:

WallsMaxTime: Time to check the wall was there, seconds. The bot use 5m candles to detect if the price had not dropped below the wall level.

WallsPriceDelta: difference between minimum and maximum of 5m candles minimums. Usually use 2-4%

WallBuyVolDeep: How deep is the buy wall. It should be close to current price. so use about 2-3%

WallBuyVolume: Voilume in BTC of the wall

WallBuyVolToDailyVol: Volume in % of daily volume of the wall

WallSellVolToBuy: Volume of the sell wall in % to buy wall. Use like 30-50%

WallSellVolDeep: how deep to look for sell orders in % to current price

Pump detection:

PumpPriceRaise: Prise raise last 30 seconds, %

PumpBuysPerSec: EMA(Excecuted buy orders)

PumpVolPerSec: EMA(Buy volume), BTC

PumpBuyersPerSecMin: Buyers count in specified interval, not less then

PumpBuyersPerSecMax: Buyers count in in specified interval, not more then (If 0, then ignored)

PumpVolEMA: Interval to calculate volume EMA (2 seconds by default).

PumpBuyersInterval: Interval to calculate Buyers count (1 second by default)

MoonShot (buy on spikes (fast dips)):

MShotPrice: Price in % to current market to keep buy order at (always positive value, order is below market price at this value).

MShotPriceMin: Min, price in % to current market, after which the order will be replaced to MShotPrice again. So that the order is always between MShotPrice and MShotPriceMin.

MShotAddHourlyDelta: For each persent of hourly price delta add MShotAddHourlyDelta persents 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 you order.

MShotSellAtLastPrice: After order is filled, set sell at max from strategy sell price and previous market price (4sec old).

MShotSellPriceAdjust: If the previous option is YES, then sibstitutes MShotSellPriceAdjust persents 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 is often goes back to where is 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.

Strategies description

Drops Detection

Described on the "Autodetection" page. This method is giving a signal on 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 them different levels of buy price, sell price and stops.

Walls Detection

The 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.

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

Pumps Detection (Binance ONLY!)

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

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.

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 proveledged 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 then 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 more risky but gives more actual trades. If MShotReplaceDelay=0 then order will catch only spikes like in picture above; this is less risky but happens less often.

Use delay on prise raise (MShotRaiseWait) to avoid moving order up on fast pumps (which is very risky). Also protect from 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:

At partial execution greater than min. lot (0.001 BTC) the order will be immediately cancelled 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)

At the moment, the internal limit for max. active orders for the MoonShot is 10. In addition, MShotPriceMin should be greater then 0.5 and MShotPrice should be greater then MShotPriceMin+0.5. The restriction is due to the echange's API limit.

Charts for this strategy are not opened automatically to reduce API requests. You can open them manually through the list of orders.

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 .. VLiteT3: Intervals, seconds

VLiteP1 .. VLiteP3 : How much the avg. price raised from prev. interval to next one (%)

VLiteMaxP: Price raised not more then (%) (helps to reject flash pumps-dumps detections, we are looking for smooth natural growth)

VLitePDelta1, VLitePDelta2: Compare price rasie persantage between each other, %. (Example: P1=1%, P2=2%, P3=1%. this means that on the last interval growth was less then on prev.; in this case PDelta1=100% (1% to 2%), PDelta2=-100% (2% to 1%)).

VLiteDelta0: Price change in T0 interval (difference between max. and min. prices within the interval), %

VLiteMaxSpike: Max. price to avg. price, not more then (%). Reject spikes.

VLiteV1 .. VLiteV3 : How much the avg. Volume raised from prev. interval to next one (%)

VLiteDetectPenalty: Penalty for new detection after successful one, seconds.

VLiteWeightedAvg: If YES then calculate weighted price average else trades count average (sum of prices / sum of trades)

Waves (currently in testing)

The idea is the same as Volumes Lite: The detector 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 parameter will be ignored.

Parameters: P - Prices, V - Volumes

WavesT0 .. WavesT3: Intervals, seconds

WavesP1 .. WavesP3 : How much the avg. price changed from prev. interval to next one (%). Negative parameter means that the value has dropped, positive means the value has raised, zero parameter will be ignored.

WavesDelta0: Price change in T0 interval (difference between max. and min. prices within the interval), %. Negative parameter means that the value has dropped, positive means the value has raised, zero parameter will be ignored.

WavesMaxSpike: Max. price to avg. price, not more then (%). Reject spikes.

WavesV1 .. WavesV3 : How much the avg. Volume changed from prev. interval to next one (%). Negative parameter means that the value has dropped, positive means the value has raised, zero parameter will be ignored.

WavesDetectPenalty: Penalty for new detection after successful one, seconds.

WavesWeightedAvg: If YES then calculate weighted price average else trades count average (sum of prices / sum of trades)

DeltaPrice: Price change on long intervak (delta, %). Calculated as difference between max. and min. point on moving average curve

DeltaVol: Total volume (buy + sell) on long interval greater then (BTC)

DeltaVolRaise: Total volume on long interval has raised more then the same volume on the previous long interval (%, 0% means the volume is not less then prev. volume)

DeltaVolSec: Volume in last seconds calculated with spikes removed. Use to reject detecting of spike. If 0 then ignored. (we may adjust the calculating method in future, its experimental parameter)

DeltaBuyers: Buyers count on short interval greater then

DeltaLastPrice: Last Price (on short interval) changed in compare to average price (on long interval). If the value is positive, we check If price has raised. If negative, check If price has dropped. If 0, the parameter is ignored.