Need Package Maintenance

    guanaco
    TypeScript icon, indicating that this package has built-in type declarations

    0.0.4 • Public • Published

    Guanaco

    A cute and cuddly cryptocurrency quant trading engine in TypeScript.

    The guanaco (Lama guanicoe) (from Quechua "Wanaku", via Spanish) is a camelid native to South America, closely related to the llama. Its name comes from the Quechua word huanaco (modern spelling wanaku). - Wikipedia

    ✨ Features

    • Live, schedule-based trading
    • Algorithm backtesting
    • Same source code for all clients
    • ... and many more to come!

    📦 Installation

    npm install --save guanaco
    

    or

    yarn add guanaco
    

    ✅ It's Easy AF

    Live Trading Example with Gemini

    1. yarn add gaunaco
    2. Paste and start trading like a badass.
    import { GeminiClient, Scheduler } from 'guanaco'
    
    const geminiClient = GeminiClient({
        key: 'my-key',
        secret: 'my-secret'
    })
    
    let lastPrice = 0
    
    // Schedule every hour
    Scheduler.hourInterval(() => {
        geminiClient.info('btcusd').then((info) => {
            // Not-so-great strategy here
            const change = (info.ticker.last - lastPrice)/lastPrice
            if (change > 0.05) {
                geminiClient.sell('btcusd', 20, 50)
            }
            lastPrice = info.ticker.last
        })
    }, 1)
    

    🕗 Backtesting Example

    1. yarn add gaunaco
    2. Determine your start date and interval of trading.
    3. Run your algorithm with the starting portfolio of your choice (here, we start with $2400).
    4. Asynchronously get your results!
    import { Backtester, BacktestClient, BacktestClientPortfolio, BacktestInterval, OrderType } from '../../src';
    
    const lastMonth = new Date(2019, 7, 30)
    const backtestInterval = BacktestInterval.ONE_DAY
    
    let backtester = new Backtester(lastMonth, backtestInterval)
    
    let lastAskPrice = null
    backtester.run({ usd: 2400 }, (client:BacktestClient) => {
        const info = client.info('btcusd')
        if (lastAskPrice && lastAskPrice > info.ticker.ask) {
            client.buy('btcusd', 0.25, info.ticker.ask, OrderType.MARKET)
            lastAskPrice = info.ticker.ask
        }
    }).then((result) => {
        console.log(`We earned ${result.usd!}!`)
    })
    

    💸 Supported Clients

    Current

    Future

    👫 Collaboration

    If you're interested in collaborating and adding onto the available clients and functionality, please feel free to submit pull requests.

    📝 Authors

    Anthony Krivonos - Portfolio | GitHub

    Install

    npm i guanaco

    DownloadsWeekly Downloads

    6

    Version

    0.0.4

    License

    MIT

    Unpacked Size

    88.2 kB

    Total Files

    104

    Last publish

    Collaborators

    • anthonykrivonos