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

324 lines
6.3 KiB
Plaintext

///////////////////////////////////////////////////////
//
// SaherElm IT Center MQL5 Class Library
// --------------------------------------
// Name: XATRSL Indicator Provider
// Description: ATR Stop Loss ...
//
//
// 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 ...
//
//
// XPeaksAndVales Exported Buffers ...
enum ENUM_X_XATRSL_BUFFERS
{
//
X_ATRSL_UP_LINE = 0,
X_ATRSL_DOWN_LINE = 1,
X_ATRSL_SAR_LINE = 2,
X_ATRSL_RMA_LINE = 3,
X_ATRSL_WMA_LINE = 4,
X_ATRSL_MA1_LINE = 5,
X_ATRSL_SMA_LINE = 6,
X_ATRSL_EMA_LINE = 7,
X_ATRSL_ATR_LINE = 8,
};
//
// END Definitions ...
//
//
// START Overrides ...
//
//
// END Overrides ...
//
class XSCXATRSLHelper
{
//
public:
//
// Properties ...
double upBuffer[];
double downBuffer[];
double sarBuffer[];
double rmaBuffer[];
double wmaBuffer[];
double ma1Buffer[];
double smaBuffer[];
double emaBuffer[];
double atrBuffer[];
//
// Constructor ...
void XSCXATRSLHelper() {
mSymbol = _Symbol;
mPeriod = _Period;
}
void XSCXATRSLHelper(
//
// Symbol ...
string symbol,
//
// Period ...
ENUM_TIMEFRAMES period,
//
// Buffer Reading ...
int numberOfItemsReadPerTick = 52,
//
// MARKET ...
int length = 14, // Length
double step = 0.02, // Increment Step
double maximum = 0.2, // Maximum
ENUM_APPLIED_PRICE highAppliedTo = PRICE_HIGH, // High Line Applied To
ENUM_APPLIED_PRICE lowAppliedTo = PRICE_LOW // Low Line Applied To
//
)
{
//
// Setting Requirements ...
//
// Symbol ...
mSymbol = symbol;
//
// Period ...
mPeriod = period;
//
// Number of Reading Buffer Items per Tick ...
mNumberOfItemsReadPerTick = numberOfItemsReadPerTick;
//
// MARKET ...
mLength = length;
mStep = step;
mMaximum = maximum;
mHighAppliedTo = highAppliedTo;
mLowAppliedTo = lowAppliedTo;
//
mTag = "XATRSL " + mSymbol + ", " + ToString(mPeriod);
//
// Initial Handler ...
mHandler = iCustom(
mSymbol,
mPeriod,
"x-saherelm.x121.xatrsl",
//
// Inputs ...
//
// MARKET ...
"",
mLength,
mStep,
mMaximum,
mHighAppliedTo,
mLowAppliedTo,
//
// PRESENTATION ...
"",
false,
false,
false
//
);
if (mHandler == INVALID_HANDLE)
{
LogMessage("failed to Initialize Indicator: " + (string)GetLastError());
}
//
ArraySetAsSeries(upBuffer, true);
ArraySetAsSeries(downBuffer, true);
ArraySetAsSeries(sarBuffer, true);
ArraySetAsSeries(rmaBuffer, true);
ArraySetAsSeries(wmaBuffer, true);
ArraySetAsSeries(ma1Buffer, true);
ArraySetAsSeries(smaBuffer, true);
ArraySetAsSeries(emaBuffer, true);
ArraySetAsSeries(atrBuffer, true);
}
//
// DeConstructor ...
void ~XSCXATRSLHelper()
{
//
// Release Indicators ...
IndicatorRelease(mHandler);
}
//
// Reading Buffers ...
void ReadBuffers()
{
//
// UP ...
CopyBuffer(
mHandler,
X_ATRSL_UP_LINE,
0,
mNumberOfItemsReadPerTick,
upBuffer);
//
// DOWN ...
CopyBuffer(
mHandler,
X_ATRSL_DOWN_LINE,
0,
mNumberOfItemsReadPerTick,
downBuffer);
//
// SAR ...
CopyBuffer(
mHandler,
X_ATRSL_SAR_LINE,
0,
mNumberOfItemsReadPerTick,
sarBuffer);
//
// RMA ...
CopyBuffer(
mHandler,
X_ATRSL_RMA_LINE,
0,
mNumberOfItemsReadPerTick,
rmaBuffer);
//
// WMA ...
CopyBuffer(
mHandler,
X_ATRSL_WMA_LINE,
0,
mNumberOfItemsReadPerTick,
wmaBuffer);
//
// MA1 ...
CopyBuffer(
mHandler,
X_ATRSL_MA1_LINE,
0,
mNumberOfItemsReadPerTick,
ma1Buffer);
//
// MA 1 ...
CopyBuffer(
mHandler,
X_ATRSL_SMA_LINE,
0,
mNumberOfItemsReadPerTick,
smaBuffer);
//
// EMA ...
CopyBuffer(
mHandler,
X_ATRSL_EMA_LINE,
0,
mNumberOfItemsReadPerTick,
emaBuffer);
//
// ATR ...
CopyBuffer(
mHandler,
X_ATRSL_ATR_LINE,
0,
mNumberOfItemsReadPerTick,
atrBuffer);
}
//
// START Tools Functions ...
//
//
// END Tools Functions ...
//
//
protected:
//
private:
//
// Symbol ...
string mSymbol;
//
// Period ...
ENUM_TIMEFRAMES mPeriod;
//
// Buffer Reading ...
int mNumberOfItemsReadPerTick;
//
// MARKET ...
//
// Length ...
int mLength;
//
// Increment Step ...
double mStep;
//
// Maximum ...
double mMaximum;
//
// High Line Applied To ...
ENUM_APPLIED_PRICE mHighAppliedTo;
//
// Low Line Applied To ...
ENUM_APPLIED_PRICE mLowAppliedTo;
//
string mTag;
//
int mHandler;
};