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.

Test strategies pack you may download 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 coping.

The form with strategies settings:

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 empty key mathing 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 independent of the checkbox " "Settings -> Autobuy -> Autobuy  from Terlegram" (you control a strategy autobuy option with the strategy itself)
  • Telegram strategies work independent 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 Terlegram" will manage whether or not the bot should open markets chart for the coin and buy this coin

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:

  1. 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)
    • AcceptCommands (Telegram strategies only):  Should the strategy accept Trust Management commands 
    • SilentNoCharts: Don't open market charts on signal      
    • ReportToTelegram: Send detected signal to your remote control channel (not orders report but the signal itself like "#bnb drop detected") 
    • Alarm settings on signal detection:
      • 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
  2. 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
    • 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)        
    • Delta2_Min: Additional delta, not less then        
    • Delta2_Max: Additional delta, not greater then                 
    • Delta_BTC_Min: Bitcoin rate delta (%), not less then. Calculated as deviation of last price from last hour average. can be negative.      
    • Delta_BTC_Max:  Bitcoin rate delta (%), not greater then  
    • Delta_Market_Min: Average Delta of all markets (%), not less then. Calculated as deviation of last price from last hour average, averaged over all markets. can be negative.    
    • Delta_Market_Max:  Average Delta of all markets (%), not greater then.
    • NextDetectPenalty: Penalty for repeat detections by the same strategy, seconds (min. time between 2 detections in a row)
    • DeltaSwitch: If a strategy starts 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 sence 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!  

  3. 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   
    • AutoCancelLowerBuy: (Telegram only) Time, seconds to auto cancel buy order in case lower buy price was used.   
    • 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, %  
  4. Sell Order:
    • Function "Lower Sell price on timer":
      PriceDownTimer:  Time to turn the function, seconds. If 0, then never
      PriceDownDelay:  Delay between steps, seconds
      PriceDownRelative:  If NO then next parameter is a percentage of absolute sell price. If YES, then a percentage of 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. This case each 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. If 0, then not lower then buy price. Can be negative.
  5. 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.
    • UseStopLoss:       
    • StopLossDelay: Delay in seconds to activate Stop Loss and Trailing Stop 
    • StopLoss: stop loss price in % of actual buy price (dont forget to use negative value unless you need positive)
    • StopLossSpread: Spread for Stop Loss, % of current ASK price
    • AllowedDrop: Allowed level the bot can drop price to on Stop Loss activation, % of buy price
    • 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
    • SecondStopLoss: (Only for Telegram signals) Stop value, % to actual buy price
    • UseStopLoss3: Use 3d StopLoss with timer activation. Important: If the main stop has been already activated, then the 3d stop wont be applied!
    • TimeToSwitchStop3: Time to activate 3d Stop, seconds
    • 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  
    • Trailing EMA (default is 0 - turned off): ticks count to average peak price
    • 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    
    • UseBV_SV_Stop: Use Stop by BV to SV (Buy vol to Sell vol) ratio for the last N trades or last N seconds
    • BV_SV_Kind: Calculate the ratio for N trades or N seconds
    • BV_SV_TradesN: the N itself
    • BV_SV_Ratio: The Ratio, If BV to SV is less then specified ratio, stop loss will be activated
  6. Drops detection:
    • DropsMaxTime:  all parameters are the same as for Drops Detection in main settings      
    • DropsPriceMA:    
    • DropsLastPriceMA:    
    • DropsPriceDelta:   
    • DropsPriceIsLow:    
  7. 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  
  8. Pump detection:
    • PumpPriceInterval: Interval to measure prise raise, choose from: 60s, 30s, 15s, 4s
    • PumpPriceRaise: Prise raised during last PumpPriceInterval 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) 
    • PumpMoveTimer:  Time to move the sell order (If 0 then never). Order is moved only once.
    • PumpMovePersent:  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).
  9. 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.
    • 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 then 1%.
    • 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.
    • MShotRaiseWait: Delay to replace the buy upon price raise.
    • MShotSortBy: sort coins to peek by 1-,2-,3-hours price delta or Daily Vol. to Hourly Vol. ratio.
    • MShotUsePrice: Can be "ASK" (default) or "BID". Determines what price (ASK or BID) should be used to calculate MoonShot price corridor

 

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") 

 ##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 ececuted buy orders (market history). Example: (false detection by the way, look warning below)

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. 

Recomended 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 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:

  1. 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)
  2. 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.
  3. 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)

 

Delta (Price\Volumes deviation)

 

Parameters:

  • DeltaInterval: Interval for price and volumes analyzing, seconds (long interval 300 or more sec.)
  • DeltaShortInterval: Interval for calculating moving avarage, seconds (short interval, 2..10 seconds.)
  • DeltaPrice: Price change on long intervak (delta, %), greater then. 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.
  • DeltaDetectPenalty: Penalty for repeat detection, seconds.

 

Combo

Combo is a pair of 2 strategies("Start" + "End"), which worls together: after the first strategy "Start" has signalled, the bot starts wait for the second strategy "End" for the specified time. If the "End" strategy has signalled during wait period, the bot will buy the coin and use Combo strategy setings 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 then, seconds
  • ComboDelayMax:  Time between 1st and 2nd strategy signals, not more then, seconds

 

 

Strategies for manual trading

For more flexible settings for manual trading there is special strategy type "Manual". To start use 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 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 wittingly high values: for coin's delta 0..1000, for BTC and markets delta -100..+100