In MoonBot in the strategy settings on the Filters tab, there is a CustomEMA parameter in which the EMA, MIN, MAX, BTC formulas are written and it is included in the Extensions Package for AutoTrading https://moon-bot.com/en/pro-version/extension-pack/, you can read its more detailed description there as well. Please note that the EMA filter is excluded from the CheckAfterBuy check in all strategies except the MoonShot strategy.
Yes, for this purpose use the parameters on the Filters tab of the strategy settings SessionProfitMin and SessionProfitMax - these are two parameters that allow the strategy to work within the specified range of profit per session from SessionProfitMin and up to SessionProfitMax (values are specified in $ on any trading pairs). If 0, the parameter is ignored.
Examples:
1) SessionProfitMin = -100 ($), SessionProfitMax = 0 ($). Then the strategy will work on the coin as long as the session value on the coin is in the range from -100$ to +infinity, as the maximum SessionProfitMax session limit is ignored.
2) SessionProfitMin = -100 ($), SessionProfitMax = 100 ($). Then the strategy will work on the coin as long as the session value on the coin is between -100$ and +100$.
3) SessionProfitMin = 0 ($), SessionProfitMax = 100 ($). Then the strategy will work on the coin as long as the session value on the coin ranges from -infinity, as the SessionProfitMin minimum session limit is ignored up to +100$
The session auto-reset by time is configured on the Settings-Autostart tab.
Specific parameters of the UDP strategy:
TMBuyPriceLimit: value in percent.
Strategy protection for UDP from buying at too high price: TMBuyPriceLimit parameter sets the maximum buy price value (as a percentage of the current market price).
For example if TMBuyPriceLimit = 5% and a buy command comes in at +10%, then such a command will be ignored.
Read more about Trust management here:
Asset Management: High Frequency UDP Trading https://moon-bot.com/en/87-trust-management-udp/
Trust management https://moon-bot.com/en/75-trust-management/
Click the SM button on the main window of MoonBot terminal so that there is a red arrow on the icon of this button, in this case you will activate the Stop Market.
Next, in the strategy window create a manual strategy Manual and on its Sell order tab configure the parameters for setting the Stop Market: UseMarketStop=YES (use the stock stop) and MarketStopLevel=-1 (set the Stop Market to -1% of the coin's purchase price).
Then check that you have the Manual Strategy trading mode enabled: Menu-Manual Trading-Use Manual Strategy and on the main window of the MoonBot terminal, select the Manual strategy you configured earlier. Then open the chart of the desired coin and buy it, after that you will set the stock stop at -1% of the purchase price.
Please note that in order to be able to use Stop Market, you should set the slider to the far right on the Settings-Advanced-System tab to "Log level: 5".
In this case, when buying a coin in the MoonBot terminal using a manual strategy with the parameters UseMarketStop=YES and MarketStopLevel=0, a take line (Sell order) will be placed, but you will still have the option to move this take line to the opposite stack with automatic replacement by the Stop Market line, as well as the reverse action: you can move the Stop Market line to the opposite stack and the take line will appear again.
Please note that in order to be able to use Stop Market, you should set the slider to the far right on the Settings-Advanced-System tab to "Log level: 5".
Activity strategy specific parameters:
MMTimeFrame=45
Timeframe for analysing identical orders, sec.
You can set values from 15 to 60 seconds.
MMOrderMin=100
Order search range, from this minimum order size in $.
The minimum value in this parameter is $100.
MMOrderMax=1000
The range of order search, up to this maximum order size in $.
MMOrderStep=1
Order grid step, in $
With these settings (these values are set by default), the analysis is performed on a period of 45 seconds (MMTimeFrame=45), which is automatically divided by the strategy into three equal intervals, in this case 15 seconds each (45/3=15sec) and at each interval all orders from the specified range from $100 (MMOrderMin=100) to $1000 (MMOrderMax=1000) are analysed and counted with the step of the orders grid of $1 (MMOrdersStep=1), according to these parameters the necessary "series" of orders is detected and in their presence the strategy Activity is detected.
If you have enabled the Activity strategy and ticked the box next to the Extended Debug Mode parameter on the Settings-Advanced-System tab, you can see a line on the coin chart with the parameters from the detection of this strategy. In your case, these parameters are deciphered as follows.
MM Detected: 16:51:27 Vol: 200 O: 32 [47, 24, 45] E: 29%
MM Detected: 16:51:27 is the time when the strategy Activity detected.
Vol: 200 is the volume (size) of the order in the series of approximately $200.
O: 32 - this is the number of orders in the series
[47, 24, 45] - this is how many orders of all sizes there were on each of the three 15-second intervals [15c=47orders, 15c=24orders, 15c=45orders]
E: 29% is the average ratio of the total number of orders to the number of orders in the series
After all comparisons, if the value of E satisfies the value for the detector, then the Activity strategy is triggered.
Take into account the fact that the Activity strategy does not implement a mechanism for determining the "sign" of an order and the strategy does not distinguish whether it was a buy (green) or sell (red) order. And in fact, the strategy's detection of the order "$200" can be in a series of both:
1) positive orders (green to buy): 200,200,200,200
2) negative orders (red to buy): -200,-200,-200,-200
3) mixed orders (both green and red): 200,-200,200,-200
(*signs are arranged conventionally to make the explanation clearer).
That is, the Activity strategy can detect a series of green orders that may lead to a price increase, it can detect red orders that may lead to a price decrease, and it can detect mixed orders that may cause the price to stay in the same place.
Note that if the coin is "heavy" with dense stacks, a series of orders of $100-200 will not lead to a rise or fall in price, but we can be guided by the behaviour of bots, which in the background start small frequent buying or selling of coins with the same orders, which may signal their interest in the coin. If the coin is "medium heavy" with more rarefied stacks, then a series of green orders of 20 pieces, e.g. $20000 each, totalling $400000, can significantly push the price up and vice versa, a series of large sell orders can cause the price to fall.
Therefore, it is recommended to create several Activity strategies with different time frames and different order ranges (narrower):
Activity1: $100...$300,
Activity2: $500...$700,
Activity3: $1000...$1300,
Activity4: $10000...$15000
, etc.
And each strategy can be used for different scenarios: the start of the bot, manipulations of traders and so on.
In addition to the fact that the Activity strategy will be able to recognise a series of orders of the same size, you will need additional filter settings (deltas, volumes, EMA) to confirm the growth or fall of the price and in which direction you should open a position.
Activity strategy can also be recommended as a detector for manual trading or as a Master strategy, which will work together with another Slave strategy, which in turn will confirm the entry into a deal and place buy orders.
The Binance Futures exchange performs an automatic funding calculation every 8 hours - at 00:00, 08:00 and 16:00 UTC.
But there are no "fanding" parameters in the strategy settings that can stop trading on strategies.
Therefore, in the current implementation of MoonBot terminal you need to use the WorkingTime parameter in the filter section of strategy settings.
But since you can enter only one working period in it, you will need to set up 3 Master strategies with different WorkingTime intervals, which in due time will give a trigger key to stop all strategies during the fanding period (to use triggers you need to purchase and activate the additional paid module "Extension Pack for Autotrading" https://moon-bot.com/ru/pro-version/extension-pack/).
Strategy1: WorkingTime=03:00-03:01
Strategy2: WorkingTime=11:00-11:01
Strategy3: WorkingTime=19:00-19:01
That is, you should set the time to 00:00, 08:00 and 16:00 UTC + X hours based on your time zone and add a minute interval.
On the Buy condition tab of the strategy settings there is the buyPriceLastTrade parameter, if it is ticked and buyPriceLastTrade=YES, then the price of the last trade-trade will be used to calculate the buy price. If the tick is not checked and buyPriceLastTrade=NO, then the last ASK price will be used.
Attention! The buyPriceLastTrade parameter is absent in the following strategies: MoonShot, UDP, Manual, Spread, MoonHook, as it is either not reasonable or the strategy has its own mechanics for calculating the Buy order.
In order for the strategy in the MoonBot terminal to place a Buy order not from the ASK price, but from the last trade of the cross and within 30 seconds, you need to set two parameters on the Buy conditions tab of the strategy settings as follows: buyPriceLastTrade=YES and Use30SecOldASK=YES.
Attention! The buyPriceLastTrade parameter is absent in the following strategies: MoonShot, UDP, Manual, Spread, MoonHook, as it is either not reasonable or the strategy has its own mechanics for calculating the Buy order.
In the MoonBot terminal, on the Filters tab of the strategy settings, there is a parameter called BinancePriceBug (default 0.5% for futures, default 1.0% for spot): the price lag percentage at which trading in this strategy should be stopped.
If this filter is triggered, a 30 second penalty is activated on the strategy, so new orders for this strategy will not be placed on all coins for at least 30 seconds or more if the price lag does not go down.
For clarity, the current calculated price lag value (PriceLag line) is displayed in the Info window, which is opened by clicking on the traffic light icon (green or orange circle, to the left of the Ping value) in the lower left corner of the MoonBot terminal information bar.
How the price lag is calculated: the price of the "knot" on the brown price line (for the light theme) is compared with the trades for the last 10 seconds. The smallest discrepancy is taken for each market, then the largest discrepancy is taken for all markets.
That is, the price lag is the largest across all markets of the closest distances between the crosses and the price line.
Usually the values of BinancePriceBug=0.5% (for futures) and BinancePriceBug=1.0% (for spot) should be enough in the normal operation of the exchange and in this case there are almost no false positives and stops of strategies, and the real price lag, if it happens, then at large values.
There are traders who want to protect themselves when lagging the price on the Binance exchange and we will recommend them to leave the default values. But some riskier traders are not satisfied with penalties after stopping the strategy, when it is possible to buy back the asset at a more interesting price and they set BinancePriceBug to large values and do not stop trading even with significant lags of the exchange.
The AutoSplitBuy parameter on the Multiple Orders tab is only available in Manual strategies and it is only used when the OrdersCount=1.
If AutoSplitBuy=YES, it will split the Buy order in case the initial placed size exceeds the maximum limit for a single order.
The maximum value of a single order on different coins may differ and can be viewed on the main window of the MoonBot terminal on the right control panel (value "Max:").
Other strategies do not have this parameter because of the possibility of uncontrolled banning by the exchange.
In the MoonBot terminal, in the strategy settings on the Delta Modifiers tab, there is a parameter StopLossModifier: this is the coefficient of addition of modifiers to the StopLoss value. The result is written to the log as: StopLoss adjusted [-1.00% - (10.00*0.98=9.75%) => -10.75%] - the stop from the strategy setting (-1%) adjusted by the stop modifier coefficient (9.75%) and the final stop loss level (-10.75%).
In the MoonBot terminal, in the strategy settings on the Delta Modifiers tab, there is a parameter MaxModifier: this is the calculated sum of all modifiers not greater than the specified value. The total modifier is calculated using the formula Min(MaxModifier, Sum[Pn * Dn]), where Pn is the modifier specified in the strategy, Dn is the current delta. If 0, the parameter is not taken into account.
Yes, the MaxModifier parameter also applies to the MoonShot strategy and allows you to limit the maximum coefficient of modifiers.
In the MoonBot terminal, in the strategy settings on the Filters tab, there is a parameter MaxLeverage (maximum leverage), up to which to take coins into work. If the leverage on coins is higher than the specified leverage, the strategy will not take such coins into work. If IgnoreFilters = YES is checked, this filter does not work and all coins will be analyzed regardless of the set leverage. By default, MaxLeverage=0, i.e. do not limit the filter by the maximum leverage. In your case, you should set IgnoreFilters = NO and MaxLeverage = 20, then coins above the leverage x20 will not be considered by the strategy.
In the MoonBot terminal, in the strategy settings on the Filters tab, there is a parameter ListedType: Ignore, Spot Only, Futures Only, Both, and it is responsible for filtering coins depending on their listing on spot or futures. This parameter is available only in MoonBot terminals for Binance and Bybit.
The logic of the ListedType parameter in the MoonBot terminals for Binance and Bybit:
Ignore - ignore this filter.
Spot Only - tokens represented only on the spot.
Futures Only - tokens represented only on futures (will not place orders at all).
Both - tokens that are available on both spot and futures.
The logic of the ListedType parameter in MoonBot FUTURES terminals for Binance and Bybit exchanges:
Ignore - ignore this filter.
Spot Only - tokens represented only on the spot (will not place orders at all).
Futures Only - tokens represented only on futures.
Both - tokens that are available on both spot and futures.
The ListedType parameter allows you to immediately unload the white list and not to think about updating it when the type of coins on the exchange changes (only spot or spot+futures).
That is, if a new coin is traded on the spot, but it is not yet on the futures, it can be traded according to the first strategy with the same parameters, as soon as this coin is added to the futures and its “trading behavior” has changed due to this, the first strategy will be silenced, as it will no longer pass through this filter, and the second strategy with other parameters “for coins that are both on the spot and futures” will be enabled.
The ListedType parameter: filtering coins based on their listing on spot and/or futures is currently only available in MoonBot terminals for Binance and Bybit.
In the latest versions of the MoonBot terminal, the SamePosition parameter on the Filters tab now works for MoonHook strategies as well. If SamePosition=YES is set, this strategy will place orders only in the direction of the open position. We recommend updating your version of MoonBot terminal to the latest version.
Yes, in MoonBot terminal the CancelByTriggerBL setting cancels Pending orders in addition to Buy orders. We recommend that you update your MoonBot terminal to the latest version.
The DontTradeListing parameter of the strategy settings specifies the time in seconds during which the strategy will not trade coins on the listing. The maximum value of this parameter is 346k seconds (4 days). This parameter replaces the general settings in the MoonBot terminal on the Settings - Main tab with the “Dont buy newly added coins XX minutes / hours” slider. For example, you can disable the general setting on the Settings - Main tab, and configure and use the DontTradeListing parameter selectively for different strategies. Attention! The MoonBot terminal determines the listing time only during its operation! After restarting the terminal, it does not know the listing time of the coin.
These parameters are located on the Filters tab of the settings for all MoonBot terminal strategies:
FilterBy: Selecting a parameter to filter - Last1mDelta, Last15mDelta, Last30mDelta, Last1hDelta, Last2hDelta, Last3hDelta, 24h-Delta - by price delta (for 1m, 15m, 30m, 1h, 2h, 3h, 24h); DVolToHVolAsc by the ratio of daily to hourly volumes in ascending order; DVolToHVolDesc - by the ratio of daily and hourly volumes in decreasing order; DailyVol, HourlyVol, MinuteVol, 3Min-Vol, 5Min-Vol - by volumes (for 24h, 1h, 1m, 3m, 5m); MaxOrder - by the maximum order size; Orders - by the number of orders; Session - by session; MaxPos - by maximum position; MarkPrice - by MarkPrice; Funding - by Funding; Leverage - by Leverage size; Pump5m - by price growth delta over 5 minutes (counts as the difference between the price 5 minutes ago and the maximum price over 5 minutes); Pump1h - by price growth delta over an hour (counts as the difference between the price an hour ago and the maximum price over an hour); Dump1h - by price drop delta over an hour (counts as the difference between the price an hour ago and the minimum price over an hour).
FilterMin: Minimum boundary of the FilterBy value. If one of the FilterMin or FilterMax values is 0, this parameter is not applied.
FilterMax: The maximum limit of the FilterBy value. If one of the FilterMin or FilterMax values is 0, this parameter does not apply.
In the strategy settings of the MoonBot terminal, a section has been added for Dynamic White\Black List, which has the following parameters:
DynWL_SortBy: Selects the parameter for the dynamic white list made by sorting and taking the first DynWL_Count of coins. The following parameters can be sorted: Last1mDelta, Last15mDelta, Last30mDelta, Last1hDelta, Last2hDelta, Last3hDelta, 24h-Delta, DailyVol, HourtyVol, MinuteVol, 3Min-Vol, 5Min-Vol, MaxOrder, Orders, Session, MaxPos, MarkPrice, Funding, Leverage, Pump5m, Pump1h, Dump1h.
DynWL_SortDesc: Sort direction for the whitelist (if YES, from larger to smaller, if NO, from smaller to larger values).
DynWL_Count: How many coins passing through the filter to take from the sort to make a dynamic whitelist.
DynBL_SortBy: Selects the parameter for the dynamic blacklist made by sorting and taking the first DynBL_Count of coins. The following parameters can be sorted: Last1mDelta, Last15mDelta, Last30mDelta, Last1hDelta, Last2hDelta, Last3hDelta, 24h-Delta, DailyVol, HourtyVol, MinuteVol, 3Min-Vol, 5Min-Vol, MaxOrder, Orders, Session, MaxPos, MarkPrice, Funding, Leverage, Pump5m, Pump1h, Dump1h.
DynBL_SortDesc: Direction of coin sorting for the blacklist (if YES, from larger to smaller, if NO, from smaller to larger values).
DynBL_Count: How many coins passing through the filter to take from the sorting to make a dynamic blacklist.
Dyn_Refresh: The frequency of recalculation of the dynamic lists in seconds. Too frequent recalculation of the sorting loads the CPU and can lead to the exchange ban for frequent rearrangement of orders. We recommend using a value from 61 seconds.
On the Filters tab of the MoonBot terminal strategy settings, there is a MaxBalance parameter: do not place an order if the balance already used by all strategies exceeds the limit specified in this parameter, including the OrderSize of this strategy. If 0, it is not taken into account. Please note! The parameter will not react in time if several orders are placed at the same time.
On the Filters tab of the MoonBot strategy settings, there is a parameter called MaxPing: The maximum ping value in milliseconds to which the strategy can work. If it is 0, or if MaxLatency is 0, it is not considered.
If an order fails to pass the ping filter, a penalty of 5 seconds is imposed before the order can be placed again.
On the Filters tab of the MoonBot terminal strategy settings, there is a MinPing parameter: The minimum ping value in milliseconds from which the strategy can operate.
The Binance exchange uses special tags for some tokens, which can be presented in various combinations. You can filter coins with tags using the parameter on the Filters tab of the strategy settings TokenTags= token tag field (Binance only!). Acceptable tags in the field of this parameter are Monitoring, Fan, Seed, Launch, Gaming. The tokens are listed with a space. An entry of several tags means an “and” condition. If you put an exclamation mark ! at the beginning of a tag, the filter will select tokens without this tag.
For example, such a setting: “TokenTags=Fan !Monitoring” will mean that all tokens with the tag Fan but without the tag Monitoring will pass through the filter.
Attention: This is an undocumented function in the API of the Binance exchange, which may stop working at any moment.
The SellDelay parameter of the strategy settings specifies the waiting time in milliseconds before placing a Sell order.
The SellLevelWorkTime parameter of strategy settings specifies the time in seconds, during which the Sell order transposition control algorithm works according to the functionality of SellLevel settings. After this time expires, the Sell order will not be rearranged. If 0, SellLevelWorkTime parameter is not applied.
The SellLevelDelayNext parameter of the strategy settings specifies the time in seconds after which the next Sell order transposition according to the SellLevel algorithm is performed. The first permutation is performed after SellLevelDelay time (in seconds), starting from the second - after SellLevelDelayNext time (in seconds). If SellLevelDelayNext=0, this parameter is not used and all Sell order permutations are performed through the SellLevelDelay interval as before.
In the MoonBot terminal in the strategy settings, if DontCheckBeforeBuy is checked and CheckAfterBuy is unchecked, pending orders are not removed even if they stop passing through the filters.
Yes, such an algorithm can be implemented and it can be useful, for example, if you know that some coins go the same way and when one coin pumps, after some time another coin starts to pump. Then you can set the detector on one “guide” coin, buy it or just give detector from it and at the same time buy another / other coins, the prices of which, as you assume, will follow the price of the “guide”.
For example, we need to buy Coin1 (BTC) to buy Coin2 (ETH) immediately on the trigger.
Then in the Master strategy use the trigger detector (TriggerKey) with the TriggerAllMarkets=YES checkbox set and AutoBuy=NO (no auto-buy) parameter - this will allow the trigger to activate the Slave strategy on all markets, but the purchase by Slave strategy will be limited to its white list.
Further it is possible to develop the algorithm so that when BTC coin is sold by Master strategy, ETH coin will be sold by Slave strategy immediately by trigger.
To do this, you add the necessary triggers to the Master strategy to sell at a loss or profit and close the position using the TriggerBL setting on the Slave strategy.
That is, if you need to close a Slave position at the same time as a Master position, regardless of whether it was a loss or a profit for the Master, then the same triggers are specified in the Master strategy settings:
TriggerKeyProfit=40
TriggerKeyLoss=40
And Slave strategy uses these parameter settings:
TriggerKeyBL=40
TriggerSecondsBL=2
SellByTriggerBL=40
Which coin should be monitored by Master strategy is specified in its white list (Master: CoinWhiteList=BTC), and which coin should be bought by Slave strategy from Master strategy trigger is specified in its white list (Slave: CoinWhiteList=ETH).
You can change combinations and, for example, Master strategy will monitor 3 coins from one white list (Master: CoinWhiteList=COIN1 COIN2 COIN3), and Slave strategy will buy coins from another white list (Master: CoinWhiteList=COIN4 COIN5 COIN6 ...), for example, if one of three phantokens started to grow, you can buy other phantokens, which have not pamped yet, but can do it.
* Variants of using this algorithm can be different, more useful algorithms can be found in the private MoonBot Academy English paid Telegram group (contact Kost Main https://t.me/kostmain for access to this group).
On the Filters tab of the MoonBot terminal's strategy settings is the DontCheckBeforeBuy: Do not recheck filters immediately before buying. By default it is off, filters are checked twice: before calculating the detection and before buying.