From c8e3e3084937da789232940d231a8c478eb82100 Mon Sep 17 00:00:00 2001 From: Valentine Chibuike Ozoigboanugo Date: Sun, 14 Jun 2026 15:32:09 +0200 Subject: [PATCH] Initial commit: RangeBars MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Proprietary trading software. © Teenodi Ltd. All rights reserved. Co-Authored-By: Claude Opus 4.8 --- .gitignore | 6 + LICENSE | 10 ++ README.md | 21 +++ Range_Bars.mq5 | Bin 0 -> 81784 bytes archive/RangeBar3.mq5 | Bin 0 -> 37760 bytes archive/Range_Bars_Series.mq5 | Bin 0 -> 57026 bytes archive/Rangebar3.2.mq5 | Bin 0 -> 37740 bytes archive/try.mq5 | Bin 0 -> 43546 bytes archive/try2.2.mq5 | Bin 0 -> 44334 bytes archive/try2.mq5 | Bin 0 -> 49844 bytes archive/try3.mq5 | 193 +++++++++++++++++++++++++++ archive/try6.mq5 | Bin 0 -> 48136 bytes archive/try7.mq5 | 237 ++++++++++++++++++++++++++++++++++ 13 files changed, 467 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 Range_Bars.mq5 create mode 100644 archive/RangeBar3.mq5 create mode 100644 archive/Range_Bars_Series.mq5 create mode 100644 archive/Rangebar3.2.mq5 create mode 100644 archive/try.mq5 create mode 100644 archive/try2.2.mq5 create mode 100644 archive/try2.mq5 create mode 100644 archive/try3.mq5 create mode 100644 archive/try6.mq5 create mode 100644 archive/try7.mq5 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..659b368 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +# Compiled binaries / logs / terminal artifacts +*.ex4 +*.ex5 +*.log +*.tmp +*.bak diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d7128eb --- /dev/null +++ b/LICENSE @@ -0,0 +1,10 @@ +Copyright (c) 2023-2026 Teenodi Ltd. All rights reserved. + +This software and its source code are the proprietary and confidential +property of Teenodi Ltd. Unauthorized copying, distribution, modification, +public display, or use of this software, in whole or in part, via any medium, +is strictly prohibited without the express prior written permission of +Teenodi Ltd. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. Trading +financial instruments carries risk; use at your own risk. diff --git a/README.md b/README.md new file mode 100644 index 0000000..bc72f2a --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +# RangeBars + +Constant-range (range-bar) charting indicator, with the development iterations that led to it archived. + +> **Proprietary software** — © Teenodi Ltd. All rights reserved. Private repository; not for distribution. See [LICENSE](LICENSE). + +## Range_Bars.mq5 + +## Archive + +Earlier versions / forks are preserved under [`archive/`](archive/) for reference. + +## Install + +1. Copy the source file(s) into your MetaTrader 5 `MQL5/` tree (`Experts/`, `Indicators/`, or `Scripts/` as appropriate). +2. In MetaEditor, open the file and compile (**F7**). +3. Attach the compiled program to a chart from the terminal Navigator. + +## License + +Proprietary and confidential. © Teenodi Ltd. All rights reserved. See [LICENSE](LICENSE). diff --git a/Range_Bars.mq5 b/Range_Bars.mq5 new file mode 100644 index 0000000000000000000000000000000000000000..70f8045280cab9e8db7bfcd19048a5c4853858a2 GIT binary patch literal 81784 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

N?LQ?VcSVZIyf8vC0IUim`bAVIGBN*=0RgL+12y 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 bvckz0=6bYdi%QHU&n?da;giURPz>-_wfJ(( literal 0 HcmV?d00001 diff --git a/archive/Range_Bars_Series.mq5 b/archive/Range_Bars_Series.mq5 new file mode 100644 index 0000000000000000000000000000000000000000..58b7206da25edcaa2b0f7136a0e60a99bad207c4 GIT binary patch literal 57026 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 a^!psUcy%Qu(rBJl4?Y@m?yfWWd-MPK?eQG| literal 0 HcmV?d00001 diff --git a/archive/Rangebar3.2.mq5 b/archive/Rangebar3.2.mq5 new file mode 100644 index 0000000000000000000000000000000000000000..345884385b2c5b6945420c2c595db83eb9481362 GIT binary patch literal 37740 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 H0Q3I?u=m~C literal 0 HcmV?d00001 diff --git a/archive/try2.mq5 b/archive/try2.mq5 new file mode 100644 index 0000000000000000000000000000000000000000..2717e35eb63c925f0eb03562b4d176e0d00cadd4 GIT binary patch literal 49844 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 ZUe$b2$ytxw)Pk{>cPXo2XX+f_{{efFc=P}O literal 0 HcmV?d00001 diff --git a/archive/try3.mq5 b/archive/try3.mq5 new file mode 100644 index 0000000..ab74bc4 --- /dev/null +++ b/archive/try3.mq5 @@ -0,0 +1,193 @@ + +// [Previous property declarations and input parameters remain unchanged] + +// Global variables for tick synchronization +datetime g_lastSyncTime = 0; +bool g_initialSyncDone = false; +int g_retryCount = 0; +const int MAX_RETRIES = 3; +ulong g_currentChunkStart = 0; +const ulong CHUNK_SIZE = 2592000000; // 30 days in milliseconds + +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // [Previous initialization code remains unchanged until before g_lastProcessedTickTime initialization] + + // Initialize with dummy tick to trigger sync + MqlTick dummy; + SymbolInfoTick(_Symbol, dummy); + + // Reset sync variables + g_initialSyncDone = false; + g_retryCount = 0; + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +int OnCalculate(const int rates_total, + const int prev_calculated, + const datetime &time[], + const double &open[], + const double &high[], + const double &low[], + const double &close[], + const long &tick_volume[], + const long &volume[], + const int &spread[]) +{ + if(rates_total <= 0) + return(0); + + // Calculate historical data on first run + if(!g_initialized) + { + if(!g_initialSyncDone) + { + // Initialize chunk start time + datetime startTime = TimeCurrent() - InpBacklogMinutes * 60; + g_currentChunkStart = startTime * 1000; // Convert to milliseconds + g_initialSyncDone = true; + } + + // Process historical data in chunks + bool continueProcessing = true; + MqlTick historical_ticks[]; + int totalBars = 0; + + while(continueProcessing) + { + ulong chunkEnd = g_currentChunkStart + CHUNK_SIZE; + if(chunkEnd > TimeCurrent() * 1000) + chunkEnd = TimeCurrent() * 1000; + + int copied = CopyTicksRange(_Symbol, historical_ticks, COPY_TICKS_INFO, + g_currentChunkStart, chunkEnd); + + if(copied > 0) + { + // Reset retry count on successful copy + g_retryCount = 0; + + // Process ticks in this chunk + MqlRates tempBuffer[]; + + for(int i = 0; i < copied && totalBars < InpStartingBars; i++) + { + // Filter out irrelevant ticks + if((historical_ticks[i].flags & TICK_FLAG_BID) == 0) + continue; + + if(ProcessHistoricalTick(historical_ticks[i], tempBuffer)) + { + totalBars++; + + if(totalBars >= InpStartingBars) + { + // Write processed bars to custom symbol + if(CustomRatesUpdate(g_customSymbol, tempBuffer)) + { + g_initialized = true; + g_lastProcessedTickTime = historical_ticks[i].time_msc; + continueProcessing = false; + break; + } + } + } + } + + // Move to next chunk if we need more bars + g_currentChunkStart = chunkEnd; + } + else + { + int error = GetLastError(); + if(error == ERR_HISTORY_TIMEOUT) + { + if(g_retryCount < MAX_RETRIES) + { + // Implement exponential backoff + Sleep(1000 * (g_retryCount + 1)); + g_retryCount++; + continue; + } + } + Print("Error copying historical ticks: ", error); + return(0); + } + + // Check if we've reached current time + if(chunkEnd >= TimeCurrent() * 1000) + continueProcessing = false; + } + } + else + { + // Process current ticks using chunked approach + MqlTick current_ticks[]; + ulong fromTime = (g_lastProcessedTickTime - InpTickTolerance * 1000); + ulong toTime = TimeCurrent() * 1000; + + // Split current tick processing into smaller chunks if needed + while(fromTime < toTime) + { + ulong chunkEnd = fromTime + CHUNK_SIZE; + if(chunkEnd > toTime) + chunkEnd = toTime; + + int copied = CopyTicksRange(_Symbol, current_ticks, COPY_TICKS_INFO, + fromTime, chunkEnd); + + if(copied > 0) + { + for(int i = 0; i < copied; i++) + { + // Filter out irrelevant ticks + if((current_ticks[i].flags & TICK_FLAG_BID) == 0) + continue; + + if(current_ticks[i].time_msc > g_lastProcessedTickTime) + { + ProcessTick(current_ticks[i]); + g_lastProcessedTickTime = current_ticks[i].time_msc; + } + } + fromTime = chunkEnd; + } + else + { + int error = GetLastError(); + if(error != ERR_HISTORY_TIMEOUT || g_retryCount >= MAX_RETRIES) + { + Print("Error copying current ticks: ", error); + break; + } + Sleep(1000 * (g_retryCount + 1)); + g_retryCount++; + } + } + } + + ChartRedraw(g_customChartID); + return(rates_total); +} + +// [Previous helper functions remain unchanged] + +//+------------------------------------------------------------------+ +//| Cleanup resources with improved synchronization handling | +//+------------------------------------------------------------------+ +void CleanupResources() +{ + // Reset sync variables + g_initialSyncDone = false; + g_retryCount = 0; + g_currentChunkStart = 0; + + // [Previous cleanup code remains unchanged] +} \ No newline at end of file diff --git a/archive/try6.mq5 b/archive/try6.mq5 new file mode 100644 index 0000000000000000000000000000000000000000..b6136e9b295429d6a2ad860600054cf6e9d1d2f3 GIT binary patch literal 48136 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 literal 0 HcmV?d00001 diff --git a/archive/try7.mq5 b/archive/try7.mq5 new file mode 100644 index 0000000..c5160ab --- /dev/null +++ b/archive/try7.mq5 @@ -0,0 +1,237 @@ +//+------------------------------------------------------------------+ +//| try7.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" +#property indicator_separate_window +#property indicator_minimum 1 +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//--- indicator buffers mapping + +//--- + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +int OnCalculate(const int rates_total, + const int prev_calculated, + const int begin, + const double &price[]) + { +//--- + +//--- return value of prev_calculated for next call + return(rates_total); + } +//+------------------------------------------------------------------+ +//| ChartEvent function | +//+------------------------------------------------------------------+ +void OnChartEvent(const int id, + const long &lparam, + const double &dparam, + const string &sparam) + { +//--- + + } +//+------------------------------------------------------------------+ +// [Previous property declarations and input parameters remain unchanged] + +// Global variables for tick synchronization +datetime g_lastSyncTime = 0; +bool g_initialSyncDone = false; +int g_retryCount = 0; +const int MAX_RETRIES = 3; +ulong g_currentChunkStart = 0; +const ulong CHUNK_SIZE = 2592000000; // 30 days in milliseconds + +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // [Previous initialization code remains unchanged until before g_lastProcessedTickTime initialization] + + // Initialize with dummy tick to trigger sync + MqlTick dummy; + SymbolInfoTick(_Symbol, dummy); + + // Reset sync variables + g_initialSyncDone = false; + g_retryCount = 0; + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +int OnCalculate(const int rates_total, + const int prev_calculated, + const datetime &time[], + const double &open[], + const double &high[], + const double &low[], + const double &close[], + const long &tick_volume[], + const long &volume[], + const int &spread[]) +{ + if(rates_total <= 0) + return(0); + + // Calculate historical data on first run + if(!g_initialized) + { + if(!g_initialSyncDone) + { + // Initialize chunk start time + datetime startTime = TimeCurrent() - InpBacklogMinutes * 60; + g_currentChunkStart = startTime * 1000; // Convert to milliseconds + g_initialSyncDone = true; + } + + // Process historical data in chunks + bool continueProcessing = true; + MqlTick historical_ticks[]; + int totalBars = 0; + + while(continueProcessing) + { + ulong chunkEnd = g_currentChunkStart + CHUNK_SIZE; + if(chunkEnd > TimeCurrent() * 1000) + chunkEnd = TimeCurrent() * 1000; + + int copied = CopyTicksRange(_Symbol, historical_ticks, COPY_TICKS_INFO, + g_currentChunkStart, chunkEnd); + + if(copied > 0) + { + // Reset retry count on successful copy + g_retryCount = 0; + + // Process ticks in this chunk + MqlRates tempBuffer[]; + + for(int i = 0; i < copied && totalBars < InpStartingBars; i++) + { + // Filter out irrelevant ticks + if((historical_ticks[i].flags & TICK_FLAG_BID) == 0) + continue; + + if(ProcessHistoricalTick(historical_ticks[i], tempBuffer)) + { + totalBars++; + + if(totalBars >= InpStartingBars) + { + // Write processed bars to custom symbol + if(CustomRatesUpdate(g_customSymbol, tempBuffer)) + { + g_initialized = true; + g_lastProcessedTickTime = historical_ticks[i].time_msc; + continueProcessing = false; + break; + } + } + } + } + + // Move to next chunk if we need more bars + g_currentChunkStart = chunkEnd; + } + else + { + int error = GetLastError(); + if(error == ERR_HISTORY_TIMEOUT) + { + if(g_retryCount < MAX_RETRIES) + { + // Implement exponential backoff + Sleep(1000 * (g_retryCount + 1)); + g_retryCount++; + continue; + } + } + Print("Error copying historical ticks: ", error); + return(0); + } + + // Check if we've reached current time + if(chunkEnd >= TimeCurrent() * 1000) + continueProcessing = false; + } + } + else + { + // Process current ticks using chunked approach + MqlTick current_ticks[]; + ulong fromTime = (g_lastProcessedTickTime - InpTickTolerance * 1000); + ulong toTime = TimeCurrent() * 1000; + + // Split current tick processing into smaller chunks if needed + while(fromTime < toTime) + { + ulong chunkEnd = fromTime + CHUNK_SIZE; + if(chunkEnd > toTime) + chunkEnd = toTime; + + int copied = CopyTicksRange(_Symbol, current_ticks, COPY_TICKS_INFO, + fromTime, chunkEnd); + + if(copied > 0) + { + for(int i = 0; i < copied; i++) + { + // Filter out irrelevant ticks + if((current_ticks[i].flags & TICK_FLAG_BID) == 0) + continue; + + if(current_ticks[i].time_msc > g_lastProcessedTickTime) + { + ProcessTick(current_ticks[i]); + g_lastProcessedTickTime = current_ticks[i].time_msc; + } + } + fromTime = chunkEnd; + } + else + { + int error = GetLastError(); + if(error != ERR_HISTORY_TIMEOUT || g_retryCount >= MAX_RETRIES) + { + Print("Error copying current ticks: ", error); + break; + } + Sleep(1000 * (g_retryCount + 1)); + g_retryCount++; + } + } + } + + ChartRedraw(g_customChartID); + return(rates_total); +} + +// [Previous helper functions remain unchanged] + +//+------------------------------------------------------------------+ +//| Cleanup resources with improved synchronization handling | +//+------------------------------------------------------------------+ +void CleanupResources() +{ + // Reset sync variables + g_initialSyncDone = false; + g_retryCount = 0; + g_currentChunkStart = 0; + + // [Previous cleanup code remains unchanged] +} \ No newline at end of file