Why won’t my Bot Buy, or Sell?

[authored originally by Vae Victus 2018.01.22]
[updated for v2.3 2019.04.09]

Table of Contents

BUY USING MULTIPLE INDICATORS

V2.0 of ProfitTrailer introduced the ability to buy and sell with multiple strategies/indicators being used at the same time, and introduced several new strategies: RSI, STOCH, SHOCHRSI, MACD, BBWIDTH, and OBV, and more. With multiple strategies, you are able to look at different aspects of the trend of a coin before deciding if you should buy or sell. Combining these strategies properly can improve your profitability by a large margin vs using a single strategy.

For example, several good indicator pairings are: LOWBB and RSI for buying, HIGHBB and RSI for selling, LOWBB and STOCH, HIGHBB and STOCH, etc.

Combining the strategies would look like the following example (using LOWBB and STOCH for example):

DEFAULT_A_buy_strategy = LOWBB
DEFAULT_A_buy_value = 0            - will become true when LOWBB is <= 0
DEFAULT_A_buy_value_limit = -10    - and will remain true while LOWBB is >= -10

#Note that the second strategy uses  "B" instead of "A". 
#You can have 10 strategies used at one time, so A through J. They do not need to be consecutive.
DEFAULT_B_buy_strategy = STOCH
DEFAULT_B_buy_value = 20          - will become true when STOCH <= 20
DEFAULT_B_buy_value_limit = 1     - and will remain true while STOCH >= 1




TYPE MATTERS

There are 4 main types of technical indicators: Trend, Momentum, Volatility, and Volume. The indicators in PT fall into these types as shown in the table below.

Trend SMA, EMA, MACD
Momentum RSI, STOCH
Volatility Bollinger Bands
Volume OBV

While you can do your own research on this topic, it is important to note that you should not try to combine strategies that are of the same type, as this creates the situation where you are getting confirmation from multiple indicators but they are all measuring the same thing.


UNDERSTANDING THE BUY

There are several factors that determine when a bot buys or sells. These are all set in the 3 main configuration GUI sections that deal with your buying and selling strategies: Indicators, Pairs, and DCA.

PAIRS BUYING

Pairs settings drive the standard, non-DCA (Dollar Cost Averaging) buying. These settings are used when the coin doesn’t enter DCA or you are not using DCA.

Possible Buy Log

First, let’s discuss buying. The Possible Buy Log (PBL) is your indicator that your buy strategy is picking up potential candidates to buy. The different settings in the 3 GUI sections mentioned above control how the bot evaluates candidates. When you understand how you can tweak those settings, you will understand how to make the bot perform with more profitable behavior.

When the PBL filters out coins based on these settings. Any of these conditions will prevent a coin from appearing in the PBL:

  • min_buy_volume is not met
  • min_buy_price is not met
  • trading_enabled is false
  • Already own the coin
  • hidden_pairs will not be shown

In version 2.3, the PBL will look for ALL the buy strategies that you have set (up to 10 total) to be true before it will begin to consider buying a coin. The exception to this is the default_buy_strategy_formula setting, which allows any valid combination of strategies to be true in order to consider a buy. Then it will begin trailing if you have trailing set. As you can see, there are even more hurdles to leap over before the bot will buy, which of course, is a good thing. The more criteria your buy meets, the better the buy should be to try to create an opportunity to create a profit in the future from that purchase.

You can choose to make the bot buy very quickly by creating very loose and aggressive buy settings, but remember that is defeating the purpose of being selective, and using a bot that can do all these calculations and checks for you without emotion.


The Main Setting: buy_value
DEFAULT_A_buy_value

The main way to get the bot to buy, especially when you just want to make sure it is working, is to manipulate the DEFAULT_A_buy_value setting along with your DEFAULT_A_buy_strategy.

For example, if you want a simple buy strategy that is easy to understand, you can use LOWBB. This strategy says “buy a coin when its price meets or is lower than the LOWBB value of the coin, adjusted by the DEFAULT_A_buy_value percentage.” The DEFAULT_A_buy_value default is 0, meaning buy the coin when the price is the same or lower than the LOWBB value.

But let’s say the market is hot, and all the coins are seeing strong gains. The price of a coin may rarely reach the LOWBB value, so you will want to increase the DEFAULT_A_buy_value to move the buy signal higher. You can do that by increasing the DEFAULT_A_buy_value a few percent at a time until you see the bot starting to buy. If you move the value to 15, you are telling the bot to buy a coin when its price is 15% ABOVE the LOWBB value.

(Remember that with LOWBB, a DEFAULT_A_buy_value = 50 means the middle of the BB bands (50%), and 100 means you would be at the HIGHBB band. So, the maximum that you would use in DEFAULT_A_buy_value would be 45%. This would be a very aggressive setting and should result in the bot buying many pairs. This is, however, not necessarily a good thing, but it gives you an example with which to work.)

Alternatively, if the market is down, and the coins have negative 24 hour averages, you would want to set your DEFAULT_A_buy_value to a number that is low, even below zero, like -5, -10, -15, -20. This says “do not buy until the price of the coin is 5% (10%, etc) BELOW the LOWBB value.

DEFAULT_trailing_buy

Another important setting is the DEFAULT_trailing_buy setting. This setting allows the bot to “trail” a price downward if it is not yet done dropping, to try and buy the coin at the lowest possible price it can. This action is why you sometimes don’t see the bot buy immediately when a price is below the LOWBB setting by your DEFAULT_A_buy_value percentage. Sometimes, it buys at a really low price for you, yaaa! But sometimes, if the price turns back up, it might not buy at all if the price jumps above the DEFAULT_A_buy_value setting. It can be confusing, but it is working in your favor.

(Important note: There are several other settings detailed in the sections below that will cause the bot to filter out certain purchases that might meet the price triggers. These include: having enough volume, having a small enough spread, having too many pairs already bought but not sold beyond your max pairs setting, etc. Be sure to read and understand how these settings affect the buying below.)

Understanding this basic concept of how the buy strategy and DEFAULT_A_buy_value work together, will help you conquer the crypto markets!

DCA BUYING

But wait, there's more! PT has a buying strategy that helps you if your coin purchase begins to drop in value. It is called Dollar Cost Averaging or DCA for short, and will buy more coins for you as the price drops in order to lower the average price that you must meet in order to sell for a profit, or to prevent a loss.

DCA is detailed in the DCA.properties section, but there are a couple of basic concepts to understand here.

DEFAULT_DCA_enabled

The first thing to understand is that you can turn DCA on in the Pairs file with the DEFAULT_DCA_enabled = true setting, or you can also use a percentage drop at which to send the pairs to the DCA log using DEFAULT_DCA_enabled = -2 (send the coins to DCA when they drop 2% in price), or turn it off with “false”. It is probably best to turn it off at first.

When you turn it on, you need to understand that DCA can eat up a lot of your balance in a hurry if you have bought coins at too high a price and they begin to drop in value.

The amount of the coin being purchased in each DCA cycle can be set for each subsequent purchase using DCA level specific settings! By default the amount of coin to be purchased (DEFAULT_DCA_buy_percentage) is normally 100% of the current amount of the coin you hold. DCA purchasing can use a large amount of your balance very quickly, so you need to understand how to use and control it.

Example. If you have bought 0.002 BTC worth of ETH, and you let it DCA, the bot will purchase the following amounts, assuming that you have it set to buy 100% each time:

Initial Balance is 0.002,
1st DCA = 0.002, Total = 0.004 BTC
2nd DCA = 0.004, Total = 0.008 BTC
3rd DCA = 0.008, Total = 0.016 BTC
4th DCA = 0.016, Total = 0.032 BTC
5th DCA = 0.032, Total = 0.064 BTC
6TH DCA = 0.064, Total = 0.128 BTC

As you can see, within 6 purchases you went from a 0.002 initial buy to a 0.128 holding in a coin that is clearly still down below your purchase price. Be sure to read the DCA.properties wiki entry and use the settings that are there to limit how much DCA can use of your balance (max_cost, max_buy_times).

That said, it is a very effective tool to help you clear out your bags if you set it up properly, so don't be afraid of it, but be very wary!

Your goal in DCA is to get the average purchase price of the coin lower, so that when the price begins to go up, you reach a profitable price faster so that you can get rid of the coin without a loss. To do this, some people create very loose or aggressive buy settings so that the bot will buy fast if the coin is dropping. Others believe it is better to wait for the coin to drop and then stabilize before buying. There is not a lot of definitive data on which way works better, so experiment and research this topic before deciding on a strategy.

For more advanced information on DCA buying see DCA Buying


UNDERSTANDING THE SELL

The sell is just like the buy, and like the buy, can happen in two places: the Pairs side of the bot, and in the DCA side. The sell is driven by default, with a simple GAIN strategy. If you want to try to get more profit from your sells, you can use multiple strategies coupled together to try to ensure the price of the coin is at a true “high” point before selling. Remember that with multiple strategies for selling, if you choose to not use GAIN as a sell strategy, your sell settings could potentially sell the coins for a loss! It's probably best at the start if you use GAIN as one of the sell strategies and set the minimum % profit gain.

If however you are using multiple strategies, like GAIN, HIGHBB and RSI together, then all 3 of those strategies must evaluate to true before the bot will begin to try to sell. The exception to this is the default_sell_strategy_formula which will use any valid combination of strategies that must evaluate as true. Then, if you are also using trailing_profit settings, the bot will begin to trail instead of simply selling.
Note: If you do not use GAIN as a sell strategy, you cannot use trailing profit settings.

PAIRS SELLING

DEFAULT_A_sell_value

For the strategy being used, this is the value to be used for the comparison to see if the strategy is true or not.

For example, with the GAIN strategy, this is the amount of profit you wish to see before the bot turns this strategy true. It is true when the price of the coin exceeds the bought price average by the amount indicated. For The actual setting is found in the Pairs config GUI.

Another example would be with RSI, the sell_value property would be the RSI level to attain before the RSI strategy is set to true.

DEFAULT_trailing_profit

But, there is a twist! Before executing the sell, the DEFAULT_trailing_profit setting will attempt to allow the bot to work the price upward if it is still going up before it sells. Like the DEFAULT_A_trailing_buy setting above, the profit setting tries to maximize your gains. You can read a Trailing scenario here in A Trailing Story.
Note: If you do not use GAIN as a sell strategy, you cannot use trailing profit settings.

DCA SELLING

Selling in DCA is similar to selling in Pairs. It can use any combination of valid strategies, and has the normal sell parameters already discussed in Pairs. Remember, they can be set differently than what you have in Pairs, and probably should be different.

Example - when you have a coin that has gone down in value, it is often wise to set the sell_value to a lower value than for a coin that you bought and never went down in price and thus never entered DCA. A coin that has been held at a loss is tying up your balance, and is not making you money. You may wish to get out of it quickly and at a lower profit margin than a purchase that is skyrocketing.

Remember: Your goal is NOT to make the highest profit on each trade. On the contrary, your goal is to NOT lose money in trading. If you can do that, then you win the game.


TOP

Why is my bot not buying? Why won't it sell? Why are there things in my Possible Buy Log (PBL), but it's not buying? Why is my PBL empty?

The PBL is populated based on several settings in your Pairs config GUI and Indicators config GUI. One of the main factors in buying is:

Your Balance or your TCV (Total Current Value)

A zero or too low of a balance in your exchange and/or a TCV of zero will cause the coins in the PBL to display INSUFFICIENT BALANCE below the buy settings. Additionally, if your balance is lower than your DEFAULT_initial_cost setting for the Pairs config GUI, or the DEFAULT_DCA_max_cost setting in your DCA config GUI, then the bot won't be able to buy.

Other factors that affect the buying activity are broken down by file:


Pairs Configuration:

Settings that affect buying:

DEFAULT_trading_enabled = true

If this is “false” the bot will not populate the PBL


DEFAULT_sell_only_mode = false

If this is “true” the bot will populate the PBL but the coin will show a SOM underneath its buy settings.


max_trading_pairs

If the coin pairs in the Pairs log + the DCA log = max_trading_pairs, then all PBL pairs will show MAX PAIRS under the buy settings, if you want to buy more pairs increase this number.


DEFAULT_min_buy_volume = 500

If the volume in the base currency that you are using to trade (e.g. BTC, or USDT) is below the amount you set, the pair will not be included in the PBL. This keeps you from buying coins that are hard to get rid of when the price is fluctuating wildly due to low trading volume. You can't sell a coin if there is no one on the other side to buy it at your desired price. Having very low volume makes that problem more severe.


DEFAULT_min_buy_price = 0.00000500

If the price of the pair is below this minimum price, the pair will not be included in the PBL.

TOP


How different BUY strategy settings affect the PBL

Understanding the PBL (Possible Buy Log) and how different buy strategies affect it is key to understanding the bot.
Follow this link for detailed explanations of all possible strategies.
Click Here for Buy and Sell Strategy Explanations

TOP


How Indicators Configuration affect the PBL

The following settings affect the PBL:

All of the items in the indicators config GUI affect the PBL. As you change the settings, they either make the reactions of the bot more or less aggressive. Basically, the longer the period, or the length, or the amount of time for the signal settings, the less aggressive/more conservative the bot will be. The opposite is true when the settings are shorter - the bot will calculate values with more volatility and thus the bot will react more aggressively.

Smoother is better, but there are recommended settings that are the “sweet” spot for most of these strategies. If you are not sure, use the default. Looking up these strategies on the popular investing education websites will normally discuss in much better detail how to change the length of these settings in different situations.

Look to sites like Investopedia.com, StockCharts.com, and BabyPips.com for good guidance. Many others exist as well.

TOP

Enter your comment:
146 +13 = 
 
  • buy_and_sell_logic.txt
  • Last modified: 9 days ago
  • by armchairguru