Skip to main content

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() and LNMarketBot.Strategy.execute() 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. An example strategy is provided in LNMarketBot/Examples/LowestPriceStrat.py 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.

Bot interacts with LNMarkets through LNMarketBot.Broker class, which provides methods for buying/selling, as well as properties for viewing opne/closed positions, balance, etc.

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:

import LNMarketBot

LNMToken = '<YOUR TOKEN>'
broker = LNMarketBot.Broker(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,
)

bot = LNMarketBot.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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

LNMarketBot-0.1.0.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

LNMarketBot-0.1.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file LNMarketBot-0.1.0.tar.gz.

File metadata

  • Download URL: LNMarketBot-0.1.0.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4

File hashes

Hashes for LNMarketBot-0.1.0.tar.gz
Algorithm Hash digest
SHA256 115bd7dfb0be6bd96e85fa103b7b1b41f5c7dc459d0e0632471db329070c52ce
MD5 8179b641f9e0dc2365004adc6b23f446
BLAKE2b-256 8640588f0083dbac335c01cbf939eaabcf9da41f5a2b9ec5925acf493b791fd4

See more details on using hashes here.

File details

Details for the file LNMarketBot-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: LNMarketBot-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4

File hashes

Hashes for LNMarketBot-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 224d0c200041c1043f67bf580bfa49d9fee55f9b58e96c0a725a64daf5efc391
MD5 7127a473793b7347007e31f0ad8c0931
BLAKE2b-256 5bf17aa42fff6a59421821189b3d39ad81286a59e47a7f25b2f0036b1e9535f9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page