Repository files navigation

SyDOM

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis


The idea behind this script is to spot micro-extremes (to the upside or the downside) and anticipate the reversal. To achieve that, it uses a modelisation of the market behaviour for the last 3 days (autogenerated) and applies a RSI computation onto the delta between the buyers and the sellers for the last 14 periods (each modification of the orderbook is counted as 1 period). As another filter, we use regular Bollinger Bands applied on an 5-minutes timeframe to avoid being caught in a defavorable jump. It works at the tick level and is best suited for ranging-type price action. Additionally, we recently implemented a machine-learning module on top of all of this to detect the trend we are in...

Warning : The daily model generation can take up to 2 hours. You can speed up the process by activating the force_training setting manually. In this case, the script focuses only on building a model and stops when it's done.


Configuration

Use python 3.10

Replace the key and secret fields with yours and adjust the number of contracts traded in sydom.py

Run pip install -r requirements.txt


Execution

python sydom.py

During the first run, the script will automatically generate a model based on the 3 previous days of price action (if you already have an updated daily model -> set skip_initial_training to True). This model is retrained every day at 6:00 AM UTC. Basically, you don't have anything to do once the bot is launched...


The thresholds were defined through a manual analysis in the previous versions. All of these steps have now been automated !


SyDOM has a telegram community for discussions on using SyDOM Bot and automated trading on BitMex : https://t.me/sydombot


Donations to allow further developments

BTC: 3BMEXbS4Neu5KwsiATuZVowmwYD3UPMuxo


Disclaimer

The article and the relevant codes and content are purely informative and none of the information provided constitutes any recommendation regarding any security, transaction or investment strategy for any specific person. The implementation described in the article could be risky and the market condition could be volatile and differ from the period covered above. All trading strategies and tools are implemented at the users’ own risk.

About

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis

Topics

Resources

Stars

91 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

SyDOM

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis


The idea behind this script is to spot micro-extremes (to the upside or the downside) and anticipate the reversal. To achieve that, it uses a modelisation of the market behaviour for the last 3 days (autogenerated) and applies a RSI computation onto the delta between the buyers and the sellers for the last 14 periods (each modification of the orderbook is counted as 1 period). As another filter, we use regular Bollinger Bands applied on an 5-minutes timeframe to avoid being caught in a defavorable jump. It works at the tick level and is best suited for ranging-type price action. Additionally, we recently implemented a machine-learning module on top of all of this to detect the trend we are in...

Warning : The daily model generation can take up to 2 hours. You can speed up the process by activating the force_training setting manually. In this case, the script focuses only on building a model and stops when it's done.


Configuration

Use python 3.10

Replace the key and secret fields with yours and adjust the number of contracts traded in sydom.py

Run pip install -r requirements.txt


Execution

python sydom.py

During the first run, the script will automatically generate a model based on the 3 previous days of price action (if you already have an updated daily model -> set skip_initial_training to True). This model is retrained every day at 6:00 AM UTC. Basically, you don't have anything to do once the bot is launched...


The thresholds were defined through a manual analysis in the previous versions. All of these steps have now been automated !


SyDOM has a telegram community for discussions on using SyDOM Bot and automated trading on BitMex : https://t.me/sydombot


Donations to allow further developments

BTC: 3BMEXbS4Neu5KwsiATuZVowmwYD3UPMuxo


Disclaimer

The article and the relevant codes and content are purely informative and none of the information provided constitutes any recommendation regarding any security, transaction or investment strategy for any specific person. The implementation described in the article could be risky and the market condition could be volatile and differ from the period covered above. All trading strategies and tools are implemented at the users’ own risk.

About

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis

Topics

Resources

Stars

91 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SyDOM

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis


The idea behind this script is to spot micro-extremes (to the upside or the downside) and anticipate the reversal. To achieve that, it uses a modelisation of the market behaviour for the last 3 days (autogenerated) and applies a RSI computation onto the delta between the buyers and the sellers for the last 14 periods (each modification of the orderbook is counted as 1 period). As another filter, we use regular Bollinger Bands applied on an 5-minutes timeframe to avoid being caught in a defavorable jump. It works at the tick level and is best suited for ranging-type price action. Additionally, we recently implemented a machine-learning module on top of all of this to detect the trend we are in...

Warning : The daily model generation can take up to 2 hours. You can speed up the process by activating the force_training setting manually. In this case, the script focuses only on building a model and stops when it's done.


Configuration

Use python 3.10

Replace the key and secret fields with yours and adjust the number of contracts traded in sydom.py

Run pip install -r requirements.txt


Execution

python sydom.py

During the first run, the script will automatically generate a model based on the 3 previous days of price action (if you already have an updated daily model -> set skip_initial_training to True). This model is retrained every day at 6:00 AM UTC. Basically, you don't have anything to do once the bot is launched...


The thresholds were defined through a manual analysis in the previous versions. All of these steps have now been automated !


SyDOM has a telegram community for discussions on using SyDOM Bot and automated trading on BitMex : https://t.me/sydombot


Donations to allow further developments

BTC: 3BMEXbS4Neu5KwsiATuZVowmwYD3UPMuxo


Disclaimer

The article and the relevant codes and content are purely informative and none of the information provided constitutes any recommendation regarding any security, transaction or investment strategy for any specific person. The implementation described in the article could be risky and the market condition could be volatile and differ from the period covered above. All trading strategies and tools are implemented at the users’ own risk.

About

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis

Topics

Resources

Stars

91 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SyDOM

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis


The idea behind this script is to spot micro-extremes (to the upside or the downside) and anticipate the reversal. To achieve that, it uses a modelisation of the market behaviour for the last 3 days (autogenerated) and applies a RSI computation onto the delta between the buyers and the sellers for the last 14 periods (each modification of the orderbook is counted as 1 period). As another filter, we use regular Bollinger Bands applied on an 5-minutes timeframe to avoid being caught in a defavorable jump. It works at the tick level and is best suited for ranging-type price action. Additionally, we recently implemented a machine-learning module on top of all of this to detect the trend we are in...

Warning : The daily model generation can take up to 2 hours. You can speed up the process by activating the force_training setting manually. In this case, the script focuses only on building a model and stops when it's done.


Configuration

Use python 3.10

Replace the key and secret fields with yours and adjust the number of contracts traded in sydom.py

Run pip install -r requirements.txt


Execution

python sydom.py

During the first run, the script will automatically generate a model based on the 3 previous days of price action (if you already have an updated daily model -> set skip_initial_training to True). This model is retrained every day at 6:00 AM UTC. Basically, you don't have anything to do once the bot is launched...


The thresholds were defined through a manual analysis in the previous versions. All of these steps have now been automated !


SyDOM has a telegram community for discussions on using SyDOM Bot and automated trading on BitMex : https://t.me/sydombot


Donations to allow further developments

BTC: 3BMEXbS4Neu5KwsiATuZVowmwYD3UPMuxo


Disclaimer

The article and the relevant codes and content are purely informative and none of the information provided constitutes any recommendation regarding any security, transaction or investment strategy for any specific person. The implementation described in the article could be risky and the market condition could be volatile and differ from the period covered above. All trading strategies and tools are implemented at the users’ own risk.

About

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis

Topics

Resources

Stars

91 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

SyDOM

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis


The idea behind this script is to spot micro-extremes (to the upside or the downside) and anticipate the reversal. To achieve that, it uses a modelisation of the market behaviour for the last 3 days (autogenerated) and applies a RSI computation onto the delta between the buyers and the sellers for the last 14 periods (each modification of the orderbook is counted as 1 period). As another filter, we use regular Bollinger Bands applied on an 5-minutes timeframe to avoid being caught in a defavorable jump. It works at the tick level and is best suited for ranging-type price action. Additionally, we recently implemented a machine-learning module on top of all of this to detect the trend we are in...

Warning : The daily model generation can take up to 2 hours. You can speed up the process by activating the force_training setting manually. In this case, the script focuses only on building a model and stops when it's done.


Configuration

Use python 3.10

Replace the key and secret fields with yours and adjust the number of contracts traded in sydom.py

Run pip install -r requirements.txt


Execution

python sydom.py

During the first run, the script will automatically generate a model based on the 3 previous days of price action (if you already have an updated daily model -> set skip_initial_training to True). This model is retrained every day at 6:00 AM UTC. Basically, you don't have anything to do once the bot is launched...


The thresholds were defined through a manual analysis in the previous versions. All of these steps have now been automated !


SyDOM has a telegram community for discussions on using SyDOM Bot and automated trading on BitMex : https://t.me/sydombot


Donations to allow further developments

BTC: 3BMEXbS4Neu5KwsiATuZVowmwYD3UPMuxo


Disclaimer

The article and the relevant codes and content are purely informative and none of the information provided constitutes any recommendation regarding any security, transaction or investment strategy for any specific person. The implementation described in the article could be risky and the market condition could be volatile and differ from the period covered above. All trading strategies and tools are implemented at the users’ own risk.

About

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis

Topics

Resources

Stars

91 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SyDOM

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis


The idea behind this script is to spot micro-extremes (to the upside or the downside) and anticipate the reversal. To achieve that, it uses a modelisation of the market behaviour for the last 3 days (autogenerated) and applies a RSI computation onto the delta between the buyers and the sellers for the last 14 periods (each modification of the orderbook is counted as 1 period). As another filter, we use regular Bollinger Bands applied on an 5-minutes timeframe to avoid being caught in a defavorable jump. It works at the tick level and is best suited for ranging-type price action. Additionally, we recently implemented a machine-learning module on top of all of this to detect the trend we are in...

Warning : The daily model generation can take up to 2 hours. You can speed up the process by activating the force_training setting manually. In this case, the script focuses only on building a model and stops when it's done.


Configuration

Use python 3.10

Replace the key and secret fields with yours and adjust the number of contracts traded in sydom.py

Run pip install -r requirements.txt


Execution

python sydom.py

During the first run, the script will automatically generate a model based on the 3 previous days of price action (if you already have an updated daily model -> set skip_initial_training to True). This model is retrained every day at 6:00 AM UTC. Basically, you don't have anything to do once the bot is launched...


The thresholds were defined through a manual analysis in the previous versions. All of these steps have now been automated !


SyDOM has a telegram community for discussions on using SyDOM Bot and automated trading on BitMex : https://t.me/sydombot


Donations to allow further developments

BTC: 3BMEXbS4Neu5KwsiATuZVowmwYD3UPMuxo


Disclaimer

The article and the relevant codes and content are purely informative and none of the information provided constitutes any recommendation regarding any security, transaction or investment strategy for any specific person. The implementation described in the article could be risky and the market condition could be volatile and differ from the period covered above. All trading strategies and tools are implemented at the users’ own risk.

About

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis

Topics

Resources

Stars

91 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

SyDOM

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis


The idea behind this script is to spot micro-extremes (to the upside or the downside) and anticipate the reversal. To achieve that, it uses a modelisation of the market behaviour for the last 3 days (autogenerated) and applies a RSI computation onto the delta between the buyers and the sellers for the last 14 periods (each modification of the orderbook is counted as 1 period). As another filter, we use regular Bollinger Bands applied on an 5-minutes timeframe to avoid being caught in a defavorable jump. It works at the tick level and is best suited for ranging-type price action. Additionally, we recently implemented a machine-learning module on top of all of this to detect the trend we are in...

Warning : The daily model generation can take up to 2 hours. You can speed up the process by activating the force_training setting manually. In this case, the script focuses only on building a model and stops when it's done.


Configuration

Use python 3.10

Replace the key and secret fields with yours and adjust the number of contracts traded in sydom.py

Run pip install -r requirements.txt


Execution

python sydom.py

During the first run, the script will automatically generate a model based on the 3 previous days of price action (if you already have an updated daily model -> set skip_initial_training to True). This model is retrained every day at 6:00 AM UTC. Basically, you don't have anything to do once the bot is launched...


The thresholds were defined through a manual analysis in the previous versions. All of these steps have now been automated !


SyDOM has a telegram community for discussions on using SyDOM Bot and automated trading on BitMex : https://t.me/sydombot


Donations to allow further developments

BTC: 3BMEXbS4Neu5KwsiATuZVowmwYD3UPMuxo


Disclaimer

The article and the relevant codes and content are purely informative and none of the information provided constitutes any recommendation regarding any security, transaction or investment strategy for any specific person. The implementation described in the article could be risky and the market condition could be volatile and differ from the period covered above. All trading strategies and tools are implemented at the users’ own risk.

About

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis

Topics

Resources

Stars

91 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

SyDOM

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis


The idea behind this script is to spot micro-extremes (to the upside or the downside) and anticipate the reversal. To achieve that, it uses a modelisation of the market behaviour for the last 3 days (autogenerated) and applies a RSI computation onto the delta between the buyers and the sellers for the last 14 periods (each modification of the orderbook is counted as 1 period). As another filter, we use regular Bollinger Bands applied on an 5-minutes timeframe to avoid being caught in a defavorable jump. It works at the tick level and is best suited for ranging-type price action. Additionally, we recently implemented a machine-learning module on top of all of this to detect the trend we are in...

Warning : The daily model generation can take up to 2 hours. You can speed up the process by activating the force_training setting manually. In this case, the script focuses only on building a model and stops when it's done.


Configuration

Use python 3.10

Replace the key and secret fields with yours and adjust the number of contracts traded in sydom.py

Run pip install -r requirements.txt


Execution

python sydom.py

During the first run, the script will automatically generate a model based on the 3 previous days of price action (if you already have an updated daily model -> set skip_initial_training to True). This model is retrained every day at 6:00 AM UTC. Basically, you don't have anything to do once the bot is launched...


The thresholds were defined through a manual analysis in the previous versions. All of these steps have now been automated !


SyDOM has a telegram community for discussions on using SyDOM Bot and automated trading on BitMex : https://t.me/sydombot


Donations to allow further developments

BTC: 3BMEXbS4Neu5KwsiATuZVowmwYD3UPMuxo


Disclaimer

The article and the relevant codes and content are purely informative and none of the information provided constitutes any recommendation regarding any security, transaction or investment strategy for any specific person. The implementation described in the article could be risky and the market condition could be volatile and differ from the period covered above. All trading strategies and tools are implemented at the users’ own risk.

About

Sophisticated Scalper Bot for BitMEX using orders imbalance analysis

Topics

Resources

Stars

91 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages