add MQL5Test Workspace Content as BKP Solution ...
This commit is contained in:
+324
@@ -0,0 +1,324 @@
|
||||
///////////////////////////////////////////////////////
|
||||
//
|
||||
// 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;
|
||||
};
|
||||
Reference in New Issue
Block a user