321 lines
7.2 KiB
Plaintext
321 lines
7.2 KiB
Plaintext
|
|
// #region Signals ...
|
|
|
|
// #region POI ...
|
|
bool IsBullishPOILongEntry(
|
|
int barIndex = 0,
|
|
ENUM_TIMEFRAMES lowerTF = PERIOD_M5 //
|
|
)
|
|
{
|
|
//
|
|
// IMPORTANT: Use near Support/Resistance ...
|
|
bool result = poiDetector.IsBullishPOI(barIndex) &&
|
|
kiParser.IsSafeBullishEntry(barIndex) &&
|
|
IsTFBullishPattern(barIndex, lowerTF);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool IsBearishPOIShortEntry(
|
|
int barIndex = 0,
|
|
ENUM_TIMEFRAMES lowerTF = PERIOD_M5 //
|
|
)
|
|
{
|
|
//
|
|
// IMPORTANT: Use near Support/Resistance ...
|
|
bool result = poiDetector.IsBearishPOI(barIndex) &&
|
|
kiParser.IsSafeBearishEntry(barIndex) &&
|
|
IsTFBearishPattern(barIndex, lowerTF);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool ExitBullishPOILong(int barIndex = 0)
|
|
{
|
|
//
|
|
bool result =
|
|
poiDetector.IsBearishReversalPOI(barIndex) ||
|
|
poiDetector.IsBearishBreakoutPOI(barIndex) ||
|
|
poiDetector.IsBearishExhaustionPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool ExitBearishPOIShort(int barIndex = 0)
|
|
{
|
|
//
|
|
bool result =
|
|
poiDetector.IsBullishReversalPOI(barIndex) ||
|
|
poiDetector.IsBullishBreakoutPOI(barIndex) ||
|
|
poiDetector.IsBullishExhaustionPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
// #endregion
|
|
|
|
// #region Breakout ...
|
|
bool IsBreakoutLongEntry(
|
|
int barIndex = 0,
|
|
ENUM_TIMEFRAMES lowerTF = PERIOD_M5 //
|
|
)
|
|
{
|
|
//
|
|
bool result = false;
|
|
|
|
//
|
|
result =
|
|
kiParser.IsVolatilityHigh(barIndex) &&
|
|
IsTFBullishPattern(barIndex, lowerTF) &&
|
|
poiDetector.IsBullishBreakoutPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool IsBreakoutShortEntry(
|
|
int barIndex = 0,
|
|
ENUM_TIMEFRAMES lowerTF = PERIOD_M5 //
|
|
)
|
|
{
|
|
//
|
|
bool result = false;
|
|
|
|
//
|
|
result =
|
|
kiParser.IsVolatilityHigh(barIndex) &&
|
|
IsTFBearishPattern(barIndex, lowerTF) &&
|
|
poiDetector.IsBearishBreakoutPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool ExitBreakoutLong(int barIndex = 0)
|
|
{
|
|
//
|
|
bool result =
|
|
poiDetector.IsBearishReversalPOI(barIndex) ||
|
|
poiDetector.IsBearishExhaustionPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool ExitBreakoutShort(int barIndex = 0)
|
|
{
|
|
//
|
|
bool result =
|
|
poiDetector.IsBullishReversalPOI(barIndex) ||
|
|
poiDetector.IsBullishExhaustionPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
// #endregion
|
|
|
|
// #region Reversal ...
|
|
bool IsReversalLongEntry(
|
|
int barIndex = 0,
|
|
ENUM_TIMEFRAMES lowerTF = PERIOD_M5 //
|
|
)
|
|
{
|
|
//
|
|
bool result =
|
|
kiParser.IsRSIBullish(barIndex) &&
|
|
IsTFBullishPattern(barIndex, lowerTF) &&
|
|
poiDetector.IsBullishReversalPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool IsReversalShortEntry(
|
|
int barIndex = 0,
|
|
ENUM_TIMEFRAMES lowerTF = PERIOD_M5 //
|
|
)
|
|
{
|
|
//
|
|
bool result =
|
|
kiParser.IsRSIBearish(barIndex) &&
|
|
IsTFBearishPattern(barIndex, lowerTF) &&
|
|
poiDetector.IsBearishReversalPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool ExitReversalLong(int barIndex = 0)
|
|
{
|
|
//
|
|
bool result =
|
|
poiDetector.IsBearishBreakoutPOI(barIndex) ||
|
|
poiDetector.IsBearishContinuationPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool ExitReversalShort(int barIndex = 0)
|
|
{
|
|
//
|
|
bool result =
|
|
poiDetector.IsBullishBreakoutPOI(barIndex) ||
|
|
poiDetector.IsBullishContinuationPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
// #endregion
|
|
|
|
// #region Continuation ...
|
|
bool IsContinuationLongEntry(
|
|
int barIndex = 0,
|
|
ENUM_TIMEFRAMES lowerTF = PERIOD_M5 //
|
|
)
|
|
{
|
|
//
|
|
bool result =
|
|
IsTFBullishPattern(barIndex, lowerTF) &&
|
|
kiParser.IsTrendStrongBullish(barIndex) &&
|
|
poiDetector.IsBullishContinuationPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool IsContinuationShortEntry(
|
|
int barIndex = 0,
|
|
ENUM_TIMEFRAMES lowerTF = PERIOD_M5 //
|
|
)
|
|
{
|
|
//
|
|
bool result =
|
|
IsTFBearishPattern(barIndex, lowerTF) &&
|
|
kiParser.IsTrendStrongBearish(barIndex) &&
|
|
poiDetector.IsBearishContinuationPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool ExitContinuationLong(int barIndex = 0)
|
|
{
|
|
//
|
|
bool result =
|
|
poiDetector.IsBearishReversalPOI(barIndex) ||
|
|
poiDetector.IsBearishExhaustionPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool ExitContinuationShort(int barIndex = 0)
|
|
{
|
|
//
|
|
bool result =
|
|
poiDetector.IsBullishReversalPOI(barIndex) ||
|
|
poiDetector.IsBullishExhaustionPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
// #endregion
|
|
|
|
// #region Exhaustion ...
|
|
bool IsExhaustionLongEntry(
|
|
int barIndex = 0,
|
|
ENUM_TIMEFRAMES lowerTF = PERIOD_M5 //
|
|
)
|
|
{
|
|
//
|
|
bool result =
|
|
IsTFBullishPattern(barIndex, lowerTF) &&
|
|
poiDetector.IsBearishExhaustionPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool IsExhaustionShortEntry(
|
|
int barIndex = 0,
|
|
ENUM_TIMEFRAMES lowerTF = PERIOD_M5 //
|
|
)
|
|
{
|
|
//
|
|
bool result =
|
|
IsTFBearishPattern(barIndex, lowerTF) &&
|
|
poiDetector.IsBullishExhaustionPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool ExitExhaustionLong(int barIndex = 0)
|
|
{
|
|
return poiDetector.IsBearishBreakoutPOI(barIndex);
|
|
}
|
|
|
|
bool ExitExhaustionShort(int barIndex = 0)
|
|
{
|
|
return poiDetector.IsBullishBreakoutPOI(barIndex);
|
|
}
|
|
// #endregion
|
|
|
|
// #region Trend Exhaustion ...
|
|
bool IsTrendExhaustionLongEntry(
|
|
int barIndex = 0,
|
|
ENUM_TIMEFRAMES lowerTF = PERIOD_M5 //
|
|
)
|
|
{
|
|
//
|
|
bool result =
|
|
IsTFBullishPattern(barIndex, lowerTF) &&
|
|
poiDetector.IsBearishTrendExhaustedPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool IsTrendExhaustionShortEntry(
|
|
int barIndex = 0,
|
|
ENUM_TIMEFRAMES lowerTF = PERIOD_M5 //
|
|
)
|
|
{
|
|
//
|
|
bool result =
|
|
IsTFBearishPattern(barIndex, lowerTF) &&
|
|
poiDetector.IsBullishTrendExhaustedPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool ExitTrendExhaustionLong(int barIndex = 0)
|
|
{
|
|
//
|
|
bool result =
|
|
poiDetector.IsBearishBreakoutPOI(barIndex) ||
|
|
poiDetector.IsBearishContinuationPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
bool ExitTrendExhaustionShort(int barIndex = 0)
|
|
{
|
|
//
|
|
bool result =
|
|
poiDetector.IsBullishBreakoutPOI(barIndex) ||
|
|
poiDetector.IsBullishContinuationPOI(barIndex);
|
|
|
|
//
|
|
return result;
|
|
}
|
|
// #endregion
|
|
|
|
// #endregion
|