Skip to content

Configuration

Rose Heart edited this page Jul 7, 2023 · 34 revisions

Configuration

Before Jackrabbit Relay is ready to run, it needs to be configured.

Configuration files

Location and file names

This would be placed in a folder called /home/JackrabbitRelay2/Config/ and named something like ftxus.cfg. This file would be the configuration for the FTX.US exchange.

In general, exchange/broker names follow this convention:

The name of each file is [exchangename].cfg where [exchangename] is the lowercase representation of your exchange/broker. In this context, an exchange and a broker are one in the same, even though there are distinct differences in methodolog of functionality. See the Exchanges.

File contents

The Jackrabbit Relay configuration files contain JSON-based text. Here is an simple example:

{ "Framework":"ccxt","Account":"MAIN","Market":"Spot","API":"YourAPI","SECRET":"YourSecret","RateLimit":"200","MaxAssets":"7" }

IMPORTANT: Because a(n) exchange/broker may support multiple accounts, or subaccounts, each configuration MUST be on a sinle line within the configuration file.

A Jackrabbit Relay echange/broker config file can be quite elaborate, based upon your needs. Here is a complete list of all of the configuration items available:

Property Name Description
Framework This specifies which internal engine to use when processing an order for this exchange/broker. It specifically tells Jackrabbit Relay how to talk to your exchange/broker and IS required. Cryptocurrencies currently use ccxt. OANDA uses oanda.
Account Every exchange/broker has at least one account. Some exchanges/brokers support sub-accounts as well. For your primary or first account, the name MUST be MAIN, case sensitive.
API Your API key exactly as your exchange/broker gives it to you. Do NOT give this out to anyone.
SECRET Your SECRET key exactly as your exchange gives it to you. This may also be called a bearer token (OANDA). Do NOT give this our to anyone.
Passphrase This is only required for exchanges that use passphrases, such as KuCoin. Do NOT give this out to anyone.
Market The market type you are trading on this account, for example: spot or future. Be sure to check supported cryptocurrency exchanges for wwhat is supported by YOUR exchange.
RateLimit This is the amount Relay waits between each exchange API call.
ALL EXCHANGES HAVE RATE LIMIT REQUIREMENTS.
This value represent milliseconds. 1000 is one second. If you leave this out, chances are you will be banned from your exchange, most likely temporarily. You will have to tweak this number based upon your exchange/broker.
MaxAssets This is the maximum number of assets that can be traded simultaneously.
ReduceOnly This tells the exchange NOT to flip a position from long to short or vice-versa.
It can have any value as its presence is only required.
OrderTypeOverride This overrides the specified order type and applies to ALL orders on this account.
Reduction The amount to reduce your position to all your exchange to close it.
This is a percentage. Do NOT put a percent (%) sign. Use this ONLY if you receive errors closing a position. Finding the amount of the reduction is strictly trial and error.
Spread This evaluate the difference between the bid and ask prices. Trades are only places if the spread is under this value
Sandbox Any value accepted as its presence activates an exchange's/broker's testnet or sandbox mode or demo account.
OverridePCTtable Overrides the PCT table and forces a balance percentage based upon the immediate current balance of the account for all orders on this exchange.
RemapSymbol For use with the TradingView {{ticker}} macro. All orders for this account are remapped.
CloseOnSell For use with the TradingView, particulatly strategies. Closes the enire position of a sell action.
Orphan Any value accepted as its presence tells Jackrabbit Relay to use Oliver Twist to manage and track limit orders. This applies to ALL limit orders on this account.
Conditional Designates all order on this account are conditional. Any value is accepted as its presence is all that matters.
ConditionalOneShot conditional orders are allowed only ONE position. Subsequent purchases are ignored. This applies to all trading on this (sub)account.
ConditionalRepurchase Special case situation for cryptocurrency exchanges ONLY. In the event the you do not have enough to fullfil an order requirement (from previous trades), this tells Oliver Twist to repurchase the amount at a better price then the original desired position. This technique is HIGH RISK and should be tested carefully.
NoLedger For exchanges that produce known errors (ByBit) when trying to write ledger entries, this disables the ledger section.
Webhook Many functions backfeed into Jackrabbit Relay for efficiency. This is usually the local host (127.0.0.1)and the port Jackrabbit Relay is running on.
Identity This is this account's identity string. This MUST be the same for all accounts of the same name. It is optional and WILL override the main identity string in Identity.cfg. If you use an account identity, be sure to use in in your order payload as well for that account reference.
Diagnostics Turn on diagnostics for extended logging. Jackrabbit Relay will become a chattering magpie and log files will grow dramatically.

Order types

Property Name Description
Market Market order. You will pay taker fees
Limit Limit order. Exchange decides what you pay (maker/taker). Unlike market orders, limit order have a high rate of failure.
LimitTaker Limit order. You pay taker fee, This is a fill or kill order, usful only on some crypto exchanges.
LimitMaker Limit order. You pay maker fee. Mat or may not be respected by a given exchange. Some exchanges only allow 25% of your orders to be maker orders.

Examples for the CCXT framework

Note: KuCoin requires a passphrase as well. It is case sensitive and must be EXACTLY as you gave it to KuCoin (/home/JackrabbitRelay2/Config/kucoin.cfg). Here is an example:

{  "Framework":"ccxt","Account":"MAIN","API":"YourAPI","SECRET":"YourSecret","Passphrase":"YourPassphrase","RateLimit":"1000","MaxAssets":"7","ReduceOnly":"Yes", "Orphan":"Yes","RemapSymbol":"Yes","Webhook":"http://127.0.0.1:12345" }

Jackrabbit Relay supports multiple API keys per exchange (sub)account. This is accomplished by this format:

{ "Framework":"ccxt","Account":"MAIN","API 1":"YourAPI","SECRET 1":"YourSecret","RateLimit":"200" }
{ "Framework":"ccxt","Account":"MAIN","API 2":"YourAPI","SECRET 2":"YourSecret","RateLimit":"200" }

The above means the your MAIN account has two API/SECRET combinations that Relay will rotate between. You can have as many (sub)account API/SECRETs as your exchange will allow. Jackrabbit Relay automatically supports and uses API rotation where allowed.

Examples for the OANDA framework

Please be sure to watch this brief overview of OANDA.

The OANDA brokerage is unique in that the bearer-token or API must be recreated with each new subaccount you add to your broker's account list. Also, there is NO secret key with OANDA. The API applies to ALL (sub)accounts. Please pay particular attention to your AccountID as it will be diffent for each (sub)account.

# Demo accounts

# Short positions - Aggressive
{ "Framework":"oanda","RateLimit":"20","Sandbox":"Yes","Account":"LemonMeringue","AccountID":"001-001-1234567489-001","API":"Bearer-Token","Webhook":"http://127.0.0.1:7890" }

# Long positions - Aggressive
{ "Framework":"oanda","RateLimit":"20","Sandbox":"Yes","Account":"StrawberryDelight","AccountID":"001-001-123456789-002","API":"Bearer-Token","Webhook":"http://127.0.0.1:7890" }

# Short positions - Defensive
{ "Framework":"oanda","RateLimit":"20","Sandbox":"Yes","Account":"FrenchVanilla","AccountID":"001-001-123456789-003","API":"Bearer-Token","Webhook":"http://127.0.0.1:7890" }

# Long positions - Defensive
{ "Framework":"oanda","RateLimit":"20","Sandbox":"Yes","Account":"BlueberryCobbler","AccountID":"001-001-123456789-004","API":"Bearer-Token","Webhook":"http://127.0.0.1:7890" }

# OANDA live account

# Short positions
{ "Framework":"oanda","RateLimit":"20","Account":"CherryBlossom","AccountID":"001-001-123456789-001","API":"Bearer-Token","Webhook":"http://127.0.0.1:7890" }

# Long positions
{ "Framework":"oanda","RateLimit":"20","Account":"Cheesecake","AccountID":"001-001-123456789-002","API":"Bearer-Token","Webhook":"http://127.0.0.1:7890" }

Please be aware the 20 milliseconds is the lowest ratelimit you can use without getting your orders throttled. The webhook MUST match YOUR system setup.

RAPMD Crypto: Automated algorithmic trading done right

Jackrabbit support server

JSON Validator

Frequency Weighted OrderBook Analysis

Advanced Research

Introduction

Jackrabbit Relay
Introduction
Risks
Disclaimer
Notes
Video
Supported Exchanges/Brokers
Security and firewall
Installation
Updating
Configuration files
Live Trading


Installation-and-Setup

Installation/Setup
Requirements
Stopping Version 1
Installing and setting up Version 2
Configuration
Reboot startup
Manual startup


Identity

Identity


Configuration

Configuration
Configuration files
Location and file names
File contents
Order types
Examples for the CCXT framework
Examples for the OANDA framework


Orders

JackrabbitRelay Order Payloads
Payload Synopsis
Order Types
Actions
Examples


Conditional Orders

JackrabbitRelay Order Payloads
Oliver Twist: Jackrabbit Relay conditional and orphan order manager
Unveiling Oliver Twist's Conditional Methodology
Managing Orphan Orders: The Limit-Only Approach
The Literary Significance of "Oliver Twist"


Supported-Exchanges-and-Brokers

Supported Exchanges/Brokers
Forex Brokers
Confirmed working brokers
Cryptocurrency Exchanges
Confirmed working exchanges
Theoretically supported


Known-Issues

Known Issues
Closing a position fails
BitMex
Phemex
ByBit
Python 3.10
Kucoin Futures/TradingView


Virtual-Exchange-Broker-DSR

DSR (Duplicate Signal Remover)
Log Files


Jackrabbit-Mimic

Jackrabbit Mimic
Introduction
Usage
Data Source Integration
Simple Setup Process
Understanding Differences
Educational Focus
Setup and Configuration
Wallets and history
How cryptocurrency wallets work
Long positions
Short positions
Alert/Signal messages
Long positions
Short positions
Supporting Jackrabbit Mimic


Logs

Logs
Files
JackrabbitRelay
PlaceOrder


Testing-TradingView-connection

Testing TradingView connection
Testing method
Setup
DSR Testing
Force feeding payloads
Next Steps


Step-by-step guide to live trading with TradingView

Step-by-step guide to live trading with TradingView
Walk Through
Strategy Differences


Additional Programs

Additional Programs


Roadmap

Roadmap
Finished
In Progress
Future Plans


Supporting-Jackrabbit

Supporting Jackrabbit and it's future development
Current patrons and subscribers
The cost of open source
Supporting

Terms-and-Definitions

Terms and Definitions

Clone this wiki locally