Complete Test Linear Regression and Required to Apply Works on Real Project ...

This commit is contained in:
2025-09-21 17:49:39 +03:30
parent 84dc311c72
commit 7a4f1aa48b
6 changed files with 1688 additions and 258 deletions
+166 -25
View File
@@ -1147,34 +1147,175 @@ void DetectPatterns()
{
//
// ZIGZAG Pattern ...
if (detectZIGZAGPatterns)
// if (detectZIGZAGPatterns)
// {
// //
// // Detect Market Analysis ...
// XZigZagAnalysis zAnalysis;
// has = fima2Signaller.fimaPOIDetector.AnalyseMarketUsingZigZag(
// cBar,
// cBar.period,
// fima2Signaller.fimaHelper,
// zAnalysis,
// 15 //
// );
// if (has)
// {
// //
// Print(ShortName + zAnalysis.GetMessage());
// //
// XCZigZagAnalysisObject *iObj;
// has = fima2Signaller.fimaPOIDrawer.DrawZigZagMarketAnalysisByPV(
// iObj,
// zAnalysis //
// );
// if (has)
// {
// draws.Add(iObj);
// }
// }
// }
//
// Reading Pivots ...
double iLows[];
double iHighs[];
double lowTo = 0;
double highTo = 0;
double lowFrom = 0;
double highFrom = 0;
datetime lowToTime = NULL;
datetime highToTime = NULL;
datetime lowFromTime = NULL;
datetime highFromTime = NULL;
double lowsSlope = EMPTY_VALUE;
double highsSlope = EMPTY_VALUE;
double lowsIntercept = EMPTY_VALUE;
double highsIntercept = EMPTY_VALUE;
//
int iLoopbackLength = 50;
for (int i = 0; i < iLoopbackLength; i++)
{
//
// Detect Market Analysis ...
XZigZagAnalysis zAnalysis;
has = fima2Signaller.fimaPOIDetector.AnalyseMarketUsingZigZag(
cBar,
cBar.period,
fima2Signaller.fimaHelper,
zAnalysis,
15 //
);
if (has)
{
//
Print(ShortName + zAnalysis.GetMessage());
double iLowPrice = iLow(_Symbol, _Period, i);
double iHighPrice = iHigh(_Symbol, _Period, i);
//
XCZigZagAnalysisObject *iObj;
has = fima2Signaller.fimaPOIDrawer.DrawZigZagMarketAnalysis(
iObj,
zAnalysis //
);
if (has)
{
draws.Add(iObj);
}
}
//
Add(
iLowPrice,
iLows //
);
Add(
iHighPrice,
iHighs //
);
}
has = CalculateLinearRegression(
lowsSlope,
lowsIntercept,
iLows,
0,
0 //
);
if (has)
{
//
lowToTime = GetBarTime(
_Symbol,
_Period,
0 //
);
lowTo = CalculateValueBySlopeIntercept(
lowsSlope,
lowsIntercept,
0 //
);
//
lowFromTime = GetBarTime(
_Symbol,
_Period,
iLoopbackLength //
);
lowFrom = CalculateValueBySlopeIntercept(
lowsSlope,
lowsIntercept,
iLoopbackLength //
);
}
//
has = CalculateLinearRegression(
highsSlope,
highsIntercept,
iHighs,
0,
0 //
);
if (has)
{
//
highToTime = GetBarTime(
_Symbol,
_Period,
0 //
);
highTo = CalculateValueBySlopeIntercept(
highsSlope,
highsIntercept,
0 //
);
//
highFromTime = GetBarTime(
_Symbol,
_Period,
iLoopbackLength //
);
highFrom = CalculateValueBySlopeIntercept(
highsSlope,
highsIntercept,
iLoopbackLength //
);
}
//
// Try to Draw ...
//
// Low ...
CChartObjectTrend *iLowTrend;
has = fima2Signaller.fimaPOIDrawer.DrawTrendLine(
lowFrom,
lowFromTime,
lowTo,
lowToTime,
iLowTrend,
"LOW_TREMD",
true // Ray Right ...
);
if (has)
{
draws.Add(iLowTrend);
}
//
// High ...
CChartObjectTrend *iHighTrend;
has = fima2Signaller.fimaPOIDrawer.DrawTrendLine(
highFrom,
highFromTime,
highTo,
highToTime,
iHighTrend,
"HIGH_TREMD",
true // Ray Right ...
);
if (has)
{
draws.Add(iHighTrend);
}
}