Files
xMQL5/MQLTestWorkspace/BKPS/BKP/x121 old style indicators/Helpers/x-saherelm.x121.xhk.helper.mq5
T

215 lines
3.8 KiB
Plaintext

///////////////////////////////////////////////////////
//
// SaherElm IT Center MQL5 Class Library
// --------------------------------------
// Name: XHikenAshi Indicator Provider
// Description: Provides Features ...
//
//
// Maintainer:
// ------------
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
//
//////////////////////////////////////////////////////
//
// Global Properties ...
#property library
#property copyright "Copyright 2023, SaherElm IT Center"
#property link "https://www.saherelm.ir"
#property version "1.00"
#property strict
//
// START Import and Inclused requirements ...
//
//
// Includes ...
#include "../Libraries/x-saherelm.alert.lib.mq5"
#include "../Libraries/x-saherelm.models.lib.mq5"
#include "../Libraries/x-saherelm.common.lib.mq5"
//
// END Import and Inclused requirements ...
//
//
// START Definitions ...
//
//
// XHikenAshi Exported Buffers ...
enum ENUM_X_HIKENASHI_BUFFERS
{
//
X_HK_OPEN_LINE = 0,
X_HK_HIGH_LINE = 1,
X_HK_LOW_LINE = 2,
X_HK_CLOSE_LINE = 3,
};
//
// END Definitions ...
//
//
// START Overrides ...
//
//
// END Overrides ...
//
class XSCXHKHelper
{
//
public:
//
// Properties ...
double openBuffer[];
double highBuffer[];
double lowBuffer[];
double closeBuffer[];
//
// Constructor ...
void XSCXHKHelper() {
mSymbol = _Symbol;
mPeriod = _Period;
}
void XSCXHKHelper(
//
// Symbol ...
string symbol,
//
// Period ...
ENUM_TIMEFRAMES period,
//
// Buffer Reading ...
int numberOfItemsReadPerTick = 52
//
)
{
//
// Setting Requirements ...
//
// Symbol ...
mSymbol = symbol;
//
// Period ...
mPeriod = period;
//
// Number of Reading Buffer Items per Tick ...
mNumberOfItemsReadPerTick = numberOfItemsReadPerTick;
//
mTag = "XHK " + mSymbol + ", " + ToString(mPeriod);
//
// Initial Handler ...
mHandler = iCustom(
mSymbol,
mPeriod,
"x-saherelm.x121.xhk",
//
// Inputs ...
"",
false,
false
//
);
if (mHandler == INVALID_HANDLE)
{
LogMessage("failed to Initialize Indicator: " + (string)GetLastError());
}
//
ArraySetAsSeries(openBuffer, true);
ArraySetAsSeries(highBuffer, true);
ArraySetAsSeries(lowBuffer, true);
ArraySetAsSeries(closeBuffer, true);
}
//
// DeConstructor ...
void ~XSCXHKHelper()
{
//
// Release Indicators ...
IndicatorRelease(mHandler);
}
//
// Reading Buffers ...
void ReadBuffers()
{
//
// OPEN ...
CopyBuffer(
mHandler,
X_HK_OPEN_LINE,
0,
mNumberOfItemsReadPerTick,
openBuffer);
//
// HIGH ...
CopyBuffer(
mHandler,
X_HK_HIGH_LINE,
0,
mNumberOfItemsReadPerTick,
highBuffer);
//
// LOW ...
CopyBuffer(
mHandler,
X_HK_LOW_LINE,
0,
mNumberOfItemsReadPerTick,
lowBuffer);
//
// CLOSE ...
CopyBuffer(
mHandler,
X_HK_CLOSE_LINE,
0,
mNumberOfItemsReadPerTick,
closeBuffer);
}
//
// START Tools Functions ...
//
//
// END Tools Functions ...
//
//
protected:
//
private:
//
// Symbol ...
string mSymbol;
//
// Period ...
ENUM_TIMEFRAMES mPeriod;
//
// Buffer Reading ...
int mNumberOfItemsReadPerTick;
//
string mTag;
//
int mHandler;
};