BETA NOTES

These are the release notes for the public beta of PT Feeder. Please note that there maybe bugs and that PT should be set to test mode whilst testing.

For the lastest release or to report any issues, please see the PT Feeder Beta Github (opens new window)

# Upgrade instructions

Upgrade instructions

  1. Backup your exiting PT Feeder directory so you can revert to it if needs be. Then install the beta as normal in a new directory.
  2. Upgrade to dotnet core to 2.1 as per the Microsoft site (opens new window)
  3. In your appsettings, change your time trends to the new syntax, e.g "MeasureTimes": [ 120, 360, 720 ], as described here
  4. In your appsettings, if you use PT Feeder to calculate your trailings, you will need to add DcaMaxTrailingBuy, DcaMinTrailingBuy, DcaMaxTrailingProfit and DcaMinTrailingProfit in the PtFeeder section. More info here
  5. If you have any SellOnlyModeEnabled outside of an override group in your appsettings, you will need to move it in one. For an example, see here
  6. In hostsettings.json, you will need to add ProfitTrailerServerApiToken1. More information on this can be seen here
  7. Delete ptfeeder.db in the database directory if you have one.

# PT Feeder 1.7.0 Public Beta 4

pt-feeder-beta-v1.7.0.1375 (opens new window)

# Upgrade instructions

# New PT SaveAll method

For this beta and the 1.7 stable release, the minimum requirement is Profit Trailer 2.1.5. There is a new method for saving config which allows all 3 config files to be saved in one go, rather than in 3 consecutive times.

Note that this is NOT backwards compatible and PT Feeder 1.7 WILL NOT work with Profit Trailer version 2.1.4 and below.

# Added

# BTC Dominance and Market cap

The CMC api is going Pro end of this year. To use the data, you can use the free plan and please add your CMC api key as CoinMarketCapApiKey in your hostsettings.

market.BtcDominance
market.TotalMarketCap

# Add pending order details to the position object.

positions.TotalPendingCurrentValue
positions.TotalPendingBoughtCost

pair.PendingBoughtCost 
pair.PendingValue 
pair.PendingCount 

# Changes

  • Ability to use different time periods like the other indicators for VWMA.

If you do not need this indicator and would like to remove the warnings, add this in your appsettings file:

    "VwmaLength": "1",
    "VwmaLookBackPeriod":  "1" 
  • All supported Binance candle periods added.
  • PT log data added to comments
  • Comments always written in ptf-generated-files regardless of if they are sent to the PT api or not.
  • Warnings on incorrect custom conditions on startup

# Other fixes

  • SOM Only list not working correctly
  • Fix MACD
  • Sticky timer fix
  • Other small fixes

# PT Feeder 1.7.0 Public Beta 3

pt-feeder-beta-v1.7.0.1252 (opens new window)

# Added

# Reduced comments

On some occasions, the PT Feeder config file is too large for Profit Trailer. This can be avoided by reducing the comments in the config. To do this, add this to your hostsettings.json file:

"PrintPairComments" : "false",

By default, comments are included in your settings file.

# Other fixes

  • SOM Only list not working correctly

# PT Feeder 1.7.0 Public Beta 2

pt-feeder-beta-v1.7.0.1246 (opens new window)

# Added

# Sticky Timer

For market conditions or any grouping, a property is added so this grouping says valid for period of time, regardless of if the condition changes. To use this feature, add a new property to the config called StickyTimer like so, for example:

 {
        "Name": "Boring",
        "StickyTimer": "250",
        "MaxTopCoinAverageChange": "2.5",
  },

The value for StickyTimer is in minutes.

# Removed

  • Profit Trailer version 1 compatiblity removed.

# Other fixes

  • Backward compatibility wasn't working so market conditions could not be found.

# PT Feeder 1.7.0 Public Beta 1

pt-feeder-beta-v1.7.0.1232 (opens new window)

This next version contains numerous feature requests by power users and there are a lot of new toys. The majority of the below are all OPTIONAL and do not need to be used if you do not wish to. If you do wish to utilise them, you will need to learn how to use the custom condition syntax in PT Feeder. Popular custom conditions will be built into future releases for ease of use.

# Added

# Dynamic trend windows

It is now possible to add as many time trends as you want. In the PtFeeder section of your appsettings, you NEED to replace all MinutesToMeasure trend with

"MeasureTimes": [ 120, 360, 720 ],

All other sections have backward compatibility.

In custom conditions, you can then use for example:

[pair.PercentageChange(3)] > [config.PriceChangeFor12h]

If you use the Medium/Long in your custom conditions, these will need to be changed:

For example:

There is no MediumVwapChange or LongTopCoinsChange on the market object. There is VwapChange(1), VwapChange(2) or TopCoinsChange(3)

# Grouping Improvements

# Ability to Enable or Disable a grouping for coins

Properties can be added to enable to disable a grouping for certain pairs. By default, all pairs are included:

"WikiExampleGrouping": {
    "Condition": "[market.BaseCoinPriceChange] - [pair.PercentageChange] <= [config.TriggerName] ",
    "EnabledMarkets":   "ETH,ETC,MTL",
    "DisabledMarkets":  "BCC,XRP",
    "Configs": [
      {
        "TriggerName": "-1",
        "Override": {
          "DcaRebuyTimeout": "30",
          "Weight": "100"
        }
      },
    ]
  },

# Ability to ignore offsets

A property can be added on a grouping to ignore offsets in that group.

 "PriceTrendChangeGrouping": {
   "IgnoreOffsets": "true",
    "Configs": [
      {
        "MaxPriceTrendPercentageChange": "-10"
      },

# Default market condition

A market condition can be set as the default, which is the one which is used if for any reason, the market condition cannot be evaluated.

 {
        "Name": "Boring",
        "Default": "true",
        "MaxTopCoinAverageChange": "2.5"
      },

# New Indicators

The following indicators have been added to the market for use in custom conditions:

NEW:

market.CurrentBaseCoinPrice

market.BaseCoinShortSma 
market.BaseCoinLongSma

market.BaseCoinShortEma
market.BaseCoinLongEma

market.BaseCoinHighest
market.BaseCoinLowest

market.HighLowPriceChange

market.BaseCoinRsiLong
market.BaseCoinRsiShort

market.BaseCoinMacd (this is the histogram value)

market.BaseCoinAtrp
market.TopCoinsAtrpAverage

EXISTING:

market.TopCoinsChange,
market.VwapChange,
market.BaseCoinPriceChange,

The following indicators have been added to the pair for use in custom conditions:

NEW:

pair.Atrp

pair.Vwap

pair.Highest
pair.Lowest

pair.ShortSma
pair.LongSma

pair.ShortEma
pair.LongEma

pair.VwmaPercentageChange
pair.AverageCandleBodySize

EXISTING:
pair.DcaEnabled
pair.SellOnlyModeEnabled

pair.BaseCurrency
pair.QuoteCurrency
pair.FirstSeen

pair.Volume // 24 hour volume
pair.LastPrice

pair.PercentageChange 

pair.VolumePercentageChange 

pair.HighLowPercentageChange

pair.HighLowVolumePercentageChange

For each of these indicators, the following indicator properties need to be set in the PtFeeder section of your appsettings (with examples)


    "EmaShortCandleSize": "5m", 
    "EmaLongCandleSize": "5m", 
    "EmaShortPeriod": "13", 
    "EmaLongPeriod": "63",
    
    "SmaShortCandleSize": "5m", 
    "SmaLongCandleSize": "5m",   
    "SmaShortPeriod": "13", 
    "SmaLongPeriod": "63", 
    
    "RsiLongPeriod": "40",
    "RsiShortPeriod": "20",
    "RsiShortCandleSize": "5m",
    "RsiLongCandleSize": "5m",

    "BaseHighLowPriceChangeCandleSize": "5m",
    "HighestCandlesSize": "5m",
    "LowestCandlesSize": "5m",
  
    "VwmaLength": "2",
    "VwmaLookBackPeriod": "2"

Possible candle sizes are 1m, 5m, 15m, 30m, 1h, 2h, 4h, 8h, 12h, 1d, 3d, 1w, 1mon. The supported values depends if your exchange supports those candle periods. If you use a period not supported by your exchange, you will get an error. The more different candle sizes you use, the slower PT Feeder will be in starting up and will consume more memory.

To use different time trends with the any of the above market or pair properties, you use the number of the time window you would like from the MeasureTimes property. For example, if this property is: "MeasureTimes": [ 120, 360, 720, 1000 ], and you would like to use the 1000, your custom condition could look like this:

"Condition": "[market.BaseCoinPriceChange(4)] - [pair.PercentageChange(4)] <= [config.TriggerName] ",

As an example of how this could be used, the below looks at difference between the short SMA and the long SMA of your base coin, BTC for example. If the short is less than the long, then we consider it a bear market.

"MarketConditionsGrouping": {
    "Condition": "[market.BaseCoinShortSma] - [market.BaseCoinLongSma] < [config.SmaDifference]",
    "Configs": [
      {
        "Name": "Bear",
        "SmaDifference": "0"

      },
      {
        "Name": "Bull",
        "SmaDifference": "100000"
      }
    ]
  },

# Previous values available

You can now access the previous values for use in custom conditions to measure change. They are nested up to the 3 previous values.

[pair.PercentageChange] - [pair.Previous.PercentageChange] > [config.ChangeInPricePercentage]

# Position management

  • Create custom conditions based on ProfitTrailer positions. ProfitTrailerServerApiToken1 needs to be added to hostsettings. See ProfitTrailer wiki on how to set this here (opens new window). The object positions is available and it has the following properties:
positions.TotalPairsCurrentValue
positions.TotalDcaCurrentValue
positions.TotalPairsBoughtCost
positions.TotalDcaBoughtCost
positions.PairsBalance
positions.DcaBalance
positions.RealBalance
positions.DcaCoinCount
positions.PairsCoinCount
  • Pair properties also available
pair.DcaCount 
pair.Profit
pair.TotalCost 
pair.FirstBoughtInMinutes

# Custom market conditions

  • Add ability to create a custom MarketCondition grouping config.
Condition: "[market.BaseCoinPriceChange] - [market.TopCoinsChange] < [config.SomePropertyFromConfig]"

# Auto whitelist

Add a new property in the PtFeeder section called:

AutoTopCoinWhitelist as a boolean, default is false.

If this is true, then only the top coins (35 for example if this is the settings) have trading enabled and have config generated. Any other coins in the PT data log, will have SellOnlyModeEnabled as true.

# Override your BaseCurrency

USE AT OWN RISK. This could lead to undesired effect like lost bought prices.

# Kucoin and Huobi

Support for Kucoin and Huobi Profit Trailer bots.

# Changed

# Calculated Trailing improvements

  • Added DcaMaxTrailingBuy/DcaMinTrailingBuy and DcaMaxTrailingProfit/DcaMinTrailingProfit in PT Feeder section.

If a user has TrailingBuy/TrailingProfit and/or DcaTrailingProfit/DcaTrailingBuy in their Defaults section, we assume that they DO NOT want to calculate trailings. They can use a combination this way, so they can have a fixed DcaTrailingProfit but calculate DcaTrailingBuy for example.

# Offset Min/Max trailing buy and profit

Now the boundaries for the calculated trailing buy and profit can be offset like other properties.

# Top coin trend selection

  • Choose which coins you would like your TopCoinTrendChange to be built off. Add TopCoinTrendChangeCoins to your PtFeeder section of appsettings to use this feature.

# PT Feeder candle size

By default, PT Feeder uses 5 min candles. This can be changed by adding the property FeederCandleSize in the PtFeeder section of your appsettings. Possible values are: 1m, 5m, 30m, 1h, 1d. Note to make sure your MeasureTimes correspond or you will get an error. For example, a measure time of 120 mins will NOT work with 1 day candles.

# Seperate pairs and market condition checks

In hostsettings, MarketConditionCheckInMinutes is now how often properties on the pairs are checked and calculated. A new property called MarketIndicatorsCheckInSeconds is how often the market condition and the base coin indicators are checked. Default for this is 10 seconds.

# Other fixes / improvements

  • Added discord messages on startup
  • Comments on pairs/dca config about which conditions were used from your appsettings.
  • Reduce the size of the PT config by condensing the PTF comments and only writing pairs that are not filtered
  • Fix BB Std always rounded up
  • Fix PendingOrderWaitTime converted to decimal value
  • Fix Min/Max trailing not respected on some occasions

# Removed

# Important SellOnlyModeEnabled change

Removed SellOnlyModeEnabled taking precedence. This is prior to having weights and overrides. If you have anything like this in your appsettings:

For example:

 "NewCoinsGrouping": {
    "Configs": [
      {
        "CoinAge": "3",
        "SellOnlyModeEnabled": "true",
        "TimeUnit": "Days"
      }
    ]
  },

Please change it to:

  "NewCoinsGrouping": {
    "Configs": [
      {
        "CoinAge": "3",
        "TimeUnit": "Days",
        "Override": {
          "SellOnlyModeEnabled": "true",
          "Weight":  "300" 
        } 
      }
    ]
  },

# Remove PT Feeder testmode

PT Test mode and paper trading is sufficient. PT Feeder does not need its own test mode.