bitunix-automated-crypto-trading 2.6.7__py3-none-any.whl → 2.6.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. bitunix_automated_crypto_trading/AsyncThreadRunner.py +81 -81
  2. bitunix_automated_crypto_trading/BitunixApi.py +278 -278
  3. bitunix_automated_crypto_trading/BitunixSignal.py +1099 -1099
  4. bitunix_automated_crypto_trading/BitunixWebSocket.py +254 -254
  5. bitunix_automated_crypto_trading/DataFrameHtmlRenderer.py +74 -74
  6. bitunix_automated_crypto_trading/NotificationManager.py +23 -23
  7. bitunix_automated_crypto_trading/ThreadManager.py +68 -68
  8. bitunix_automated_crypto_trading/TickerManager.py +635 -635
  9. bitunix_automated_crypto_trading/bitunix.py +597 -594
  10. bitunix_automated_crypto_trading/config.py +90 -90
  11. bitunix_automated_crypto_trading/logger.py +84 -84
  12. {bitunix_automated_crypto_trading-2.6.7.dist-info → bitunix_automated_crypto_trading-2.6.8.dist-info}/METADATA +36 -36
  13. bitunix_automated_crypto_trading-2.6.8.dist-info/RECORD +17 -0
  14. bitunix_automated_crypto_trading/config.txt +0 -60
  15. bitunix_automated_crypto_trading/sampleenv.txt +0 -5
  16. bitunix_automated_crypto_trading/static/chart.css +0 -28
  17. bitunix_automated_crypto_trading/static/chart.js +0 -362
  18. bitunix_automated_crypto_trading/static/modal.css +0 -68
  19. bitunix_automated_crypto_trading/static/modal.js +0 -147
  20. bitunix_automated_crypto_trading/static/script.js +0 -166
  21. bitunix_automated_crypto_trading/static/styles.css +0 -118
  22. bitunix_automated_crypto_trading/templates/charts.html +0 -98
  23. bitunix_automated_crypto_trading/templates/login.html +0 -19
  24. bitunix_automated_crypto_trading/templates/main.html +0 -551
  25. bitunix_automated_crypto_trading/templates/modal-chart.html +0 -26
  26. bitunix_automated_crypto_trading/templates/modal-config.html +0 -34
  27. bitunix_automated_crypto_trading/templates/modal-logs.html +0 -15
  28. bitunix_automated_crypto_trading-2.6.7.dist-info/RECORD +0 -31
  29. {bitunix_automated_crypto_trading-2.6.7.dist-info → bitunix_automated_crypto_trading-2.6.8.dist-info}/WHEEL +0 -0
  30. {bitunix_automated_crypto_trading-2.6.7.dist-info → bitunix_automated_crypto_trading-2.6.8.dist-info}/entry_points.txt +0 -0
  31. {bitunix_automated_crypto_trading-2.6.7.dist-info → bitunix_automated_crypto_trading-2.6.8.dist-info}/top_level.txt +0 -0
@@ -1,90 +1,90 @@
1
- from pydantic import Field, SecretStr, validator
2
- from pydantic_settings import BaseSettings
3
- import os
4
-
5
- class Settings(BaseSettings):
6
- # Start autotrading on start
7
- AUTOTRADE: bool = Field(default=False)
8
-
9
- # Trading Parameters
10
- LEVERAGE: int = Field(default=20, ge=1, le=100)
11
- THRESHOLD: float = Field(default=5.0, ge=0.0)
12
- MIN_VOLUME: int = Field(default=10_000_000, ge=0)
13
- ORDER_AMOUNT_PERCENTAGE: float = Field(default=0.01, ge=0.0, le=100)
14
- MAX_AUTO_TRADES: int = Field(default=10, ge=0)
15
- PROFIT_AMOUNT: float = Field(default=0.25, ge=0.0)
16
- LOSS_AMOUNT: float = Field(default=5.0, ge=0.0)
17
- OPTION_MOVING_AVERAGE: str = Field(default="1h")
18
- BARS: int = Field(default=100, ge=1)
19
-
20
- # Technical Indicators Parameters
21
- MA_FAST: int = Field(default=12, ge=1)
22
- MA_MEDIUM: int = Field(default=26, ge=1)
23
- MA_SLOW: int = Field(default=50, ge=1)
24
- RSI_FAST: int = Field(default=6, ge=1)
25
- RSI_SLOW: int = Field(default=24, ge=1)
26
- BBM_PERIOD: int = Field(default=20, ge=1)
27
- BBM_STD: int = Field(default=2, ge=1)
28
- MACD_PERIOD: int = Field(default=9, ge=1)
29
- MACD_SHORT: int = Field(default=12, ge=1)
30
- MACD_LONG: int = Field(default=26, ge=1)
31
- ADX_PERIOD: int = Field(default=14, ge=1)
32
-
33
- # Technical Indicators
34
- OPEN_ON_ANY_SIGNAL: bool = Field(default=True)
35
-
36
- EMA_CHART: bool = Field(default=True)
37
- EMA_STUDY: bool = Field(default=True)
38
- EMA_CROSSING: bool = Field(default=False)
39
- EMA_CHECK_ON_OPEN: bool = Field(default=True)
40
- EMA_CHECK_ON_CLOSE: bool = Field(default=True)
41
-
42
- MACD_CHART: bool = Field(default=False)
43
- MACD_STUDY: bool = Field(default=True)
44
- MACD_CROSSING: bool = Field(default=False)
45
- MACD_CHECK_ON_OPEN: bool = Field(default=False)
46
- MACD_CHECK_ON_CLOSE: bool = Field(default=False)
47
-
48
- BBM_CHART: bool = Field(default=False)
49
- BBM_STUDY: bool = Field(default=True)
50
- BBM_CROSSING: bool = Field(default=False)
51
- BBM_CHECK_ON_OPEN: bool = Field(default=False)
52
- BBM_CHECK_ON_CLOSE: bool = Field(default=False)
53
-
54
- RSI_CHART: bool = Field(default=False)
55
- RSI_STUDY: bool = Field(default=True)
56
- RSI_CROSSING: bool = Field(default=False)
57
- RSI_CHECK_ON_OPEN: bool = Field(default=False)
58
- RSI_CHECK_ON_CLOSE: bool = Field(default=False)
59
-
60
- ADX_STUDY: bool = Field(default=True)
61
- ADX_CHECK_ON_OPEN: bool = Field(default=False)
62
- ADX_CHECK_ON_CLOSE: bool = Field(default=False)
63
-
64
- CANDLE_TREND_STUDY: bool = Field(default=True)
65
- CANDLE_TREND_CHECK_ON_OPEN: bool = Field(default=False)
66
- CANDLE_TREND_CHECK_ON_CLOSE: bool = Field(default=False)
67
-
68
- # Time Intervals
69
- SCREEN_REFRESH_INTERVAL: int = Field(default=1, ge=1)
70
- SIGNAL_CHECK_INTERVAL: int = Field(default=15, ge=1)
71
- PORTFOLIO_API_INTERVAL: int = Field(default=3, ge=1)
72
- PENDING_POSITIONS_API_INTERVAL: int = Field(default=3, ge=1)
73
- PENDING_ORDERS_API_INTERVAL: int = Field(default=3, ge=1)
74
- TRADE_HISTORY_API_INTERVAL: int = Field(default=3, ge=1)
75
- POSITION_HISTORY_API_INTERVAL: int = Field(default=3, ge=1)
76
- TICKER_DATA_API_INTERVAL: int = Field(default=30, ge=1)
77
- PUBLIC_WEBSOCKET_RESTART_INTERVAL: int = Field(default=10_800, ge=1)
78
-
79
- # Use websocket or API
80
- USE_PUBLIC_WEBSOCKET: bool = Field(default=False) # If there is lagging issue then use API
81
-
82
- # Logger
83
- VERBOSE_LOGGING: bool = Field(default=False)
84
-
85
- # Benchmark
86
- BENCHMARK: bool = Field(default=False)
87
-
88
- class Config:
89
- # Specify the file name for loading environment variables
90
- env_file = "./config.txt"
1
+ from pydantic import Field, SecretStr, validator
2
+ from pydantic_settings import BaseSettings
3
+ import os
4
+
5
+ class Settings(BaseSettings):
6
+ # Start autotrading on start
7
+ AUTOTRADE: bool = Field(default=False)
8
+
9
+ # Trading Parameters
10
+ LEVERAGE: int = Field(default=20, ge=1, le=100)
11
+ THRESHOLD: float = Field(default=5.0, ge=0.0)
12
+ MIN_VOLUME: int = Field(default=10_000_000, ge=0)
13
+ ORDER_AMOUNT_PERCENTAGE: float = Field(default=0.01, ge=0.0, le=100)
14
+ MAX_AUTO_TRADES: int = Field(default=10, ge=0)
15
+ PROFIT_AMOUNT: float = Field(default=0.25, ge=0.0)
16
+ LOSS_AMOUNT: float = Field(default=5.0, ge=0.0)
17
+ OPTION_MOVING_AVERAGE: str = Field(default="1h")
18
+ BARS: int = Field(default=100, ge=1)
19
+
20
+ # Technical Indicators Parameters
21
+ MA_FAST: int = Field(default=12, ge=1)
22
+ MA_MEDIUM: int = Field(default=26, ge=1)
23
+ MA_SLOW: int = Field(default=50, ge=1)
24
+ RSI_FAST: int = Field(default=6, ge=1)
25
+ RSI_SLOW: int = Field(default=24, ge=1)
26
+ BBM_PERIOD: int = Field(default=20, ge=1)
27
+ BBM_STD: int = Field(default=2, ge=1)
28
+ MACD_PERIOD: int = Field(default=9, ge=1)
29
+ MACD_SHORT: int = Field(default=12, ge=1)
30
+ MACD_LONG: int = Field(default=26, ge=1)
31
+ ADX_PERIOD: int = Field(default=14, ge=1)
32
+
33
+ # Technical Indicators
34
+ OPEN_ON_ANY_SIGNAL: bool = Field(default=True)
35
+
36
+ EMA_CHART: bool = Field(default=True)
37
+ EMA_STUDY: bool = Field(default=True)
38
+ EMA_CROSSING: bool = Field(default=False)
39
+ EMA_CHECK_ON_OPEN: bool = Field(default=True)
40
+ EMA_CHECK_ON_CLOSE: bool = Field(default=True)
41
+
42
+ MACD_CHART: bool = Field(default=False)
43
+ MACD_STUDY: bool = Field(default=True)
44
+ MACD_CROSSING: bool = Field(default=False)
45
+ MACD_CHECK_ON_OPEN: bool = Field(default=False)
46
+ MACD_CHECK_ON_CLOSE: bool = Field(default=False)
47
+
48
+ BBM_CHART: bool = Field(default=False)
49
+ BBM_STUDY: bool = Field(default=True)
50
+ BBM_CROSSING: bool = Field(default=False)
51
+ BBM_CHECK_ON_OPEN: bool = Field(default=False)
52
+ BBM_CHECK_ON_CLOSE: bool = Field(default=False)
53
+
54
+ RSI_CHART: bool = Field(default=False)
55
+ RSI_STUDY: bool = Field(default=True)
56
+ RSI_CROSSING: bool = Field(default=False)
57
+ RSI_CHECK_ON_OPEN: bool = Field(default=False)
58
+ RSI_CHECK_ON_CLOSE: bool = Field(default=False)
59
+
60
+ ADX_STUDY: bool = Field(default=True)
61
+ ADX_CHECK_ON_OPEN: bool = Field(default=False)
62
+ ADX_CHECK_ON_CLOSE: bool = Field(default=False)
63
+
64
+ CANDLE_TREND_STUDY: bool = Field(default=True)
65
+ CANDLE_TREND_CHECK_ON_OPEN: bool = Field(default=False)
66
+ CANDLE_TREND_CHECK_ON_CLOSE: bool = Field(default=False)
67
+
68
+ # Time Intervals
69
+ SCREEN_REFRESH_INTERVAL: int = Field(default=1, ge=1)
70
+ SIGNAL_CHECK_INTERVAL: int = Field(default=15, ge=1)
71
+ PORTFOLIO_API_INTERVAL: int = Field(default=3, ge=1)
72
+ PENDING_POSITIONS_API_INTERVAL: int = Field(default=3, ge=1)
73
+ PENDING_ORDERS_API_INTERVAL: int = Field(default=3, ge=1)
74
+ TRADE_HISTORY_API_INTERVAL: int = Field(default=3, ge=1)
75
+ POSITION_HISTORY_API_INTERVAL: int = Field(default=3, ge=1)
76
+ TICKER_DATA_API_INTERVAL: int = Field(default=30, ge=1)
77
+ PUBLIC_WEBSOCKET_RESTART_INTERVAL: int = Field(default=10_800, ge=1)
78
+
79
+ # Use websocket or API
80
+ USE_PUBLIC_WEBSOCKET: bool = Field(default=False) # If there is lagging issue then use API
81
+
82
+ # Logger
83
+ VERBOSE_LOGGING: bool = Field(default=False)
84
+
85
+ # Benchmark
86
+ BENCHMARK: bool = Field(default=False)
87
+
88
+ class Config:
89
+ # Specify the file name for loading environment variables
90
+ env_file = "config.txt"
@@ -1,85 +1,85 @@
1
- import logging
2
- import os
3
- from logging.handlers import RotatingFileHandler
4
- from datetime import datetime, timezone
5
- from zoneinfo import ZoneInfo
6
- from colorama import init, Fore, Style
7
-
8
- # Initialize colorama for Windows support
9
- init()
10
-
11
- class Colors:
12
- RESET = Style.RESET_ALL
13
- RED = Fore.RED
14
- GREEN = Fore.GREEN
15
- YELLOW = Fore.YELLOW
16
- BLUE = Fore.BLUE
17
- PURPLE = Fore.MAGENTA
18
- CYAN = Fore.CYAN
19
- LBLUE = Fore.LIGHTBLUE_EX
20
-
21
-
22
- class ColoredFormatter(logging.Formatter):
23
- COLORS = {
24
- 'DEBUG': Colors.BLUE,
25
- 'INFO': Colors.GREEN,
26
- 'WARNING': Colors.YELLOW,
27
- 'ERROR': Colors.RED,
28
- 'CRITICAL': Colors.PURPLE,
29
- }
30
-
31
- def format(self, record):
32
- # Add color to the level name
33
- color = self.COLORS.get(record.levelname, Colors.RESET)
34
- record.msg = f"{color}{record.msg}{Colors.RESET}"
35
- return super().format(record)
36
-
37
- class CSTFormatter(logging.Formatter):
38
- def formatTime(self, record, datefmt=None):
39
- # Convert UTC time to CST
40
- utc_time = datetime.fromtimestamp(record.created, tz=timezone.utc)
41
- cst_time = utc_time.astimezone(ZoneInfo("US/Central"))
42
- if datefmt:
43
- return cst_time.strftime(datefmt)
44
- else:
45
- return cst_time.isoformat()
46
-
47
- class Logger:
48
- def __init__(self, logger_name, log_file='app.log', level=logging.DEBUG, max_bytes=5 * 1024 * 1024, backup_count=3):
49
- """
50
- Initialize the logger.
51
-
52
- :param logger_name: Name of the logger.
53
- :param log_file: Log file path.
54
- :param level: Logging level (default: DEBUG).
55
- :param max_bytes: Max size of the log file before rotation (default: 5MB).
56
- :param backup_count: Number of backup files to keep (default: 3).
57
- """
58
- # Create the logger
59
- self.logger = logging.getLogger(logger_name)
60
- self.logger.setLevel(level)
61
- colors=Colors()
62
-
63
- # Check if handlers are already attached
64
- if not self.logger.handlers:
65
- # Create a file handler with rotation
66
- file_handler = RotatingFileHandler(log_file, maxBytes=max_bytes, backupCount=backup_count)
67
- file_formatter = CSTFormatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
68
- file_handler.setFormatter(file_formatter)
69
-
70
- # Create a console handler
71
- console_handler = logging.StreamHandler()
72
- console_formatter = CSTFormatter(f'{colors.RESET}%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
73
- console_handler.setFormatter(console_formatter)
74
-
75
- # Add handlers to the logger
76
- self.logger.addHandler(file_handler)
77
- self.logger.addHandler(console_handler)
78
-
79
- def get_logger(self):
80
- """
81
- Return the configured logger.
82
-
83
- :return: Configured logger instance.
84
- """
1
+ import logging
2
+ import os
3
+ from logging.handlers import RotatingFileHandler
4
+ from datetime import datetime, timezone
5
+ from zoneinfo import ZoneInfo
6
+ from colorama import init, Fore, Style
7
+
8
+ # Initialize colorama for Windows support
9
+ init()
10
+
11
+ class Colors:
12
+ RESET = Style.RESET_ALL
13
+ RED = Fore.RED
14
+ GREEN = Fore.GREEN
15
+ YELLOW = Fore.YELLOW
16
+ BLUE = Fore.BLUE
17
+ PURPLE = Fore.MAGENTA
18
+ CYAN = Fore.CYAN
19
+ LBLUE = Fore.LIGHTBLUE_EX
20
+
21
+
22
+ class ColoredFormatter(logging.Formatter):
23
+ COLORS = {
24
+ 'DEBUG': Colors.BLUE,
25
+ 'INFO': Colors.GREEN,
26
+ 'WARNING': Colors.YELLOW,
27
+ 'ERROR': Colors.RED,
28
+ 'CRITICAL': Colors.PURPLE,
29
+ }
30
+
31
+ def format(self, record):
32
+ # Add color to the level name
33
+ color = self.COLORS.get(record.levelname, Colors.RESET)
34
+ record.msg = f"{color}{record.msg}{Colors.RESET}"
35
+ return super().format(record)
36
+
37
+ class CSTFormatter(logging.Formatter):
38
+ def formatTime(self, record, datefmt=None):
39
+ # Convert UTC time to CST
40
+ utc_time = datetime.fromtimestamp(record.created, tz=timezone.utc)
41
+ cst_time = utc_time.astimezone(ZoneInfo("US/Central"))
42
+ if datefmt:
43
+ return cst_time.strftime(datefmt)
44
+ else:
45
+ return cst_time.isoformat()
46
+
47
+ class Logger:
48
+ def __init__(self, logger_name, log_file='app.log', level=logging.DEBUG, max_bytes=5 * 1024 * 1024, backup_count=3):
49
+ """
50
+ Initialize the logger.
51
+
52
+ :param logger_name: Name of the logger.
53
+ :param log_file: Log file path.
54
+ :param level: Logging level (default: DEBUG).
55
+ :param max_bytes: Max size of the log file before rotation (default: 5MB).
56
+ :param backup_count: Number of backup files to keep (default: 3).
57
+ """
58
+ # Create the logger
59
+ self.logger = logging.getLogger(logger_name)
60
+ self.logger.setLevel(level)
61
+ colors=Colors()
62
+
63
+ # Check if handlers are already attached
64
+ if not self.logger.handlers:
65
+ # Create a file handler with rotation
66
+ file_handler = RotatingFileHandler(log_file, maxBytes=max_bytes, backupCount=backup_count)
67
+ file_formatter = CSTFormatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
68
+ file_handler.setFormatter(file_formatter)
69
+
70
+ # Create a console handler
71
+ console_handler = logging.StreamHandler()
72
+ console_formatter = CSTFormatter(f'{colors.RESET}%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
73
+ console_handler.setFormatter(console_formatter)
74
+
75
+ # Add handlers to the logger
76
+ self.logger.addHandler(file_handler)
77
+ self.logger.addHandler(console_handler)
78
+
79
+ def get_logger(self):
80
+ """
81
+ Return the configured logger.
82
+
83
+ :return: Configured logger instance.
84
+ """
85
85
  return self.logger
@@ -1,36 +1,36 @@
1
- Metadata-Version: 2.4
2
- Name: bitunix_automated_crypto_trading
3
- Version: 2.6.7
4
- Summary: Bitunix Futures Auto Trading Platform
5
- Home-page: https://github.com/tcj2001/bitunix-automated-crypto-trading
6
- Author: tcj2001
7
- Author-email: thomsonmathews@hotmail.com
8
- License: MIT
9
- Classifier: Programming Language :: Python :: 3
10
- Classifier: License :: OSI Approved :: MIT License
11
- Classifier: Operating System :: OS Independent
12
- Requires-Python: >=3.13
13
- Requires-Dist: fastapi
14
- Requires-Dist: uvicorn
15
- Requires-Dist: fastapi-login
16
- Requires-Dist: python-multipart
17
- Requires-Dist: jinja2
18
- Requires-Dist: python-dotenv
19
- Requires-Dist: pydantic
20
- Requires-Dist: pydantic-settings
21
- Requires-Dist: websockets
22
- Requires-Dist: requests
23
- Requires-Dist: aiohttp
24
- Requires-Dist: pytz
25
- Requires-Dist: cryptography
26
- Requires-Dist: colorama
27
- Requires-Dist: pandas
28
- Requires-Dist: numpy
29
- Dynamic: author
30
- Dynamic: author-email
31
- Dynamic: classifier
32
- Dynamic: home-page
33
- Dynamic: license
34
- Dynamic: requires-dist
35
- Dynamic: requires-python
36
- Dynamic: summary
1
+ Metadata-Version: 2.4
2
+ Name: bitunix_automated_crypto_trading
3
+ Version: 2.6.8
4
+ Summary: Bitunix Futures Auto Trading Platform
5
+ Home-page: https://github.com/tcj2001/bitunix-automated-crypto-trading
6
+ Author: tcj2001
7
+ Author-email: thomsonmathews@hotmail.com
8
+ License: MIT
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.13
13
+ Requires-Dist: fastapi
14
+ Requires-Dist: uvicorn
15
+ Requires-Dist: fastapi-login
16
+ Requires-Dist: python-multipart
17
+ Requires-Dist: jinja2
18
+ Requires-Dist: python-dotenv
19
+ Requires-Dist: pydantic
20
+ Requires-Dist: pydantic-settings
21
+ Requires-Dist: websockets
22
+ Requires-Dist: requests
23
+ Requires-Dist: aiohttp
24
+ Requires-Dist: pytz
25
+ Requires-Dist: cryptography
26
+ Requires-Dist: colorama
27
+ Requires-Dist: pandas
28
+ Requires-Dist: numpy
29
+ Dynamic: author
30
+ Dynamic: author-email
31
+ Dynamic: classifier
32
+ Dynamic: home-page
33
+ Dynamic: license
34
+ Dynamic: requires-dist
35
+ Dynamic: requires-python
36
+ Dynamic: summary
@@ -0,0 +1,17 @@
1
+ bitunix_automated_crypto_trading/AsyncThreadRunner.py,sha256=JDpAUiTZLB9KV4tGPonAvAUJyBqZz2-ehblH6vsunz8,3142
2
+ bitunix_automated_crypto_trading/BitunixApi.py,sha256=uBB5viKtqN3QTaZWN7ZoRD0ifNLDgg86XrpBiSlVlJE,11343
3
+ bitunix_automated_crypto_trading/BitunixSignal.py,sha256=oGBT3Gwi_FMFBBsZOGgphpE4PQeaJhkJL-Qs_Fz3WGo,63082
4
+ bitunix_automated_crypto_trading/BitunixWebSocket.py,sha256=mbuvk8UFWKgv4KLV07TgLgxLVTRJnOKuf02mLB-VoCY,11143
5
+ bitunix_automated_crypto_trading/DataFrameHtmlRenderer.py,sha256=Pqdzhh_nfIxFEZH9L_R5QXB8moDPbgeTGT_hmBkHWMg,2899
6
+ bitunix_automated_crypto_trading/NotificationManager.py,sha256=pqDquEe-oujD2v8B543524vo62aRMjfB4YW-3DMhVGQ,795
7
+ bitunix_automated_crypto_trading/ThreadManager.py,sha256=WmYRQu8aNrgp5HwSqpBqX1WESNSEpbD2CznPFpd9HuI,2330
8
+ bitunix_automated_crypto_trading/TickerManager.py,sha256=hSA1cpzBPje0Im9wwllDnwMm9yD06riiZMBZpwU-xBw,31254
9
+ bitunix_automated_crypto_trading/__init__.py,sha256=1hzk6nX8NnUCr1tsq8oFq1qGCNhNwnwldWE75641Eew,78
10
+ bitunix_automated_crypto_trading/bitunix.py,sha256=ooahU8kEhibVKYbUBdd2yxvTDiXGSvn1ENmepDoqA1g,24671
11
+ bitunix_automated_crypto_trading/config.py,sha256=4-VeVrEIKfGi8PbAeAXaveX7TiFirbH2SwQKBQO715M,3527
12
+ bitunix_automated_crypto_trading/logger.py,sha256=FB5g2ZqTUuaIcqrzaUFtp1ZtQi-4STYL_VHLDuv9Ysg,2930
13
+ bitunix_automated_crypto_trading-2.6.8.dist-info/METADATA,sha256=1cr6AKvH_ZqRTnJl8ZlWl66dGpnLNMkIoqW0Cr5hv9k,996
14
+ bitunix_automated_crypto_trading-2.6.8.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
15
+ bitunix_automated_crypto_trading-2.6.8.dist-info/entry_points.txt,sha256=UXREYHuSl2XYd_tOtLIq0zg3d1kX3lixX5SpN8yGBw4,82
16
+ bitunix_automated_crypto_trading-2.6.8.dist-info/top_level.txt,sha256=uyFzHUCOsp8elnG2Ovor6xXcf7dxRxY-C-Txiwix64Q,33
17
+ bitunix_automated_crypto_trading-2.6.8.dist-info/RECORD,,
@@ -1,60 +0,0 @@
1
- AUTOTRADE=True
2
- OPTION_MOVING_AVERAGE=1h
3
- MAX_AUTO_TRADES=10
4
- PROFIT_AMOUNT=0
5
- LOSS_AMOUNT=0
6
- LEVERAGE=20
7
- THRESHOLD=5
8
- MIN_VOLUME=10000000
9
- ORDER_AMOUNT_PERCENTAGE=5
10
- BARS=100
11
- MA_FAST=12
12
- MA_MEDIUM=26
13
- MA_SLOW=50
14
- RSI_FAST=6
15
- RSI_SLOW=24
16
- BBM_PERIOD=20
17
- BBM_STD=2
18
- MACD_PERIOD=9
19
- MACD_SHORT=12
20
- MACD_LONG=26
21
- ADX_PERIOD=14
22
- OPEN_ON_ANY_SIGNAL=True
23
- EMA_CHART=True
24
- EMA_STUDY=True
25
- EMA_CROSSING=True
26
- EMA_CHECK_ON_OPEN=True
27
- EMA_CHECK_ON_CLOSE=True
28
- MACD_CHART=False
29
- MACD_STUDY=True
30
- MACD_CROSSING=True
31
- MACD_CHECK_ON_OPEN=True
32
- MACD_CHECK_ON_CLOSE=False
33
- BBM_CHART=False
34
- BBM_STUDY=True
35
- BBM_CROSSING=True
36
- BBM_CHECK_ON_OPEN=True
37
- BBM_CHECK_ON_CLOSE=False
38
- RSI_CHART=False
39
- RSI_STUDY=True
40
- RSI_CROSSING=True
41
- RSI_CHECK_ON_OPEN=True
42
- RSI_CHECK_ON_CLOSE=False
43
- ADX_STUDY=True
44
- ADX_CHECK_ON_OPEN=True
45
- ADX_CHECK_ON_CLOSE=False
46
- CANDLE_TREND_STUDY=False
47
- CANDLE_TREND_CHECK_ON_OPEN=False
48
- CANDLE_TREND_CHECK_ON_CLOSE=False
49
- SCREEN_REFRESH_INTERVAL=1
50
- SIGNAL_CHECK_INTERVAL=30
51
- PORTFOLIO_API_INTERVAL=3
52
- PENDING_POSITIONS_API_INTERVAL=3
53
- PENDING_ORDERS_API_INTERVAL=3
54
- TRADE_HISTORY_API_INTERVAL=3
55
- POSITION_HISTORY_API_INTERVAL=3
56
- TICKER_DATA_API_INTERVAL=120
57
- PUBLIC_WEBSOCKET_RESTART_INTERVAL=10800
58
- USE_PUBLIC_WEBSOCKET=False
59
- VERBOSE_LOGGING=False
60
- BENCHMARK=False
@@ -1,5 +0,0 @@
1
- API_KEY=your_api_key
2
- SECRET_KEY=your_secret_key
3
- SECRET=your_token_secret
4
- PASSWORD=whatever_is_here_is_your_webpage_password
5
- HOST=0.0.0.0
@@ -1,28 +0,0 @@
1
- .chart-body {
2
- flex: 1;
3
- display: flex;
4
- flex-direction: column;
5
- overflow-y: auto; /* Enable vertical scrolling */
6
- height: calc(100vh - 100px); /* Ensure it accounts for header height */
7
- box-sizing: border-box; /* Prevent height calculation issues due to padding */
8
- }
9
-
10
- .chart-grid {
11
- display: grid;
12
- grid-template-columns: repeat(2, 1fr);
13
- grid-template-rows: repeat(3, 1fr);
14
- gap: 10px;
15
- height: auto; /* Let the grid adapt naturally */
16
- overflow-y: auto; /* Add vertical scrolling for grid */
17
-
18
- }
19
- .chart-container {
20
- display: flex;
21
- align-items: center;
22
- justify-content: center;
23
- }
24
- canvas {
25
- width: 100% !important;
26
- height: 100% !important;
27
- }
28
-