-
-
Notifications
You must be signed in to change notification settings - Fork 21
Configuration
Before Jackrabbit Relay is ready to run, it needs to be configured.
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.
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. |
NoLiquidation |
For Mimic only. This sets Mimic wallets to spot only where liquidation won't occur, but simply error with 'not enough balance' |
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. |
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.
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.
Please note that Jackrabbit Relay is not related to the Apache Jackrabbit project. Jackrabbit Relay is a standalone framework and API delivery system for automated algorithmic trading, designed for relaying JSON payloads that contain buy/sell order information between different systems (Charting software, forex brokers, cryptocrrency exchanges using REST). It is developed by Robert Darin and is not affiliated with or endorsed by the Apache Software Foundation or the Apache Jackrabbit project.
If you would like to help support this project financially, please click on the heart shaped sponsor's button in the right column of this page. I also have a merch store with some awesome and really cool products. Please visit supporting Jackrabbit for more options.
All subscriptions/sales go to the costs of sustaining Jackrabbit Relay. Thank you.
RAPMD Crypto: Automated algorithmic trading done right
Frequency Weighted OrderBook Analysis
Introduction
Jackrabbit Relay
Introduction
Risks
Disclaimer
Notes
Video
Supported Exchanges/Brokers
Security and firewall
Installation
Updating
Configuration files
Live Trading
Installation-and-Setup
Creating a Virtual Environment
Installation/Setup
Requirements
Stopping Version 1
Installing and setting up Version 2
Configuration
Reboot startup
Manual startup
Configuration
Configuration
Configuration files
Location and file names
File contents
Order types
Examples for the CCXT framework
Examples for the OANDA framework
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
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
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