This commit is contained in:
2025-05-23 22:55:28 +03:30
parent 2f865670c5
commit b13cf05d1a
6 changed files with 1202 additions and 230 deletions
+28 -117
View File
@@ -132,91 +132,11 @@ struct XTriggerBlock
//
};
//
XTriggerBlock mX121TriggerBlocks[];
//
int HasX121TriggerBlocks()
{
return HasChild(mX121TriggerBlocks);
}
//
int CountX121TriggerBlocks()
{
return ArraySize(mX121TriggerBlocks);
}
//
void CleanX121TriggerBlocks(int maxAllowed = 0)
{
//
if (maxAllowed <= 0)
{
Clean(mX121TriggerBlocks);
}
else if (maxAllowed > 0)
{
//
CleanupArray(
mX121TriggerBlocks,
maxAllowed //
);
}
}
//
bool GetNewestX121TriggerBlock(
string forSymbol,
ENUM_TIMEFRAMES forPeriod,
XTriggerBlock &tb //
)
{
//
bool result = false;
//
tb.Clean();
//
result =
IsValid(forSymbol) &&
IsValid(forPeriod) &&
HasX121TriggerBlocks();
if (!result)
{
return result;
}
//
// Loop Through Trigger Blocks to Find Filtered Newest ...
int count = CountX121TriggerBlocks();
for (int i = 0; i < count; i++)
{
//
bool canSet = !tb.IsValid()
? true
: tb.ToIndex() < mX121TriggerBlocks[i].ToIndex();
if (canSet)
{
tb = mX121TriggerBlocks[i];
}
}
//
result = tb.IsValid();
if (!result)
{
tb.Clean();
}
//
return result;
}
//
// Extensions ...
//
// Detect Trigger Block ...
bool DetectTriggerBlock(
//
string symbol,
@@ -290,36 +210,36 @@ bool DetectTriggerBlock(
//
// Custom Configs ...
//
_r2r = 2;
_slAtrMultiplier = 1;
// //
// _r2r = 2;
// _slAtrMultiplier = 1;
//
// Validators ...
_forceHasSwing = true;
_forceObBarType = true;
_forceFVGBarType = true;
_validateGapSequence = true;
// //
// // Validators ...
// _forceHasSwing = true;
// _forceObBarType = true;
// _forceFVGBarType = true;
// _validateGapSequence = true;
//
_forceHasFLiquidity = false;
_forceHasRLiquidity = false;
_validateBlockEdgeBreakout = true;
// //
// _forceHasFLiquidity = false;
// _forceHasRLiquidity = false;
// _validateBlockEdgeBreakout = true;
//
// Filters ...
_filterBasedOnPV = true;
_filterBasedOnATR = true;
_filterBasedOnDelta = true;
_filterBasedOnVolume = true;
// //
// // Filters ...
// _filterBasedOnPV = true;
// _filterBasedOnATR = true;
// _filterBasedOnDelta = true;
// _filterBasedOnVolume = true;
//
_filterBasedOnSar = true;
_filterBasedOnRSI = false;
_filterBasedOnADX = false;
_filterBasedOnTrend = false;
_filterBasedOnSignalBar = true;
_filterBasedOnHKSignalBar = true;
// //
// _filterBasedOnSar = true;
// _filterBasedOnRSI = false;
// _filterBasedOnADX = false;
// _filterBasedOnTrend = false;
// _filterBasedOnSignalBar = true;
// _filterBasedOnHKSignalBar = true;
//
tb.Clean();
@@ -1098,15 +1018,6 @@ bool DetectTriggerBlock(
targets,
slAdditional //
);
//
// Add Trigger Block to Collection
// and Cleanup Unuseds ...
AddRef(
tb,
mX121TriggerBlocks //
);
CleanX121TriggerBlocks(20);
}
//