2026-07-31 13:43:33 -05:00
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
//| Base.mqh |
|
|
|
|
|
//| Copyright 2026, Niquel Mendoza |
|
|
|
|
|
//| https://www.mql5.com |
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
#property copyright "Copyright 2026, Niquel Mendoza"
|
|
|
|
|
#property link "https://www.mql5.com"
|
|
|
|
|
#property strict
|
|
|
|
|
|
|
|
|
|
#ifndef MQLARITCLES_UTILS_TFI_BASE_MQH
|
|
|
|
|
#define MQLARITCLES_UTILS_TFI_BASE_MQH
|
|
|
|
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
//| |
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
#include "Main.mqh"
|
|
|
|
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
//| |
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
namespace TSN
|
|
|
|
|
{
|
2026-07-31 13:54:24 -05:00
|
|
|
__forceinline char MqlArticlesTfiIdx(ENUM_TIMEFRAMES v)
|
2026-07-31 13:43:33 -05:00
|
|
|
{
|
|
|
|
|
if(v == PERIOD_CURRENT)
|
|
|
|
|
v = _Period;
|
|
|
|
|
ulong h = ((ulong)v ^ g_mqlarticles_tfi_out_seeds[int(v & MQLARTICLES_TFI_BUCKETS_SIZE_L)]) * 0x9E3779B97F4A7C15;
|
|
|
|
|
h ^= h >> 32;
|
2026-07-31 13:54:24 -05:00
|
|
|
return char(h & MQLARTICLES_TFI_FINAL_TSIZE_L);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
__forceinline char MqlArticlesTfiIdxNoR(const ENUM_TIMEFRAMES v)
|
|
|
|
|
{
|
|
|
|
|
ulong h = ((ulong)v ^ g_mqlarticles_tfi_out_seeds[int(v & MQLARTICLES_TFI_BUCKETS_SIZE_L)]) * 0x9E3779B97F4A7C15;
|
|
|
|
|
h ^= h >> 32;
|
|
|
|
|
return char(h & MQLARTICLES_TFI_FINAL_TSIZE_L);
|
2026-07-31 13:43:33 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif // MQLARITCLES_UTILS_TFI_BASE_MQH
|