-
Notifications
You must be signed in to change notification settings - Fork 551
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
See release notes.
- Loading branch information
Showing
356 changed files
with
14,405 additions
and
5,528 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
119 changes: 119 additions & 0 deletions
119
examples/live/binance/binance_spot_orderbook_imbalance_rust.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
#!/usr/bin/env python3 | ||
# ------------------------------------------------------------------------------------------------- | ||
# Copyright (C) 2015-2024 Nautech Systems Pty Ltd. All rights reserved. | ||
# https://nautechsystems.io | ||
# | ||
# Licensed under the GNU Lesser General Public License Version 3.0 (the "License"); | ||
# You may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at https://www.gnu.org/licenses/lgpl-3.0.en.html | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# ------------------------------------------------------------------------------------------------- | ||
|
||
from decimal import Decimal | ||
|
||
from nautilus_trader.adapters.binance.common.enums import BinanceAccountType | ||
from nautilus_trader.adapters.binance.config import BinanceDataClientConfig | ||
from nautilus_trader.adapters.binance.config import BinanceExecClientConfig | ||
from nautilus_trader.adapters.binance.factories import BinanceLiveDataClientFactory | ||
from nautilus_trader.adapters.binance.factories import BinanceLiveExecClientFactory | ||
from nautilus_trader.config import CacheConfig | ||
from nautilus_trader.config import InstrumentProviderConfig | ||
from nautilus_trader.config import LiveExecEngineConfig | ||
from nautilus_trader.config import LoggingConfig | ||
from nautilus_trader.config import TradingNodeConfig | ||
from nautilus_trader.examples.strategies.orderbook_imbalance_rust import OrderBookImbalance | ||
from nautilus_trader.examples.strategies.orderbook_imbalance_rust import OrderBookImbalanceConfig | ||
from nautilus_trader.live.node import TradingNode | ||
from nautilus_trader.model.identifiers import InstrumentId | ||
from nautilus_trader.model.identifiers import TraderId | ||
|
||
|
||
# *** THIS IS A TEST STRATEGY WITH NO ALPHA ADVANTAGE WHATSOEVER. *** | ||
# *** IT IS NOT INTENDED TO BE USED TO TRADE LIVE WITH REAL MONEY. *** | ||
|
||
|
||
# Configure the trading node | ||
config_node = TradingNodeConfig( | ||
trader_id=TraderId("TESTER-001"), | ||
logging=LoggingConfig( | ||
log_level="INFO", | ||
# log_level_file="DEBUG", | ||
# log_file_format="json", | ||
), | ||
exec_engine=LiveExecEngineConfig( | ||
reconciliation=True, | ||
reconciliation_lookback_mins=1440, | ||
filter_position_reports=True, | ||
), | ||
cache=CacheConfig( | ||
database=None, | ||
timestamps_as_iso8601=True, | ||
flush_on_start=False, | ||
), | ||
# snapshot_orders=True, | ||
# snapshot_positions=True, | ||
# snapshot_positions_interval=5.0, | ||
data_clients={ | ||
"BINANCE": BinanceDataClientConfig( | ||
api_key=None, # 'BINANCE_API_KEY' env var | ||
api_secret=None, # 'BINANCE_API_SECRET' env var | ||
account_type=BinanceAccountType.SPOT, | ||
base_url_http=None, # Override with custom endpoint | ||
base_url_ws=None, # Override with custom endpoint | ||
us=False, # If client is for Binance US | ||
testnet=False, # If client uses the testnet | ||
instrument_provider=InstrumentProviderConfig(load_all=True), | ||
), | ||
}, | ||
exec_clients={ | ||
"BINANCE": BinanceExecClientConfig( | ||
api_key=None, # 'BINANCE_API_KEY' env var | ||
api_secret=None, # 'BINANCE_API_SECRET' env var | ||
account_type=BinanceAccountType.SPOT, | ||
base_url_http=None, # Override with custom endpoint | ||
base_url_ws=None, # Override with custom endpoint | ||
us=False, # If client is for Binance US | ||
testnet=False, # If client uses the testnet | ||
instrument_provider=InstrumentProviderConfig(load_all=True), | ||
), | ||
}, | ||
timeout_connection=20.0, | ||
timeout_reconciliation=10.0, | ||
timeout_portfolio=10.0, | ||
timeout_disconnection=10.0, | ||
timeout_post_stop=5.0, | ||
) | ||
|
||
# Instantiate the node with a configuration | ||
node = TradingNode(config=config_node) | ||
|
||
# Configure your strategy | ||
strat_config = OrderBookImbalanceConfig( | ||
instrument_id=InstrumentId.from_str("ETHUSDT.BINANCE"), | ||
external_order_claims=[InstrumentId.from_str("ETHUSDT.BINANCE")], | ||
max_trade_size=Decimal("0.010"), | ||
) | ||
|
||
# Instantiate your strategy | ||
strategy = OrderBookImbalance(config=strat_config) | ||
|
||
# Add your strategies and modules | ||
node.trader.add_strategy(strategy) | ||
|
||
# Register your client factories with the node (can take user defined factories) | ||
node.add_data_client_factory("BINANCE", BinanceLiveDataClientFactory) | ||
node.add_exec_client_factory("BINANCE", BinanceLiveExecClientFactory) | ||
node.build() | ||
|
||
|
||
# Stop and dispose of the node with SIGINT/CTRL+C | ||
if __name__ == "__main__": | ||
try: | ||
node.run() | ||
finally: | ||
node.dispose() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.