last works on Detecting Pivots ...
- Pivots Detection works Fine; - Analyse Pivots Has some issues and i have to Fix them ...
This commit is contained in:
@@ -43,8 +43,8 @@ class XCXFIMABaseSignaller : public XCBaseSignaller
|
||||
//
|
||||
XFIMAInputs fimaInputs; // XFIMA Inputs ...
|
||||
XCXFIMAHelper *fimaHelper; // XFIMA Indicator Helper ...
|
||||
XCXFIMAPOIDrawer *fimaPOIDrawer; // XFIMA POI Drawer ...
|
||||
XCXFIMAPOIDetector *fimaPOIDetector; // XFIMA POI Detector ...
|
||||
XCXFIMAPOIDrawer *poiDrawer; // XFIMA POI Drawer ...
|
||||
XCXFIMAPOIDetector *poiDetector; // XFIMA POI Detector ...
|
||||
|
||||
//
|
||||
// Constructor ...
|
||||
@@ -90,8 +90,8 @@ class XCXFIMABaseSignaller : public XCBaseSignaller
|
||||
}
|
||||
|
||||
//
|
||||
fimaPOIDrawer = new XCXFIMAPOIDrawer();
|
||||
fimaPOIDetector = new XCXFIMAPOIDetector();
|
||||
poiDrawer = new XCXFIMAPOIDrawer();
|
||||
poiDetector = new XCXFIMAPOIDetector(fimaHelper);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -123,12 +123,12 @@ class XCXFIMABaseSignaller : public XCBaseSignaller
|
||||
ZeroMemory(fimaHelper);
|
||||
|
||||
//
|
||||
delete fimaPOIDrawer;
|
||||
ZeroMemory(fimaPOIDrawer);
|
||||
delete poiDrawer;
|
||||
ZeroMemory(poiDrawer);
|
||||
|
||||
//
|
||||
delete fimaPOIDetector;
|
||||
ZeroMemory(fimaPOIDetector);
|
||||
delete poiDetector;
|
||||
ZeroMemory(poiDetector);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -199,7 +199,7 @@ class XCXFIMABaseSignaller : public XCBaseSignaller
|
||||
// Validate Fima Helper Requirements ...
|
||||
result = fimaInputs.IsValid() &&
|
||||
fimaHelper != NULL &&
|
||||
fimaPOIDetector != NULL;
|
||||
poiDetector != NULL;
|
||||
|
||||
//
|
||||
return result;
|
||||
|
||||
@@ -36,14 +36,18 @@ class XCXFIMAPOIDetector : public XCMarketPatternDetector
|
||||
public:
|
||||
//
|
||||
// Props ...
|
||||
XCBarAnalyser *barAnalyser; // Bar Analyser ...
|
||||
XCBarAnalyser *barAnalyser; // Bar Analyser ...
|
||||
XCXFIMAHelper *fimaHelper; // XFIMA Helper ...
|
||||
|
||||
//
|
||||
// Constructor ...
|
||||
XCXFIMAPOIDetector()
|
||||
XCXFIMAPOIDetector(
|
||||
XCXFIMAHelper *_fimaHelper //
|
||||
) : XCMarketPatternDetector()
|
||||
{
|
||||
//
|
||||
barAnalyser = new XCBarAnalyser();
|
||||
fimaHelper = _fimaHelper;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -57,7 +61,279 @@ class XCXFIMAPOIDetector : public XCMarketPatternDetector
|
||||
// Actions and Tools ...
|
||||
|
||||
//
|
||||
// Tools ...
|
||||
// Pivot Analysors ...
|
||||
|
||||
/**
|
||||
* Analyse Market based on Specified Kind of Pivots ...
|
||||
*
|
||||
* @param analysis: XPivotAnalysis, reference to hold result ...
|
||||
* @param barIndex: int, Bar Index ...
|
||||
* @param requiredNumberOFPivots: int, Specified which Number of Pivots must be Extracted ...
|
||||
* @param maxAllowedLoopbackLength: int, Specified Maximum Loopback Length for Pivot Extraction ...
|
||||
* @param validationLength: int, Specified Pivots Validation Length ignore if <= 0 ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool AnalysePVPivots(
|
||||
XPivotAnalysis &analysis,
|
||||
int barIndex = 0,
|
||||
int requiredNumberOFPivots = 50,
|
||||
int maxAllowedLoopbackLength = 1500,
|
||||
int validationLength = 0 //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
// Prepare ...
|
||||
analysis.Clean();
|
||||
|
||||
//
|
||||
// Reading Pivots ...
|
||||
XPivot pivots[];
|
||||
int count = ExtractPVPivots(
|
||||
pivots, // Result ...
|
||||
barIndex, // Bar Index ...
|
||||
requiredNumberOFPivots, // Required Number of Pivots ...
|
||||
maxAllowedLoopbackLength, // Max Allowed Loopback ...
|
||||
validationLength // Validation Length ...
|
||||
);
|
||||
result = IsValidSize(count);
|
||||
if (!result)
|
||||
{
|
||||
//
|
||||
SpecifiedClean(pivots);
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
string symbol = fimaHelper.GetSymbol();
|
||||
ENUM_TIMEFRAMES period = fimaHelper.GetPeriod();
|
||||
|
||||
//
|
||||
// Initialize Analysis ...
|
||||
result = analysis.Init(
|
||||
"XFIMA_XPV",
|
||||
symbol,
|
||||
period,
|
||||
pivots //
|
||||
);
|
||||
|
||||
//
|
||||
// Cleanup Resources ...
|
||||
if (!result)
|
||||
{
|
||||
analysis.Clean();
|
||||
}
|
||||
SpecifiedClean(pivots);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Analyse Market based on Specified Kind of Pivots ...
|
||||
*
|
||||
* @param analysis: XPivotAnalysis, reference to hold result ...
|
||||
* @param barIndex: int, Bar Index ...
|
||||
* @param requiredNumberOFPivots: int, Specified which Number of Pivots must be Extracted ...
|
||||
* @param maxAllowedLoopbackLength: int, Specified Maximum Loopback Length for Pivot Extraction ...
|
||||
*
|
||||
* @return ( bool )
|
||||
*/
|
||||
bool AnalyseZigZagPivots(
|
||||
XPivotAnalysis &analysis,
|
||||
int barIndex = 0,
|
||||
int requiredNumberOFPivots = 50,
|
||||
int maxAllowedLoopbackLength = 1500 //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
// Prepare ...
|
||||
analysis.Clean();
|
||||
|
||||
//
|
||||
// Reading Pivots ...
|
||||
XPivot pivots[];
|
||||
int count = ExtractZigZagPivots(
|
||||
pivots, // Result ...
|
||||
barIndex, // Bar Index ...
|
||||
requiredNumberOFPivots, // Required Number of Pivots ...
|
||||
maxAllowedLoopbackLength // Max Allowed Loopback ...
|
||||
);
|
||||
result = IsValidSize(count);
|
||||
if (!result)
|
||||
{
|
||||
//
|
||||
SpecifiedClean(pivots);
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
string symbol = fimaHelper.GetSymbol();
|
||||
ENUM_TIMEFRAMES period = fimaHelper.GetPeriod();
|
||||
|
||||
//
|
||||
// Initialize Analysis ...
|
||||
result = analysis.Init(
|
||||
"XFIMA_XZG",
|
||||
symbol,
|
||||
period,
|
||||
pivots //
|
||||
);
|
||||
|
||||
//
|
||||
// Cleanup Resources ...
|
||||
if (!result)
|
||||
{
|
||||
analysis.Clean();
|
||||
}
|
||||
SpecifiedClean(pivots);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Pivot Extractors ...
|
||||
|
||||
/**
|
||||
* Extract Specified Kind of Pivots ...
|
||||
*
|
||||
* @param pivots: XPivot, refrence Collection to hold Extracted pivots ...
|
||||
* @param barIndex: int, Specified Bar Index ...
|
||||
* @param requiredNumberOFPivots: int, Specified which Number of Pivots must be Extracted ...
|
||||
* @param maxAllowedLoopbackLength: int, Specified Maximum Loopback Length for Pivot Extraction ...
|
||||
* @param validationLength: int, Specified Pivots Validation Length ignore if <= 0 ...
|
||||
*
|
||||
* @return ( int )
|
||||
*/
|
||||
int ExtractPVPivots(
|
||||
XPivot &pivots[],
|
||||
int barIndex = 0,
|
||||
int requiredNumberOFPivots = 50,
|
||||
int maxAllowedLoopbackLength = 1500,
|
||||
int validationLength = 0 //
|
||||
)
|
||||
{
|
||||
//
|
||||
int result = 0;
|
||||
|
||||
//
|
||||
result = fimaHelper.ExtractPVPivots(
|
||||
pivots,
|
||||
barIndex,
|
||||
requiredNumberOFPivots,
|
||||
maxAllowedLoopbackLength,
|
||||
validationLength //
|
||||
);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract Specified Kind of Pivots ...
|
||||
*
|
||||
* @param pivots: XPivot, refrence Collection to hold Extracted pivots ...
|
||||
* @param barIndex: int, Specified Bar Index ...
|
||||
* @param requiredNumberOFPivots: int, Specified which Number of Pivots must be Extracted ...
|
||||
* @param maxAllowedLoopbackLength: int, Specified Maximum Loopback Length for Pivot Extraction ...
|
||||
* @param validationLength: int, Specified Pivots Validation Length ignore if <= 0 ...
|
||||
*
|
||||
* @return ( int )
|
||||
*/
|
||||
int ExtractMAPivots(
|
||||
XPivot &pivots[],
|
||||
int barIndex = 0,
|
||||
int requiredNumberOFPivots = 50,
|
||||
int maxAllowedLoopbackLength = 1500,
|
||||
int validationLength = 0 //
|
||||
)
|
||||
{
|
||||
//
|
||||
int result = 0;
|
||||
|
||||
//
|
||||
result = fimaHelper.ExtractMAPivots(
|
||||
pivots,
|
||||
barIndex,
|
||||
requiredNumberOFPivots,
|
||||
maxAllowedLoopbackLength,
|
||||
validationLength //
|
||||
);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract Specified Kind of Pivots ...
|
||||
*
|
||||
* @param pivots: XPivot, refrence Collection to hold Extracted pivots ...
|
||||
* @param barIndex: int, Specified Bar Index ...
|
||||
* @param requiredNumberOFPivots: int, Specified which Number of Pivots must be Extracted ...
|
||||
* @param maxAllowedLoopbackLength: int, Specified Maximum Loopback Length for Pivot Extraction ...
|
||||
*
|
||||
* @return ( int )
|
||||
*/
|
||||
int ExtractSARPivots(
|
||||
XPivot &pivots[],
|
||||
int barIndex = 0,
|
||||
int requiredNumberOFPivots = 50,
|
||||
int maxAllowedLoopbackLength = 1500 //
|
||||
)
|
||||
{
|
||||
//
|
||||
int result = 0;
|
||||
|
||||
//
|
||||
result = fimaHelper.ExtractSARPivots(
|
||||
pivots,
|
||||
barIndex,
|
||||
requiredNumberOFPivots,
|
||||
maxAllowedLoopbackLength //
|
||||
);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract Specified Kind of Pivots ...
|
||||
*
|
||||
* @param pivots: XPivot, refrence Collection to hold Extracted pivots ...
|
||||
* @param barIndex: int, Specified Bar Index ...
|
||||
* @param requiredNumberOFPivots: int, Specified which Number of Pivots must be Extracted ...
|
||||
* @param maxAllowedLoopbackLength: int, Specified Maximum Loopback Length for Pivot Extraction ...
|
||||
*
|
||||
* @return ( int )
|
||||
*/
|
||||
int ExtractZigZagPivots(
|
||||
XPivot &pivots[],
|
||||
int barIndex = 0,
|
||||
int requiredNumberOFPivots = 50,
|
||||
int maxAllowedLoopbackLength = 1500 //
|
||||
)
|
||||
{
|
||||
//
|
||||
int result = 0;
|
||||
|
||||
//
|
||||
result = fimaHelper.ExtractZigZagPivots(
|
||||
pivots,
|
||||
barIndex,
|
||||
requiredNumberOFPivots,
|
||||
maxAllowedLoopbackLength //
|
||||
);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Destroy ...
|
||||
|
||||
Reference in New Issue
Block a user