Files
xMQL5/BKPS/Series2/XTMPack/x-saherelm.xmap.provider.indicators.lib.mq5
T
2024-01-25 04:09:42 +03:30

330 lines
7.2 KiB
Plaintext

///////////////////////////////////////////////////////////////
//
// SaherElm IT Center MQL5 XMAP Signal Provider Library Inputs
// -----------------------------------------------------------
// Name: XMAPSignalProvider
// Description: XMAP based signal provider ...
//
//
// 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
//
// Imports all Indicators Helper here ...
input group "XMAP Provider Indicators";
#include "x-saherelm.xmap.provider.xtm.indicator.helper.lib.mq5";
#include "x-saherelm.xmap.provider.xtd.oscillator.helper.lib.mq5";
#include "x-saherelm.xmap.provider.xobd.indicator.helper.lib.mq5";
#include "x-saherelm.xmap.provider.xchma.oscillator.helper.lib.mq5";
#include "x-saherelm.xmap.provider.xchlh.oscillator.helper.lib.mq5";
//
int xMAPMaxLengthOfInputs = 0;
int xMAPCalculatedBars = 0;
//
// Init Indicators ...
bool XMAPInitIndicators()
{
//
bool result = false;
//
// Check and Calculate Max Length in Inputs ...
xMAPMaxLengthOfInputs = MathMax(
xCHLHScLength,
xCHLHMcLength);
xMAPMaxLengthOfInputs = MathMax(
xMAPMaxLengthOfInputs,
xCHLHLcLength);
xMAPMaxLengthOfInputs = MathMax(
xMAPMaxLengthOfInputs,
xTDLength);
xMAPMaxLengthOfInputs = MathMax(
xMAPMaxLengthOfInputs,
xCHMALcFastLength);
xMAPMaxLengthOfInputs = MathMax(
xMAPMaxLengthOfInputs,
xCHMALcSlowLength);
xMAPMaxLengthOfInputs = MathMax(
xMAPMaxLengthOfInputs,
xCHMAMcFastLength);
xMAPMaxLengthOfInputs = MathMax(
xMAPMaxLengthOfInputs,
xCHMAMcSlowLength);
xMAPMaxLengthOfInputs = MathMax(
xMAPMaxLengthOfInputs,
xCHMAScFastLength);
xMAPMaxLengthOfInputs = MathMax(
xMAPMaxLengthOfInputs,
xCHMAScSlowLength);
//
// Initialize Indicator/Oscillator Handlers ...
ResetLastError();
//
// XCHMA Init ...
result = XCHMAInitHandlers();
if (!result)
{
return result;
}
//
// XCHLH Init ...
result = XCHLHInitHandlers();
if (!result)
{
return result;
}
//
// XTD Init ...
result = XTDInitHandlers();
if (!result)
{
return result;
}
//
// XOBD Init ...
result = XOBDInitHandlers();
if (!result)
{
return result;
}
//
// XTM Init ...
result = XTMInitHandlers();
if (!result)
{
return result;
}
//
result = true;
//
return result;
}
//
// Release Indicators ...
void XMAPReleaseIndicators()
{
//
// Release Handlers ...
XTDReleaseHandlers();
XTMReleaseHandlers();
XOBDReleaseHandlers();
XCHMAReleaseHandlers();
XCHLHReleaseHandlers();
}
//
// Handle Reading Buffers ...
void XMAPHandleReadingBuffers()
{
//
// Reading Calculated Bars for a Simple Handler ...
xMAPCalculatedBars = BarsCalculated(xCHMAHandler);
//
// Read Indicators Buffers ...
XTMReadBuffers();
XTDReadBuffers();
XOBDReadBuffers();
XCHMAReadBuffers();
XCHLHReadBuffers();
}
//
//
// START Combination Functions ...
//
//
// //
// // XTD Based Long Conditions ...
// bool XTDHasLongConditions()
// {
// //
// XOHCL c1 = GetCandle(1);
// XOHCL c2 = GetCandle(2);
// XOHCL c3 = GetCandle(3);
// XOHCL c4 = GetCandle(4);
// XOHCL c5 = GetCandle(5);
// //
// double ask = GetAsk();
// double bid = GetBid();
// double entry = GetEntry();
// //
// // XTD Detect Bullish Crossed Over Bearish ...
// bool isXTDBullishCrossedOverBearish =
// //
// xTDBullishBuffer[1] > xTDBearishBuffer[1] &&
// !(xTDBullishBuffer[2] > xTDBearishBuffer[2]);
// //
// // XTD Detect Bullish Power Up ...
// bool isXTDBullishTrendUp =
// //
// xTDBullishBuffer[1] > xTDBullishBuffer[2] &&
// xTDBullishBuffer[1] > xTDBullishBuffer[3] &&
// xTDBullishBuffer[1] > xTDBullishBuffer[4] &&
// xTDBullishBuffer[1] > xTDBullishBuffer[5] &&
// xTDBullishBuffer[1] > xTDBullishBuffer[6];
// //
// // XTD Passed ...
// bool result =
// isXTDBullishTrendUp &&
// isXTDBullishCrossedOverBearish;
// //
// return result;
// }
// //
// // XCHMA Based Long Conditions ...
// bool XCHMAHasLongCondition()
// {
// //
// bool result = false;
// //
// // We have to Find Peaks and Vales ...
// // each indicator has specific way to find it ...
// //
// // Method 7 ...
// // Find all Vales for Starting Long Position ...
// bool isMethod7HasSignal =
// //
// XTMHasLongConditions()
// //
// ;
// //
// result =
// //
// // Method 7 ...
// isMethod7HasSignal
// //
// ;
// //
// return result;
// }
// //
// // XCHMA Based Check Can Close Long Trades ...
// bool XCHMACanCloseLongTrades()
// {
// //
// bool result = false;
// //
// double xCHMAMinValue1 = XCHMAGetMinValue(1);
// double xCHMAMinValue2 = XCHMAGetMinValue(2);
// //
// bool isSCFastUnderSlow =
// xCHMAScFastBuffer[1] < xCHMAScSlowBuffer[1] &&
// xCHMAScFastBuffer[2] < xCHMAScSlowBuffer[2];
// //
// bool isSCFastCrossedUnderMin =
// xCHMAScFastBuffer[1] <= xCHMAMinValue1 && xCHMAScFastBuffer[2] > xCHMAMinValue2;
// //
// result =
// isSCFastUnderSlow &&
// isSCFastCrossedUnderMin;
// //
// return result;
// }
// //
// // XCHLH Based Check Can Close Long Trades ...
// bool XCHLHCanCloseLongTrades()
// {
// //
// bool result = false;
// //
// // MC LL and SC LL same for Loopback Length ...
// // and SC LL [1] < 2 < 3 < 4 < 5
// // and SC HH < MC HH
// // and SC HH[1] < 2 < 3 < 4 < 5
// //
// bool isMCSCLLSameForLoopback = XCHLHIsSameMCSCLL(1);
// bool isSCLLLessThanLoopback = true;
// bool isSCHHLessThanMCHH = xCHLHScHHBuffer[1] < xCHLHMcHHBuffer[1];
// bool isSCHHLessThanLoopback = true;
// for (int i = 2; i < xCHLHScLength + 1; i++)
// {
// //
// bool isSameLL = XCHLHIsSameMCSCLL(i);
// isMCSCLLSameForLoopback = isMCSCLLSameForLoopback && isSameLL;
// //
// bool isScLLLess = xCHLHScLLBuffer[1] < xCHLHScLLBuffer[i];
// isSCLLLessThanLoopback = isSCLLLessThanLoopback || isScLLLess;
// //
// bool isSCHHLessThanMC = xCHLHScHHBuffer[i] < xCHLHMcHHBuffer[i];
// isSCHHLessThanMCHH = isSCHHLessThanMCHH && isSCHHLessThanMC;
// //
// bool isSCHHLess = xCHLHScHHBuffer[1] < xCHLHScHHBuffer[i];
// isSCHHLessThanLoopback = isSCHHLessThanLoopback || isSCHHLess;
// }
// //
// result =
// //
// isMCSCLLSameForLoopback &&
// //
// isSCLLLessThanLoopback &&
// //
// isSCHHLessThanMCHH &&
// //
// isSCHHLessThanLoopback
// //
// ;
// //
// return result;
// }
//
//
// END Combination Functions ...
//
//