215 lines
3.8 KiB
Plaintext
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;
|
|
}; |