47 lines
1.8 KiB
MQL5
47 lines
1.8 KiB
MQL5
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| MathRand.mqh |
|
||
|
|
//| Copyright 2026, Niquel Mendoza. |
|
||
|
|
//| https://www.mql5.com/ |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
#property copyright "Copyright 2026, Niquel Mendoza."
|
||
|
|
#property link "https://www.mql5.com/"
|
||
|
|
#property strict
|
||
|
|
|
||
|
|
#ifndef SIMPHASH_SRC_RANDOM_MATHRAND_MQH
|
||
|
|
#define SIMPHASH_SRC_RANDOM_MATHRAND_MQH
|
||
|
|
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
#include "Def.mqh"
|
||
|
|
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
namespace TSN
|
||
|
|
{
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
class CRandomGeneratorMRand : public IRandomGenerator
|
||
|
|
{
|
||
|
|
private:
|
||
|
|
ulong m_seed;
|
||
|
|
public:
|
||
|
|
CRandomGeneratorMRand(void) {}
|
||
|
|
~CRandomGeneratorMRand(void) {}
|
||
|
|
|
||
|
|
//---
|
||
|
|
bool Init(CYmlNode& node) override final
|
||
|
|
{
|
||
|
|
MathSrand(uint(node["seed"].ToInt(GetTickCount())));
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
ulong Generate() override final
|
||
|
|
{
|
||
|
|
return ulong(MathRand()) | ulong(MathRand()) << 16 | ulong(MathRand()) << 32 | ulong(MathRand()) << 48;
|
||
|
|
}
|
||
|
|
};
|
||
|
|
}
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
#endif // SIMPHASH_SRC_RANDOM_MATHRAND_MQH
|