STRATEGIES
Application
The 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.
To get acquainted with a prefabricated file with test strategies for Binance's Spot market can be downloaded here: data.zip
Unpack the data folder from downloaded zip to bot’s folder. ATTENTION! This operation must be performed with the bot turned off and it completely remove all previous strategies you had filled. Make a backup copy of the data folder before copying.
Important! Strategies are meant for fine tuning the bot's interaction with signals. This section covers advanced settings. All highlighted parameters can be modified to any value within any range. The bot does not check the "relevance" of the set parameters. Enable strategies only if you are sure you know what you are doing. You can always test your strategies in the "Demo" mode, but they will not perform as precise as they would if using a real account.
We do not offer any support for tuning your strategies. If you believe your strategy is not performing the way you were expecting it to, you should check it on your own and do your own research. Open the Settings, go to Special and enable Extended Debug Mode, then open any trading chart, at the top you will see a couple of rows with all the information about the coin you are viewing, you can there see the actual values for your strategies — this is the only viable way of checking what is actually happening. Nobody can tell you more by just viewing your screenshot — it is a question of mathematics and actual values.
To check why a strategy is not getting executed based on the set filters, enable the "Display the strategies that do not meet any of the filter criteria" (can be enabled through the Menu or in the Strategy window). Open any trading pair chart and you will notice a list of all strategies highlighting the reason why a certain strategy did not execut on the specified trading pair at the specified moment in time
The strategy settings 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. Selection of All strategies in the strategy editor by CTRL-A. ATTENTION: Before editing your strategies, make sure you stop them first if they were started!
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.
Automatic trading server setting recommendations (updated 26.10.2020)
1) Menu – System Settings – check VDS box. We highly recommend you do so, this option helps save server resources. Less RAM and CPU power is wasted on storing and sorting graphs and more resources are dedicated to the proper functioning of algorithms
2) Turn Off Windows auto-update and Defender! Otherwise the system may reboot and leave open orders on the exchange.
3) Don't forget to turn off the "automatic switch to summer time" on your VPS, or, even better, set the time zone to "(UTC) time format UTC" .
4) When using MoonShots with a small price interval (up to 0.5% difference between MshotPriceMin and MshotPrice) we recommend using the MShotAddDistance = 50 parameter as well as MShotUsePrice = Trade. In this case, the prices for replacing an order will be the one used in the last transaction and the bot will replace the orders considerably faster. This is especially useful when trading futures.
5) When using strategies aimed at high frequency trading (MoonShots with short time intervals, strikes, Drops with small delta) it is advised to use positive values for the HFT parameter (an integer number).
Here’s how it works:
The value of HFT determines the timeframe in milliseconds, during which the request to place an order (sent to the exchange) is valid. If 0, then the parameter isn’t used (the order is valid until execution or cancellation).
Why this is needed:
if, while the bot is working on a VPS the ping has increased, the command for placing an order on Binance will reach the exchange slower. If a small timeframe is set, such an order will not be accepted by Binance. This will allow avoiding a situation in which an order is placed “too late” and the trade takes placed under changed market conditions.
On Vultr with a ping of 10-20 you can set a HFT = 100. If the orders won’t be accepted you can try 200-300.
If an order with the HFT parameter is not accepted, the bot will send a notification in Telegram. You can adjust the frequency of such notification in Settings -> Special (default value is not more than once a minute)
6) “Settings – Autostart”. It is mandatory that you turn on the “Autostop on API errors” option, set the number of errors to 3 or 4. Set the Restart not sooner than after 20 minutes.
7) We also recommend using a ping stop with a ping threshold of 100 and more
8) Set up the auto-login in windows (Menu – System Settings, insert your login and password for your Windows account and click the “Auto login” button).If you have not yet added the bot to Autostart, click the “Autostart” button in the same menu.
To check all these settings, restart your server (hot restart through the Vultr control panel) – MoonBot must start and resume operation automatically
These specifics are described on the "Binance Futures" module page, study these specifics and all recommendations carefully.
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 (YESNO)
SoundKind: Choose from predefined sounds.
KeepAlert: How long to keep the market alert button, seconds
DebugLog: (For MoonStrike and Liquidations strategies) Generating more information about the reasons why strategies have triggered or have not triggered causes the log to be clogged with extra information.
IndependentSignals: If NO, then the logic is as follows: the strategies are checked one by one on the list, after finding the first one that fits the conditions of detection, a signal is given, other strategies are not checked (this logic worked all the time until current version). If YES, then all strategies in a row on the list are signaled, up to the first strategy with this option unchecked (the following strategies do not use this option: MoonShot, PumpDetection, UDP, Combo, Manual, TopMarket, the following strategies always have this option enabled: NewListing, EMA, Spread, MoonHook, Activity).
DontWriteLog: (YES/NO) If YES, do not log the orders of this strategy (can be checked only in the emulator mode of the strategy)
DontKeepOrdersOnChart: (YES/NO) If YES, delete orders of this strategy from the chart if the Buy is canceled (not executed) (the checkbox is available only in the emulator mode of the strategy)
UseCustomColors: (YES/NO) If YES, use the 2 parameters below
OrderLineKind: Type of lines (solid/ dashed)
SellOrderColor: colour of the sell order
Filters
IgnoreFilters: Ignore all filters except white and black lists and OnlyNewListing. The "do not buy" options from the general settings are also ignored (except for the blacklist).
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.
LeveragedTokens: Only for the spot market, allow trading UP and DOWN coins (turned off by default)
MinLeverage: filter has been added to the strategy: the min. leverage to woth on a market. Ignored when the "Ignore filters" option turned on. Default value is 1, which means that any leverage is accepted.
CustomEMA: This parameter is part of the Extension Package for auto-trading, the description to it can be read there. Custom EMA filter is excluded from the "CheckAfterBuy" checking in all strategies except MoonShot.
OnlyNewListing: the time in seconds during which the strategy will work on listings. If 0, ignored. The IgnoreFilters option does not affect this setting.
MaxLatency: Stops trading based on this strategy if latency exceeds a set value (by default = 0, not applied)
MinVolume: The Minimum Daily Volume below which not to take coins into consideration (specified in BTC, ETH, BNB, USDT, PAX, TUSD, USDC or USDS depending on the selected pair), (updated every 5-10 minutes). 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 (updated every 5-10 minutes).
MinHourlyVolume: The Minimum Hourly Volume below which not to take coins into consideration (updated every 5-10 minutes).
MaxHourlyVolume: The Maximum Hourly Volume above which not to take coins into consideration (updated every 5-10 minutes).
MinHourlyVolFast: The Minimum hourly volume with fast update by trades. By default 0 - do not check.
MaxHourlyVolFast: The Maximum hourly volume with fast update by trades. By default 0 - do not check.
MinuteVolDeltaMin: Minute delta of the volume, no more than (if 0 — not used). Calculated as the ratio of the volume for the last minute to average minute volume over the last 3 hours. A value of 1 means that the current volume is equal to the average.
MinuteVolDeltaMax: Minute delta of the volume, not less than (if 0 — not used). Calculated as the ratio of the volume for the last minute to average minute volume over the last 3 hours. A value of 1 means that the current volume is equal to the average.
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 cancel order manually.
TradePenaltyTime: Time in seconds during which the strategy will not work for the coin on which the trade was closed in minus. Clarification: if the trade was at a loss (any strategy, including manual trading), the strategies that use TradePenaltyTime not equal to 0, won't work on that coin for the duration of seconds set in TradePenaltyTime.
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: 1 hours, 2 hours, 30 мин, 15 min, 5min, 1min, Pump5m, Pump1h, Dump1h. (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_Min: BTC 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_Max: BTC 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 %).
Delta_BTC_5m_Min: Minimal BTC price change over the last 5 minutes (in percent), calculated as the difference (in percent) between the minimum and maximum price over the last 5 minutes and is always a positive value.
Delta_BTC_5m_Max: Maximum BTC price change over the last 5 minutes (in percent), calculated as the difference (in percent) between the minimum and maximum price over the last 5 minutes and is always a positive value.
Delta_BTC_1m_Min: Minimal BTC price change over the last 1 minutes (in percent), calculated as the difference (in percent) between the minimum and maximum price over the last 1 minutes and is always a positive value.
Delta_BTC_1m_Max: Maximum BTC price change over the last 1 minutes (in percent), calculated as the difference (in percent) between the minimum and maximum price over the last 1 minutes and is always a positive value.
UseBV_SV_Filter: This 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_FilterRatio: The 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)
GlobalDetectPenalty: the total penalty on the coin for strategies of all types in seconds, that is, when one strategy is triggered on a given coin, the others will not work for the specified time. If 0, the parameter is ignored.
GlobalFilterPenalty: Time, 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).
MoonIntRiskLevel: Coins that are deemed unsolicited by users at the moment are posted on the @MoonInt channel, indicating the risk level between 1 and 3 *CR* This is the risk level below which the emergency signals are ignored by this strategy. *CR* If 3 is set, only the most dangerous signals will be taken into account, if 4, then none will be taken into account. For the function to work, it is necessary to connect the bot to Telegram.
MoonIntStopLevel: Temporary strategy stop by signals from @MoonInt channel. In contrast to MoonIntRiskLevel, it stops the strategy from working with all coins at once. If you set it to 3, only the most dangerous signals will be taken into account. If you set it to 4 (the default value), then no signals will be taken into account. For the feature to work, the bot must be connected to Telegram.
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!
UseBTCPriceStep: chosing the market for price step calculations. If Yes, the price step is calculated by actual pair, otherwise by corresponding BTC market. Example: USDT-HOT has actual price step 0.02%, while BTC-HOT step is 14%. Using new parameter HOT can be excluded by price step filter (0..1%)
SamePosition: (Only for Binance Futures) Place orders only in the direction of the open position.
MarkPriceMin, MarkPriceMax: (Only for Binance Futures) The MarkPrice filter is designed to avoid opening a position too far away from the mark price, which could lead to instant liquidation. The filter works with the MarkPrice delta, which is the percentile difference between the Market Price and the Mark Price. If the MarkPrice is above the market price, the difference will be negative and if it’s below the market price, the difference will be positive. The filter is set with values from and to (MarkPriceMin, MarkPriceMax).
Example: MarkPriceMin=0 MarkPriceMax=1 – will choose all the coins where the MarkPrice is moved to the opposite side from the order by no more than 1%. (therefore, if mark price is 1% above the market price, no short orders will be placed; if the mark price is 1% below the market price, no long orders will be placed; in other cases, both short and long orders will be placed)
MaxPosition: The max value of currently opened position. The position is calculated as sum of all sell and buy orders on this market.
CheckAfterBuy: whether to check filters after buy order is set (If NO, filters are checked only once when a signal is detected; If YES, filters are checked continuously until buy order is filled or canceled).
BinancePriceBug: the value by which the price should lag, in percent, for the trading to stop (if 0 — not used).
TotalLoss: The strategy stops working when the total minus exceeds the set value (positive number). The minus is counted by the total settings from the AutoStart tab for the set time for the whole report.
SessionProfitMin, SessionProfitMax: Session profit From SessionProfitMin To SessionProfitMax defines the strategy working diapason. Zero value means the parameter is ignored. You can setup session autoreset in the main settings - the AutoStart tab.
Triggers
TriggerKey: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerKeyBuy: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerKeyProfit: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerKeyLoss: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
ActiveTrigger: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
ClearTriggersBelow: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
ClearTriggersAbove: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
ClearTriggerKeys: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerAllMarkets: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerByKey: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerByAllKeys: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerSeconds: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerKeysBL: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerSecondsBL: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
SellByTriggerBL: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
CancelByTriggerBL: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerKeyProfit: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerKeyLoss: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
ActiveTrigger: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerAllMarkets: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerByKey: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerSeconds: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
TriggerKeysBL: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
Session
IgnoreSession: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
SessionStratMax: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
SessionStratIncreaseMax: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
SessionStratMin: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
SessionStratReduceMin: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
SessionResetOnMinus: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
SessionPenaltyTime: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
SessionPlusCount: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
SessionMinusCount: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
SessionIncreaseOrder: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
SessionIncreaseOrderMax: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
SessionReduceOrder: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
SessionReduceOrderMin: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
SessionResetTime: This parameter is part of the Extension Package for auto-trading, the description to it can be read there.
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.
BuyDelay: delay for buy orders in milliseconds (0 - no delay, max 3000ms).
Short: Open short orders instead of long. To place a short order you must own the "Binance Futures" module, the specifics of setting up short strategies on Futures are also described there.
HFT: (integer) Determines the timeframe in milliseconds, during which the request to place an order (sent to the exchange) is valid. If 0 then not used.
MaxActiveOrders: Max active orders for this particular strategy on different coins. If exceeded, autobuy will not be performed until some orders are filled or cancelled, (does not apply to repeated orders of Moonshots with the MShotRepeatAfterBuy option. Repeated orders will be placed excluding MaxActiveOrders).
MaxMarkets: max. number of markets where the strategy works simultaneously (except for strikes).
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: Buy - limit order placement,
BuyLimit - delayed order placement under the current price, after the trigger price is reached a limit order will be placed slightly higher (or lower respectively) by the size of the spread in PendingOrderSpread,
BuyStop - delayed order placement above the current price, after the trigger price is reached a limit order will be placed slightly higher (or lower respectively) by the size of the spread in PendingOrderSpread.
PendingOrderSpread: the spread size for placing a limit order, can take negative values; if the limit order is not executed within 3 seconds, it gets cancelled.
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)
Delta Modifiers
BuyModifier: The coefficient of adding modifiers to the buy order price. Example: cumulative delta calculated by modifiers Add* is 5%. BuyModifier = -0.1. In this case the buy order will be set 0.5% lower. For clarity, try the parameters in the manual strategy
SellModifier: the price modifiers addition coeficient for Sell orders. Example: the total delta, according to the Add* modifier, equals 5%. SellModifier = 2. In this case the the Sell orders will be placed 1% higher.
DetectModifier: The coefficient of adding modifiers to the detection level. Example: cumulative delta calculated by modifiers Add* is 5%. DetectModifier = 0.1. A pump detect strategy configured to detect 2% pumps. In this case this strategy will detect only 2% + 5%*0.1 = 2.5% pumps
Add3hDelta: Modifiers of parameters based on deltas. Calculated as the sum of all modifiers multiplied by deltas (Sum [Pn * Dn] where Pn is the modifier specified in the strategy, Dn is the current delta). For clarity, try the parameters in the manual strategy
AddHourlyDelta: Modifiers of parameters based on deltas. Calculated as the sum of all modifiers multiplied by deltas (Sum [Pn * Dn] where Pn is the modifier specified in the strategy, Dn is the current delta). For clarity, try the parameters in the manual strategy
Add15minDelta: Modifiers of parameters based on deltas. Calculated as the sum of all modifiers multiplied by deltas (Sum [Pn * Dn] where Pn is the modifier specified in the strategy, Dn is the current delta). For clarity, try the parameters in the manual strategy
Add5minDelta: Modifiers of parameters based on deltas. Calculated as the sum of all modifiers multiplied by deltas (Sum [Pn * Dn] where Pn is the modifier specified in the strategy, Dn is the current delta). For clarity, try the parameters in the manual strategy
Add1minDelta: Modifiers of parameters based on deltas. Calculated as the sum of all modifiers multiplied by deltas (Sum [Pn * Dn] where Pn is the modifier specified in the strategy, Dn is the current delta). For clarity, try the parameters in the manual strategy
AddMarketDelta: Modifiers of parameters based on deltas. Calculated as the sum of all modifiers multiplied by deltas (Sum [Pn * Dn] where Pn is the modifier specified in the strategy, Dn is the current delta). For clarity, try the parameters in the manual strategy
AddBTCDelta: Modifiers of parameters based on deltas. Calculated as the sum of all modifiers multiplied by deltas (Sum [Pn * Dn] where Pn is the modifier specified in the strategy, Dn is the current delta). For clarity, try the parameters in the manual strategy
AddBTC5mDelta: Modifiers of parameters based on deltas. Calculated as the sum of all modifiers multiplied by deltas (Sum [Pn * Dn] where Pn is the modifier specified in the strategy, Dn is the current delta). For clarity, try the parameters in the manual strategy
AddBTC1mDelta: Modifiers of parameters based on deltas. Calculated as the sum of all modifiers multiplied by deltas (Sum [Pn * Dn] where Pn is the modifier specified in the strategy, Dn is the current delta). For clarity, try the parameters in the manual strategy
AddMarkDelta: Modifiers of parameters based on deltas. Calculated as the sum of all modifiers multiplied by deltas (Sum [Pn * Dn] where Pn is the modifier specified in the strategy, Dn is the current delta). For clarity, try the parameters in the manual strategy
AddPump1h: Modifiers of parameters based on deltas Pump1h
AddDump1h: Modifiers of parameters based on deltas Dump1h
AddPriceBug: Modifiers of parameters based on deltas PriceBug.
Multiple OrdersBuy
OrderCount: the number of orders (1 by default)
CheckFreeBalance: CheckFreeBalance: balance check for placement of a single order or a grid of orders, in case of insufficient balance, the orders are not placed
BuyPriceStep: price increment, in percentage points of the initial price (if less than zero, every next order will be placed lower, if greater than zero — higher)
BuyStepKind: Price step calculation method (Linear — linear progression or Exponential — geometric progression).
OrderSizeStep: order size change increment, in percentage points (0 — doesn't change the order size)
OrderSizeKind: a method for calculating a net of orders (Linear or Exponential (geometrical progression))
CancelBuyStep: buy order cancellation time increment when setting nets of orders (in seconds
JoinSellKey: a key for auto-joining sell orders (default is 0 — doesn't join). If any value is set, after purchase, the strategy will join all coins with another order that has the same key.
JoinPriceFixed: when joining, use the fixed sell price (SellPrice) from the strategy
IgnoreCancelBuy: ignore auto-cancel of a order net, if the first order from the net has executed
ATTENTION. When uniting sell orders, the newly created order will have all basic settings applied to it (stop, trailing, etc) during manual trading or the settings of the manual strategy if it is activated, i.e. a stoploss may appear even if you disabled it or manually changed it on the open orders. When uniting orders using a strategy, all parameters will be used based on the first strategy with the same key. Note that both manual and strategy orders may be united and take on the parameters from the first strategy in the list.
Important! Emulator orders, both enabled from the emulator menu or by checking the box in the strategy — CANNOT BE JOINED!
Sell Order
AutoSell: Place a sell order after buying. Default value is YES. Available on Spot market only if the ini file contains ExpertMode = 1.
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.
UseScalpingMode: If 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.
SellByFilters: The time in seconds after purchase after which to sell when exiting the filter (0 - never).
SellByCustomEMA: A condition to sell, if the prices satisfy the EMA filter conditions (and more than SellByFilters sec have elapsed. If SellByFilters=0, condition is not considered). IMPORTANT! Unlike other filters, the sell is activated if the EMA filter conditions are fulfilled (and not vice versa). Example: SellByCustomEMA = "EMA(3,1) > 1%, will sell during growth when the growth over 3 seconds was more than 1%.
SellEMADelay: delay (seconds) before sell by EMA filter
SellEMACheckEnter: check the EMA filter before buy; if the condition is met, then do not buy (so that it does not sell immediately)
SellLevelDelay: The delay in seconds before a sell order is replaced to a set level. If 0, order is not moved.
SellLevelTime: Time (seconds) over which the maximum price (level) is counted to replace the sell order to this level plus SellLevelAdjust percent (can be negative, in which case the order will be set below the maximum level). If 0, the order is not moved.
SellLevelCount: How many times the order must be moved based on the SellLevel settings; the order will be moved after every SellLevelDelay seconds.
SellLevelAdjust: Correction percentage. Example: a coin bought at a price of 100, SellLevelDelay = 60 seconds, SellLevelTime = 3600 sec. (1 hour), SellLevelAdjust = -1. In this case, after 60 seconds after the purchase, the bot will count the maximum price over the last hour, if it equals to 120, the sell order will be moved to 120 - 1% = 118,8.
SellLevelRelative: move the sell by X% of the buy price relative to the high price (can be greater than 100%).
SellLevelAllowedDrop: The amount, in percentage of the buy, by which the “swap per level” function can lower the sell.
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: Use stop loss or no, YES / NO.
FastStopLoss: faster stop on trades ("crosses"). Stops will react to spikes.
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 Sell.
StopLossDelay: Delay activation of stop-losses and trailing, from the time of purchase, 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 wait 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 BVSV 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.
BV_SV_Reverse: If YES, the bv/sv exit is calculated based on the inverse ratio of sells to buys (i.e. exit when the price is moving in your direction).
BV_SV_TakeProfit: Include BV/SV only after reaching the specified price, (in %).
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.
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.
DropsPriceMA: Interval 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.
DropsLastPriceMA: Ticks 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.
DropsPriceDelta: Price drop during the analysis period, percentage. Is calculated as: (Highest price/ Lowest price - 1) * 100.
DropsPriceIsLow: If YES, then in addition to the above-described conditions, the current market price has to be the hourly low.
Example: If the current market price is 2% lower than the highest price, the strategy will be triggered (e.g.: the highest price was 102$, the current price is 100$. The drop is equal to (102/100 - 1) * 100 ) = 2%
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#
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, PumpMovePercent=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).
PumpUsePrevBuyPrice: Use 2-seconds old price for calculating BuyPrice (unless specified using price 30 seconds ago). Enabled by default. This setting protects against buying at the very top of the spike. Before this parameter was added to the settings, it was always enabled programmatically, so when disabled, the strategy behavior will change!
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
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
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)
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.