BitFox
Multi Exchange Crypto Currency Trading Bot
&
Data Analysis Library and Strategy Back testing Engine
BitFox is a comprehensive multi-exchange trading bot library and data analysis tool, with a powerful strategy back testing engine. It provides quick access to market data for storage, analysis, visualization, indicator development, algorithmic trading, strategy backtesting, bot programming, and related software engineering.
It is intended to be used by coders, developers, technically-skilled traders, data-scientists and financial analysts for building trading algorithms.
Warning
This application is under heavy development and in beta nothing has been tested. Use this tool and library at your own risk!
Support BitFox Development
Bitcoin address: bc1qs6rvwnx0wlrqlncm90kk7mu0xs6980t85avfll
Current feature list:
- support for many cryptocurrency exchanges
- fully implemented public and private APIs
- Integrated BackTesting Engine
- Flexible Event Handling
- Real Time Trade & Strategy Execution
- Data Analysis & Optimization
- Email Notifications
- Slack Notifications
- Telegram Notifications
Documentation
Installation
$ npm i bitfox@latest
$ npm install -g bitfox@latest
Quick Start
let {BitFoxEngine, Strategy, SuperTrend, builder} = require("bitfox").bitfox;
(async () =>{
// Initialize the Engine
let engine = builder()
.requiredCandles(200)
.sidePreference("long")
.backtest(true)
.pollRate(10)
.public(true)
.exchange("bybit")
.symbol("ADAUSDT")
.timeframe("15m")
.amount(100)
.profitPct(1.03)
.stopLossPct(0.98)
//.fee(1.01)
.key("FAKE_KEY")
.secret("FAKE_SECRET")
.life(false)
.interval(10)
.build();
// Set up the Exchage Client
await engine.setupAndLoadClient()
// Leverage A Strategy from BitFoxes strategy repository
engine.applyStrategy(SuperTrend)
// or Alternatively
let bitfox = require("bitfox");
engine.applyStrategy(bitfox.SuperTrend)
// Set Up Event Handlers
engine.on('onStrategyResponse', (eventArgs) => {
console.log(eventArgs)
});
engine.on('onMessage', (eventArgs) => {
console.log(eventArgs)
});
engine.on('onError', (eventArgs) => {
console.log(eventArgs)
});
engine.on('onOrderPlaced', (eventArgs) => {
console.log(eventArgs)
});
engine.on('onOrderFilled', (eventArgs) => {
console.log(eventArgs)
});
engine.on('onTradeComplete', (eventArgs) => {
console.log(eventArgs)
});
engine.on('onStopLossTriggered', (eventArgs) => {
console.log(eventArgs)
});
// SetUp Custom Event Handler (You need to fire the event yourself BitFox doesn't know about your Custom Event")
engine.on('MyCustomEvent', (eventArgs) => {
console.log(eventArgs)
});
// You could get the Event handler and fire an event by using below code
engine.getEventEmitter().fireEvent("MyCustomEvent", {customEventData:"YourCustomEventData"})
// Start The BitFox Engine
await engine.run();
})();