This commit is contained in:
2025-05-23 17:25:59 +03:30
parent b03facd82a
commit 99f0e57d2e
2 changed files with 70 additions and 7 deletions
+31 -1
View File
@@ -84,6 +84,7 @@ input ENUM_X_MARKET_CYCLES appliedCycle = X_MARKET_CYCLE_HIND; // Applied Cycle
// Signal ... // Signal ...
input group "Signal"; input group "Signal";
input int signalR2R = 4; // Risk Reward Ratio input int signalR2R = 4; // Risk Reward Ratio
input bool drawSignals = true; // Draw Signal
input double slAtrMultiplier = 1.0; // ATR Multiplier for SL input double slAtrMultiplier = 1.0; // ATR Multiplier for SL
// //
@@ -2023,11 +2024,40 @@ void CalculateValues(
has = DrawTriggerBlock( has = DrawTriggerBlock(
tb, tb,
mDrawer, mDrawer,
mObjects // mObjects,
NULL,
drawSignals //
); );
// //
// Alert ... // Alert ...
bool canAlert =
mEnableAlerts &&
prevCalculated > 0;
bool canLogOnly =
mEnableAlerts &&
prevCalculated == 0;
if (has &&
(canAlert ||
canLogOnly))
{
//
string message =
tb.trigger.symbol + "," +
ToString(tb.trigger.period) + "> " +
ToString(tb.trigger.dir) +
" Zone Detected at: " + ToString(tb.trigger.to);
//
if (canLogOnly)
{
mAlert.LogAlert(message);
}
else if (canAlert)
{
mAlert.Alert(message);
}
}
} }
} }
+39 -6
View File
@@ -184,6 +184,27 @@ struct XTriggerBlock
// //
}; };
//
XTriggerBlock mX121TriggerBlocks[];
//
int HasX121TriggerBlocks()
{
return HasChild(mX121TriggerBlocks);
}
//
int CountX121TriggerBlocks()
{
return ArraySize(mX121TriggerBlocks);
}
//
void CleanX121TriggerBlocks()
{
Clean(mX121TriggerBlocks) l
}
// //
// Extensions ... // Extensions ...
@@ -260,6 +281,10 @@ bool DetectTriggerBlock(
// //
// Custom Configs ... // Custom Configs ...
//
_r2r = 2;
_slAtrMultiplier = 1;
// //
// Validators ... // Validators ...
_forceHasSwing = true; _forceHasSwing = true;
@@ -270,7 +295,7 @@ bool DetectTriggerBlock(
// //
_forceHasFLiquidity = false; _forceHasFLiquidity = false;
_forceHasRLiquidity = false; _forceHasRLiquidity = false;
_validateBlockEdgeBreakout = false; _validateBlockEdgeBreakout = true;
// //
// Filters ... // Filters ...
@@ -280,12 +305,12 @@ bool DetectTriggerBlock(
_filterBasedOnVolume = true; _filterBasedOnVolume = true;
// //
_filterBasedOnSar = false; _filterBasedOnSar = true;
_filterBasedOnRSI = false; _filterBasedOnRSI = false;
_filterBasedOnADX = false; _filterBasedOnADX = false;
_filterBasedOnTrend = false; _filterBasedOnTrend = false;
_filterBasedOnSignalBar = false; _filterBasedOnSignalBar = true;
_filterBasedOnHKSignalBar = false; _filterBasedOnHKSignalBar = true;
// //
tb.Clean(); tb.Clean();
@@ -1062,6 +1087,12 @@ bool DetectTriggerBlock(
targets, targets,
slAdditional // slAdditional //
); );
//
Add(
tb,
mX121TriggerBlocks //
);
} }
// //
@@ -1078,8 +1109,9 @@ bool DrawTriggerBlock(
XCPOIDrawer *drawer, XCPOIDrawer *drawer,
CArrayObj &objects, CArrayObj &objects,
datetime to = NULL, datetime to = NULL,
int rrZoneLength = 10,
// //
bool _drawSignals = false,
int rrZoneLength = 10,
// Styles ... // Styles ...
// //
// Trigger Block ... // Trigger Block ...
@@ -1331,7 +1363,8 @@ bool DrawTriggerBlock(
// //
// Draw RR of Signal ... // Draw RR of Signal ...
if (trigger.signal.IsValid() && if (_drawSignals &&
trigger.signal.IsValid() &&
rrZoneLength > 0) rrZoneLength > 0)
{ {
// //