This commit is contained in:
2025-04-17 21:22:14 +03:30
parent c6e3c78e06
commit 04535223ea
7 changed files with 1210 additions and 381 deletions
+1 -1
View File
@@ -346,7 +346,7 @@ void OnTick()
// Execute Signal ... // Execute Signal ...
// //
has =eaTradeManager.Execute( has = eaTradeManager.Execute(
eaSignal, eaSignal,
eaConditions // eaConditions //
); );
+3 -3
View File
@@ -51,13 +51,13 @@ enum ENUM_X121_XCA_BUFFERS
X121_XCA_FIBO_L3_LINE = 16, X121_XCA_FIBO_L3_LINE = 16,
X121_XCA_SAR_LINE = 17, X121_XCA_SAR_LINE = 17,
X121_XCA_TREND_LINE = 18, X121_XCA_TREND_LINE = 18,
X121_XCA_TREND_STATE_LINE = 24,
X121_XCA_KI_LINE = 20, X121_XCA_KI_LINE = 20,
X121_XCA_KI_STATE_LINE = 25,
X121_XCA_SWING_LOW_LINE = 22, X121_XCA_SWING_LOW_LINE = 22,
X121_XCA_SWING_HIGH_LINE = 23, X121_XCA_SWING_HIGH_LINE = 23,
X121_XCA_TKI_LINE = 24, X121_XCA_TKI_LINE = 24,
X121_XCA_TKI_STATE_LINE = 30, X121_XCA_TREND_STATE_LINE = 26,
X121_XCA_KI_STATE_LINE = 27,
X121_XCA_TKI_STATE_LINE = 28,
}; };
// //
+6 -6
View File
@@ -479,17 +479,17 @@ double trendStateBuffer[];
double kiStateBuffer[]; double kiStateBuffer[];
// //
#define supBufferIndex mLastBufferIndex + 3 #define tkiStateBufferIndex mLastBufferIndex + 3
double tkiStateBuffer[];
//
#define supBufferIndex mLastBufferIndex + 4
double supBuffer[]; double supBuffer[];
// //
#define resBufferIndex mLastBufferIndex + 4 #define resBufferIndex mLastBufferIndex + 5
double resBuffer[]; double resBuffer[];
//
#define tkiStateBufferIndex mLastBufferIndex + 5
double tkiStateBuffer[];
// //
// Variables, Properties and etc ... // Variables, Properties and etc ...
+7 -2
View File
@@ -5458,6 +5458,11 @@ struct XBoxZone
*/ */
string GetTag() string GetTag()
{ {
//
int digits = GetDigits(symbol);
double nUpper = NormalizeDouble(NormalizePrice(upper, symbol), digits);
double nLower = NormalizeDouble(NormalizePrice(lower, symbol), digits);
// //
string typeStr = IsValid(type) string typeStr = IsValid(type)
? type + "_" ? type + "_"
@@ -5468,8 +5473,8 @@ struct XBoxZone
ToString(dir) + "_" + ToString(dir) + "_" +
symbol + "_" + symbol + "_" +
ToString(period) + "_" + ToString(period) + "_" +
ToString(upper) + "_" + ToString(nUpper) + "_" +
ToString(lower) ToString(nLower)
// //
; ;
File diff suppressed because it is too large Load Diff
+12 -4
View File
@@ -752,13 +752,21 @@ bool DetectXCAEAConditions(
// //
bool isCond1Bullish = bool isCond1Bullish =
conditions.isValeIsPivot && // conditions.isRSIOS &&
isTKITRNDSwitchedToBullish; // conditions.isValeIsPivot &&
// isTKITRNDSwitchedToBullish
conditions.isKISwitchedToBullish
//
;
// //
bool isCond1Bearish = bool isCond1Bearish =
conditions.isPeakIsPivot && // conditions.isRSIOB &&
isTKITRNDSwitchedToBearish; // conditions.isPeakIsPivot &&
// isTKITRNDSwitchedToBearish
conditions.isKISwitchedToBearish
//
;
// //
if (isCond1Bullish || if (isCond1Bullish ||
+414 -164
View File
@@ -172,174 +172,11 @@ class XCXCAEASignaller : XCBase
); );
// //
bool drawSWHPivots = true; DrawPivots();
bool drawSWLPivots = true;
bool drawPeakPivots = false;
bool drawValePivots = false;
// //
// Draw Peak SWH Res Pivots ...
if (drawPeakPivots)
{
//
has = detector.HasPeakSWHResPivots();
if (has)
{
//
count = detector.CountPeakSWHResPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector
.peakSWHResPivots[i]
.AsBox(iBox);
if (has)
{
//
iBox.to = cTime;
//
XCBoxObject *iObj;
has = helper.poiDrawer.DrawBox(
iBox,
iObj //
);
if (has)
{
mObjects.Add(iObj);
}
}
//
iBox.Clean();
}
//
Print("Draw Peak SWH Res Pivots ...");
}
}
// //
// Draw Vale SWL Sup Pivots ...
if (drawValePivots)
{
//
has = detector.HasValeSWLSupPivots();
if (has)
{
//
count = detector.CountValeSWLSupPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector
.valeSWLSupPivots[i]
.AsBox(iBox);
if (has)
{
//
iBox.to = cTime;
//
XCBoxObject *iObj;
has = helper.poiDrawer.DrawBox(
iBox,
iObj //
);
if (has)
{
mObjects.Add(iObj);
}
}
//
iBox.Clean();
}
//
Print("Draw Vale SWL Sup Pivots ...");
}
}
// //
// Draw SWH Pvots ...
if (drawSWHPivots)
{
//
has = detector.HasSWHPivots();
if (has)
{
//
count = detector.CountSWHPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector
.swhPivots[i]
.AsBox(iBox);
if (has)
{
//
iBox.to = cTime;
//
XCBoxObject *iObj;
has = helper
.poiDrawer
.DrawBox(
iBox,
iObj //
);
if (has)
{
mObjects.Add(iObj);
}
}
}
}
}
//
// Draw SWL Pvots ...
if (drawSWLPivots)
{
//
has = detector.HasSWLPivots();
if (has)
{
//
count = detector.CountSWLPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector
.swlPivots[i]
.AsBox(iBox);
if (has)
{
//
iBox.to = cTime;
//
XCBoxObject *iObj;
has = helper
.poiDrawer
.DrawBox(
iBox,
iObj //
);
if (has)
{
mObjects.Add(iObj);
}
}
}
}
}
// //
XCAEAConditions conditions; XCAEAConditions conditions;
@@ -678,6 +515,419 @@ class XCXCAEASignaller : XCBase
protected: protected:
// //
//
void DrawPivots()
{
//
int count = 0;
bool has = false;
datetime cTime = TimeCurrent();
//
bool drawSWHPivots = false;
bool drawSWLPivots = false;
bool drawPeakPivots = false;
bool drawValePivots = false;
bool drawKIBullishPivots = false;
bool drawKIBearishPivots = false;
bool drawTKIBullishPivots = false;
bool drawTKIBearishPivots = false;
bool drawTrendBullishPivots = true;
bool drawTrendBearishPivots = true;
//
// Draw Peak SWH Res Pivots ...
if (drawPeakPivots)
{
//
has = detector.HasPeakSWHResPivots();
if (has)
{
//
count = detector.CountPeakSWHResPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector
.peakSWHResPivots[i]
.AsBox(iBox);
if (has)
{
//
iBox.to = cTime;
//
XCBoxObject *iObj;
has = helper.poiDrawer.DrawBox(
iBox,
iObj //
);
if (has)
{
mObjects.Add(iObj);
}
}
//
iBox.Clean();
}
}
}
//
// Draw Vale SWL Sup Pivots ...
if (drawValePivots)
{
//
has = detector.HasValeSWLSupPivots();
if (has)
{
//
count = detector.CountValeSWLSupPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector
.valeSWLSupPivots[i]
.AsBox(iBox);
if (has)
{
//
iBox.to = cTime;
//
XCBoxObject *iObj;
has = helper.poiDrawer.DrawBox(
iBox,
iObj //
);
if (has)
{
mObjects.Add(iObj);
}
}
//
iBox.Clean();
}
}
}
//
// Draw SWH Pvots ...
if (drawSWHPivots)
{
//
has = detector.HasSWHPivots();
if (has)
{
//
count = detector.CountSWHPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector
.swhPivots[i]
.AsBox(iBox);
if (has)
{
//
iBox.to = cTime;
//
XCBoxObject *iObj;
has = helper
.poiDrawer
.DrawBox(
iBox,
iObj //
);
if (has)
{
mObjects.Add(iObj);
}
}
}
}
}
//
// Draw SWL Pvots ...
if (drawSWLPivots)
{
//
has = detector.HasSWLPivots();
if (has)
{
//
count = detector.CountSWLPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector
.swlPivots[i]
.AsBox(iBox);
if (has)
{
//
iBox.to = cTime;
//
XCBoxObject *iObj;
has = helper
.poiDrawer
.DrawBox(
iBox,
iObj //
);
if (has)
{
mObjects.Add(iObj);
}
}
}
}
}
//
// Draw KI Bullish Pivots ...
if (drawKIBullishPivots)
{
//
has = detector.HasKIBullishPivots();
if (has)
{
//
count = detector.CountKIBullishPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector
.kiBullishPivots[i]
.AsBox(iBox);
if (has)
{
//
iBox.to = cTime;
//
XCBoxObject *iObj;
has = helper
.poiDrawer
.DrawBox(
iBox,
iObj //
);
if (has)
{
mObjects.Add(iObj);
}
}
}
}
}
//
// Draw KI Bearish Pivots ...
if (drawKIBearishPivots)
{
//
has = detector.HasKIBullishPivots();
if (has)
{
//
count = detector.CountKIBearishPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector
.kiBearishPivots[i]
.AsBox(iBox);
if (has)
{
//
iBox.to = cTime;
//
XCBoxObject *iObj;
has = helper
.poiDrawer
.DrawBox(
iBox,
iObj //
);
if (has)
{
mObjects.Add(iObj);
}
}
}
}
}
//
// Draw TKI Bullish Pivots ...
if (drawTKIBullishPivots)
{
//
has = detector.HasTKIBullishPivots();
if (has)
{
//
count = detector.CountTKIBullishPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector
.tkiBullishPivots[i]
.AsBox(iBox);
if (has)
{
//
// iBox.to = cTime;
//
XCBoxObject *iObj;
has = helper
.poiDrawer
.DrawBox(
iBox,
iObj //
);
if (has)
{
mObjects.Add(iObj);
}
}
}
}
}
//
// Draw TKI Bearish Pivots ...
if (drawTKIBearishPivots)
{
//
has = detector.HasTKIBullishPivots();
if (has)
{
//
count = detector.CountTKIBearishPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector
.tkiBearishPivots[i]
.AsBox(iBox);
if (has)
{
//
// iBox.to = cTime;
//
XCBoxObject *iObj;
has = helper
.poiDrawer
.DrawBox(
iBox,
iObj //
);
if (has)
{
mObjects.Add(iObj);
}
}
}
}
}
//
// Draw Trend Bullish Pivots ...
if (drawTrendBullishPivots)
{
//
has = detector.HasTrendBullishPivots();
if (has)
{
//
count = detector.CountTrendBullishPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector
.trendBullishPivots[i]
.AsBox(iBox);
if (has)
{
//
// iBox.to = cTime;
//
XCBoxObject *iObj;
has = helper
.poiDrawer
.DrawBox(
iBox,
iObj //
);
if (has)
{
mObjects.Add(iObj);
}
}
}
}
}
//
// Draw Trend Bearish Pivots ...
if (drawTrendBearishPivots)
{
//
has = detector.HasTrendBullishPivots();
if (has)
{
//
count = detector.CountTrendBearishPivots();
for (int i = 0; i < count; i++)
{
//
XBoxZone iBox;
has = detector
.trendBearishPivots[i]
.AsBox(iBox);
if (has)
{
//
// iBox.to = cTime;
//
XCBoxObject *iObj;
has = helper
.poiDrawer
.DrawBox(
iBox,
iObj //
);
if (has)
{
mObjects.Add(iObj);
}
}
}
}
}
}
// //
// Private ... // Private ...
private: private: