Trading Bot for LNMarkets
Project description
LNMarkets Trading Bot
A trading bot for LNMarkets, using the LNMarkets API in Python.
To install: pip install LNMarketBot
An abstract class LNMarketBot.Strategy
is provided, which must be extended with implementation of LNMarketBot.Strategy.init()
, LNMarketBot.Strategy.execute()
, and LNMarketBot.Strategy.stop()
methods. The init()
method will be called only once, before the bot starts processing price information, while execute()
is called repetedly, for every new price bar that bot recieves. Any parameters required by the strategy, can be passed during instantiation, and will be accessible using LNMarketBot.Strategy.params
dictionary. Example strategies are provided in LNMarketBot/Examples/ on github.
The price information is obtained from Kraken, using Pykrakenapi, as the methods for same are currently not working for LNMarkets API. This may result in price discrepancy between strategy and broker execution. The price bars are of 1 minute duration, and at present, only supplied for last 12 hours. You can also provide csv files containing price information for backtesting (see examples). A strategy can consume data from multiple data feeds, and bot can process multiple strategies simultaneously.
Bot interacts with LNMarkets through LNMarketBot.LNMBroker
class, which provides methods for buying/selling, as well as properties for viewing opne/closed positions, balance, etc. If backtesting, the strategy connects to LNMarketBot.BacktestBroker
class instead.
You can enable Telegram or Pushover notifications through LNMarketBot.Notifier
, which provides methods enableTelegram(chatID, token) and enablePushover(userkey, APIkey) for the same. A notifier instance is added to broker on instantiation and access via broker.notifier
and all position updates through broker will automatically be notified. If you want to disable the automatic notification, instantiate broker with silent=False
.
Example Usage:
from LNMarketBot import Strategy, LNMBroker, KrakenData, Bot
LNMToken = '<YOUR TOKEN>'
broker = LNMBroker(LNMToken, <Starting Balance>)
telegramToken = '<Telegram Bot Token>'
chatId = <Your Chat Id with Telegram Bot>
broker.notifier.enableTelegram(chatID = chatId, token = telegramToken)
#LowestPriceStrat is provided in LNMarketBot/Examples/ on git
strategy = LowestPriceStrat(
broker=broker,
BollingerPeriod=20, Deviation=2.0,
AveragePeriod=240,
StopMargin=0.02,
BuyLimit=1.05,
TradeDistance=0.1,
RiskPercent=0.01,
TrailPercent=0.1,
CashLimit=1.0e06,
)
strategy.addData(KrakenData())
bot = Bot()
bot.addStrategy(strategy)
bot.run()
Note:
- LNMarket token needs only 'positions' scope. This ensures leaking it cannot result in loss of funds through withdrawal.
- This project is under development and not well tested. You are advised to review the code if you plan to use it for trading.
- The author is not responsible for any loss that may result from use of this project.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file LNMarketBot-0.3.6.tar.gz
.
File metadata
- Download URL: LNMarketBot-0.3.6.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.7.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a10a6d66c96e35a4423b5559c0c52d0203973edd293093f97674c2c5cf817881 |
|
MD5 | 4aed02b17825cf614adc58a894b4ee23 |
|
BLAKE2b-256 | 50bebd8cbf09f2e353dbb36fe37da95228f3cd6257358c2be3d4e64632aba36e |
File details
Details for the file LNMarketBot-0.3.6-py3-none-any.whl
.
File metadata
- Download URL: LNMarketBot-0.3.6-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.7.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b62547dd0d359dd63cef4107705a85f294850f160d6a817fec7a17cfe324c6dc |
|
MD5 | 4faf96e3f28e6f1e4de4d525a055502d |
|
BLAKE2b-256 | 3c13364cc8a057b1bd00b2645edf6d94d3e472772a5d2df02ee7258f61334be3 |