last ...
This commit is contained in:
@@ -40,13 +40,11 @@ class XCXCAEASignaller : XCBase
|
||||
//
|
||||
// Props ...
|
||||
bool useGuards;
|
||||
bool useTargets;
|
||||
int poiLoopback;
|
||||
XCAEAInputs inputs;
|
||||
XBarTracker barTraker;
|
||||
XCXCAEAHelper *helper;
|
||||
XCXCAEAPOIDrawer *drawer;
|
||||
bool continuesRFTillTarget;
|
||||
XBoxZone unAvailableBoxes[];
|
||||
XCXCAEAHelper *analyseHelper;
|
||||
XCXCAEAPOIDetector *detector;
|
||||
@@ -87,8 +85,6 @@ class XCXCAEASignaller : XCBase
|
||||
{
|
||||
//
|
||||
useGuards = false;
|
||||
useTargets = true;
|
||||
continuesRFTillTarget = false;
|
||||
|
||||
//
|
||||
barTraker.Init(
|
||||
@@ -97,248 +93,12 @@ class XCXCAEASignaller : XCBase
|
||||
);
|
||||
|
||||
//
|
||||
inputs.Default();
|
||||
// Initial Indicators ...
|
||||
InitHelper();
|
||||
|
||||
//
|
||||
// Configure Indicators ...
|
||||
|
||||
//
|
||||
// XCC ...
|
||||
inputs.ccInputs.showCandles = true;
|
||||
|
||||
//
|
||||
// XCT ...
|
||||
inputs.ctInputs.showCandleTime = true;
|
||||
|
||||
//
|
||||
// XCA ...
|
||||
|
||||
//
|
||||
inputs.caInputs.supResSmoothingLength = 7;
|
||||
inputs.caInputs.supResSmoothingMode = X_MA_MODE_NONE;
|
||||
|
||||
//
|
||||
inputs.x3maInputs.applyColor = true;
|
||||
|
||||
//
|
||||
inputs.x3maInputs.fastLength = 5;
|
||||
|
||||
//
|
||||
inputs.x3maInputs.showFast = false;
|
||||
inputs.x3maInputs.showSlow = false;
|
||||
inputs.x3maInputs.showMedium = false;
|
||||
|
||||
//
|
||||
inputs.caInputs.showMAH = false;
|
||||
inputs.caInputs.showMAL = false;
|
||||
inputs.caInputs.showMAC = false;
|
||||
inputs.caInputs.showSar = false;
|
||||
inputs.caInputs.showSwings = true;
|
||||
inputs.caInputs.showFiboLevel1 = false;
|
||||
inputs.caInputs.showFiboLevel2 = false;
|
||||
inputs.caInputs.showFiboLevel3 = false;
|
||||
inputs.caInputs.showFiboLevel4 = false;
|
||||
inputs.caInputs.showFiboLevel5 = false;
|
||||
inputs.caInputs.showPeaksAndVales = true;
|
||||
|
||||
//
|
||||
inputs.caInputs.showKI = false;
|
||||
inputs.caInputs.showTKI = false;
|
||||
inputs.caInputs.showVidya = false;
|
||||
inputs.caInputs.showTrend = false;
|
||||
inputs.caInputs.showPeakAndValeGolden = false;
|
||||
inputs.caInputs.showSupportAndResistance = false;
|
||||
|
||||
//
|
||||
// XOSCS ...
|
||||
// inputs.oscsInputs.rsiLength = 5;
|
||||
// inputs.oscsInputs.rsiOBLevel = 90;
|
||||
// inputs.oscsInputs.rsiOSLevel = 10;
|
||||
// inputs.oscsInputs.cciLength = 7;
|
||||
// inputs.oscsInputs.cciOBLevel = 130;
|
||||
// inputs.oscsInputs.cciOSLevel = -130;
|
||||
// inputs.oscsInputs.mfiLength = 5;
|
||||
// inputs.oscsInputs.rviLength = 5;
|
||||
|
||||
//
|
||||
// Oscillators Views ...
|
||||
inputs.showRSI = false;
|
||||
inputs.showCCI = false;
|
||||
inputs.showMFI = false;
|
||||
inputs.showRVI = false;
|
||||
inputs.showADX = false;
|
||||
inputs.showMACD = false;
|
||||
|
||||
//
|
||||
// XCAEA Helper ...
|
||||
helper = new XCXCAEAHelper();
|
||||
helper.Init(
|
||||
symbol,
|
||||
period,
|
||||
inputs //
|
||||
);
|
||||
|
||||
//
|
||||
// XCAEA Analyse Helper ...
|
||||
analyseHelper = new XCXCAEAHelper();
|
||||
analyseHelper.Init(
|
||||
symbol,
|
||||
analysePeriod,
|
||||
inputs //
|
||||
);
|
||||
|
||||
//
|
||||
// Initialize and Configure Detector ...
|
||||
detector = new XCXCAEAPOIDetector(helper);
|
||||
|
||||
//
|
||||
// Common Configurations ...
|
||||
detector.maxAllowedPivots = 0;
|
||||
detector.pivotVerifications = 5;
|
||||
detector.ticksDividerInPoints = 15;
|
||||
detector.pivotDetectionLoopbac = 1000;
|
||||
|
||||
//
|
||||
// Configure Detector ...
|
||||
|
||||
//
|
||||
// PV ...
|
||||
|
||||
//
|
||||
detector.maxAllowedPVLifetime = 0;
|
||||
detector.applySwingsOnPVPivots = true;
|
||||
detector.selectRejectedPVPivots = true;
|
||||
detector.selectEngulfedPVPivots = true;
|
||||
detector.applySupportAndResistanceOnPVPivots = true;
|
||||
|
||||
//
|
||||
// PEAK ...
|
||||
detector.detectPeakPivots = true;
|
||||
|
||||
//
|
||||
// VALE ...
|
||||
detector.detectValePivots = true;
|
||||
|
||||
//
|
||||
// FVG ...
|
||||
|
||||
//
|
||||
detector.selectSameBarFVGs = false;
|
||||
detector.maxAllowedFVGLifetime = 0;
|
||||
detector.validateFVGUsingPV = false;
|
||||
detector.applyPVToFVGBoundary = false;
|
||||
detector.selectRejectedFVGPivots = false;
|
||||
detector.selectEngulfedFVGPivots = false;
|
||||
detector.validateFVGUsingManalyser = true;
|
||||
detector.applyLastBarToFVGBoundary = false;
|
||||
detector.selectOnlyFVGWhichHasIndirectionalLastBar = true;
|
||||
|
||||
//
|
||||
// Bullish ...
|
||||
detector.detectFVGBullishPivots = true;
|
||||
|
||||
//
|
||||
// Bearish ...
|
||||
detector.detectFVGBearishPivots = true;
|
||||
|
||||
//
|
||||
// TREND ...
|
||||
|
||||
//
|
||||
detector.maxAllowedTrendLifetime = 0;
|
||||
|
||||
//
|
||||
// Bullish ...
|
||||
detector.detectTrendBullishPivots = true;
|
||||
|
||||
//
|
||||
// Bearish ...
|
||||
detector.detectTrendBearishPivots = true;
|
||||
|
||||
//
|
||||
// DRAWER ...
|
||||
|
||||
//
|
||||
// Initialize and Configure Drawer ...
|
||||
drawer = new XCXCAEAPOIDrawer(detector);
|
||||
|
||||
//
|
||||
drawer.ignoreUpdateOSCTos = true;
|
||||
|
||||
//
|
||||
// Configure Drawer ...
|
||||
drawer.drawPeakPivots = true;
|
||||
drawer.drawValePivots = true;
|
||||
drawer.drawFVGBullishPivots = true;
|
||||
drawer.drawFVGBearishPivots = true;
|
||||
drawer.drawTrendBullishPivots = true;
|
||||
drawer.drawTrendBearishPivots = true;
|
||||
|
||||
//
|
||||
// Configure Styles ...
|
||||
|
||||
//
|
||||
// PV ...
|
||||
|
||||
//
|
||||
// PEAK ...
|
||||
XCAPivotStyle peakStyle;
|
||||
peakStyle.width = 2;
|
||||
peakStyle.clr = clrMagenta;
|
||||
peakStyle.style = STYLE_SOLID;
|
||||
drawer.peakPivotStyle = peakStyle;
|
||||
peakStyle.Clean();
|
||||
|
||||
//
|
||||
// VALE ...
|
||||
XCAPivotStyle valeStyle;
|
||||
valeStyle.width = 2;
|
||||
valeStyle.clr = clrAqua;
|
||||
valeStyle.style = STYLE_SOLID;
|
||||
drawer.valePivotStyle = valeStyle;
|
||||
valeStyle.Clean();
|
||||
|
||||
//
|
||||
// FVG ...
|
||||
|
||||
//
|
||||
// Bullish ...
|
||||
XCAPivotStyle fvgBullishStyle;
|
||||
fvgBullishStyle.width = 2;
|
||||
fvgBullishStyle.clr = clrLime;
|
||||
fvgBullishStyle.style = STYLE_DASH;
|
||||
drawer.fvgBullishPivotStyle = fvgBullishStyle;
|
||||
fvgBullishStyle.Clean();
|
||||
|
||||
//
|
||||
// Bearish ...
|
||||
XCAPivotStyle fvgBearishStyle;
|
||||
fvgBearishStyle.width = 2;
|
||||
fvgBearishStyle.clr = clrRed;
|
||||
fvgBearishStyle.style = STYLE_DASH;
|
||||
drawer.fvgBearishPivotStyle = fvgBearishStyle;
|
||||
fvgBearishStyle.Clean();
|
||||
|
||||
//
|
||||
// TREND ...
|
||||
|
||||
//
|
||||
// Bullish ...
|
||||
XCAPivotStyle trendBullishStyle;
|
||||
trendBullishStyle.width = 2;
|
||||
trendBullishStyle.clr = clrLime;
|
||||
trendBullishStyle.style = STYLE_DOT;
|
||||
drawer.trendBullishPivotStyle = trendBullishStyle;
|
||||
trendBullishStyle.Clean();
|
||||
|
||||
//
|
||||
// Bearish ...
|
||||
XCAPivotStyle trendBearishStyle;
|
||||
trendBearishStyle.width = 2;
|
||||
trendBearishStyle.clr = clrRed;
|
||||
trendBearishStyle.style = STYLE_DOT;
|
||||
drawer.trendBearishPivotStyle = trendBearishStyle;
|
||||
trendBearishStyle.Clean();
|
||||
// Initial POI Detector and Drawer ...
|
||||
InitDetectorAndDrawer();
|
||||
|
||||
//
|
||||
}
|
||||
@@ -465,39 +225,50 @@ class XCXCAEASignaller : XCBase
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Detect Pivots ...
|
||||
detector.Detect(zIndex);
|
||||
|
||||
//
|
||||
// Validate Pivots ...
|
||||
detector.Validate(
|
||||
unAvailableBoxes,
|
||||
zIndex //
|
||||
);
|
||||
|
||||
//
|
||||
// Draw Pivots ...
|
||||
drawer.Draw(cTime);
|
||||
|
||||
//
|
||||
// Setup Conditions ...
|
||||
XBoxZone decisionZone;
|
||||
bool hasDecisionZone = false;
|
||||
XCAEAConditions conditions;
|
||||
bool hasDecisionZone = false;
|
||||
ENUM_X_DIRECTION decisionZoneDir = X_DIRECTION_NONE;
|
||||
|
||||
//
|
||||
// Checking Signal's Decision Zone ...
|
||||
// On Analyse Time Frame ...
|
||||
if (!HasChild(mConditionsCollection))
|
||||
hasDecisionZone = DetectDecisionZone(
|
||||
analyseHelper,
|
||||
drawer,
|
||||
decisionZone,
|
||||
decisionZoneDir,
|
||||
conditions,
|
||||
zIndex,
|
||||
loopback //
|
||||
);
|
||||
|
||||
//
|
||||
// Make Signal Box UnAvailable ...
|
||||
if (hasDecisionZone)
|
||||
{
|
||||
//
|
||||
hasDecisionZone = DetectDecisionZone(
|
||||
analyseHelper,
|
||||
drawer,
|
||||
AddRef(
|
||||
decisionZone,
|
||||
decisionZoneDir,
|
||||
conditions,
|
||||
zIndex,
|
||||
loopback //
|
||||
unAvailableBoxes //
|
||||
);
|
||||
|
||||
//
|
||||
// Make Signal Box UnAvailable ...
|
||||
if (hasDecisionZone)
|
||||
{
|
||||
//
|
||||
AddRef(
|
||||
decisionZone,
|
||||
unAvailableBoxes //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
@@ -558,7 +329,7 @@ class XCXCAEASignaller : XCBase
|
||||
bool DetectSignalTrigger(
|
||||
XCAEAStrategyConditions &conditions,
|
||||
int barIndex = 0,
|
||||
int maxAllowedSetupAge = 1000 //
|
||||
int maxAllowedSetupAge = 576 //
|
||||
)
|
||||
{
|
||||
//
|
||||
@@ -683,16 +454,49 @@ class XCXCAEASignaller : XCBase
|
||||
|
||||
//
|
||||
// Draw Decision Zone ...
|
||||
XCBoxObject *iObj;
|
||||
XCBoxObject *iDecisionObj;
|
||||
has = helper.poiDrawer.DrawBox(
|
||||
conditions.decisionZone,
|
||||
iObj //
|
||||
iDecisionObj //
|
||||
);
|
||||
if (has)
|
||||
{
|
||||
mObjects.Add(iObj);
|
||||
mObjects.Add(iDecisionObj);
|
||||
}
|
||||
ZeroMemory(iObj);
|
||||
ZeroMemory(iDecisionObj);
|
||||
|
||||
//
|
||||
// Drw Box Range Middle ...
|
||||
double decisionMiddlePrice = conditions.decisionZone.GetMid();
|
||||
string iDecisionMiddleName = conditions.decisionZone.GetMiddleTag();
|
||||
CChartObjectTrend *iDecisionMiddleObj;
|
||||
iDecisionMiddleObj = new CChartObjectTrend();
|
||||
has = iDecisionMiddleObj.Create(
|
||||
0,
|
||||
iDecisionMiddleName,
|
||||
0,
|
||||
conditions.decisionZone.from,
|
||||
decisionMiddlePrice,
|
||||
conditions.decisionZone.to,
|
||||
decisionMiddlePrice //
|
||||
);
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
iDecisionMiddleObj.Width(2);
|
||||
iDecisionMiddleObj.Style(STYLE_DASH);
|
||||
|
||||
//
|
||||
color iColor =
|
||||
conditions.decisionZone.IsBullish()
|
||||
? clrAqua
|
||||
: clrMagenta;
|
||||
iDecisionMiddleObj.Color(iColor);
|
||||
|
||||
//
|
||||
mObjects.Add(iDecisionMiddleObj);
|
||||
}
|
||||
ZeroMemory(iDecisionMiddleObj);
|
||||
|
||||
//
|
||||
for (int i = 0; i < iObjects.Total(); i++)
|
||||
@@ -753,26 +557,26 @@ class XCXCAEASignaller : XCBase
|
||||
|
||||
//
|
||||
// Handling RF ...
|
||||
double rfReward = risk * 1.85;
|
||||
double rfPrice =
|
||||
isBullish
|
||||
? entry + rfReward
|
||||
: entry - rfReward;
|
||||
Add(
|
||||
rfPrice,
|
||||
conditions.targets //
|
||||
);
|
||||
// double rfReward = risk * 1.85;
|
||||
// double rfPrice =
|
||||
// isBullish
|
||||
// ? entry + rfReward
|
||||
// : entry - rfReward;
|
||||
// Add(
|
||||
// rfPrice,
|
||||
// conditions.targets //
|
||||
// );
|
||||
|
||||
//
|
||||
rfReward = risk * 2.85;
|
||||
rfPrice =
|
||||
isBullish
|
||||
? entry + rfReward
|
||||
: entry - rfReward;
|
||||
Add(
|
||||
rfPrice,
|
||||
conditions.targets //
|
||||
);
|
||||
// rfReward = risk * 2.85;
|
||||
// rfPrice =
|
||||
// isBullish
|
||||
// ? entry + rfReward
|
||||
// : entry - rfReward;
|
||||
// Add(
|
||||
// rfPrice,
|
||||
// conditions.targets //
|
||||
// );
|
||||
|
||||
//
|
||||
// Handling Partial Close ...
|
||||
@@ -953,6 +757,308 @@ class XCXCAEASignaller : XCBase
|
||||
CArrayObj mObjects;
|
||||
CArrayObj mBarObjects;
|
||||
|
||||
//
|
||||
void InitHelper()
|
||||
{
|
||||
//
|
||||
inputs.Default();
|
||||
|
||||
//
|
||||
// Configure Indicators ...
|
||||
|
||||
//
|
||||
// XCC ...
|
||||
inputs.ccInputs.showCandles = true;
|
||||
|
||||
//
|
||||
// XCT ...
|
||||
inputs.ctInputs.showCandleTime = true;
|
||||
|
||||
//
|
||||
// XCA ...
|
||||
|
||||
//
|
||||
inputs.caInputs.supResSmoothingLength = 7;
|
||||
inputs.caInputs.supResSmoothingMode = X_MA_MODE_NONE;
|
||||
|
||||
//
|
||||
inputs.x3maInputs.applyColor = true;
|
||||
|
||||
//
|
||||
inputs.x3maInputs.fastLength = 5;
|
||||
|
||||
//
|
||||
inputs.x3maInputs.showFast = false;
|
||||
inputs.x3maInputs.showSlow = false;
|
||||
inputs.x3maInputs.showMedium = false;
|
||||
|
||||
//
|
||||
inputs.caInputs.showMAH = false;
|
||||
inputs.caInputs.showMAL = false;
|
||||
inputs.caInputs.showMAC = false;
|
||||
inputs.caInputs.showSar = false;
|
||||
inputs.caInputs.showSwings = true;
|
||||
inputs.caInputs.showFiboLevel1 = false;
|
||||
inputs.caInputs.showFiboLevel2 = false;
|
||||
inputs.caInputs.showFiboLevel3 = false;
|
||||
inputs.caInputs.showFiboLevel4 = false;
|
||||
inputs.caInputs.showFiboLevel5 = false;
|
||||
inputs.caInputs.showPeaksAndVales = true;
|
||||
|
||||
//
|
||||
inputs.caInputs.showKI = false;
|
||||
inputs.caInputs.showTKI = false;
|
||||
inputs.caInputs.showVidya = false;
|
||||
inputs.caInputs.showTrend = false;
|
||||
inputs.caInputs.showPeakAndValeGolden = false;
|
||||
inputs.caInputs.showSupportAndResistance = false;
|
||||
|
||||
//
|
||||
// XOSCS ...
|
||||
// inputs.oscsInputs.rsiLength = 5;
|
||||
// inputs.oscsInputs.rsiOBLevel = 90;
|
||||
// inputs.oscsInputs.rsiOSLevel = 10;
|
||||
// inputs.oscsInputs.cciLength = 7;
|
||||
// inputs.oscsInputs.cciOBLevel = 130;
|
||||
// inputs.oscsInputs.cciOSLevel = -130;
|
||||
// inputs.oscsInputs.mfiLength = 5;
|
||||
// inputs.oscsInputs.rviLength = 5;
|
||||
|
||||
//
|
||||
// Oscillators Views ...
|
||||
inputs.showRSI = false;
|
||||
inputs.showCCI = false;
|
||||
inputs.showMFI = false;
|
||||
inputs.showRVI = false;
|
||||
inputs.showADX = false;
|
||||
inputs.showMACD = false;
|
||||
|
||||
//
|
||||
// XCAEA Helper ...
|
||||
helper = new XCXCAEAHelper();
|
||||
helper.Init(
|
||||
symbol,
|
||||
period,
|
||||
inputs //
|
||||
);
|
||||
|
||||
//
|
||||
// XCAEA Analyse Helper ...
|
||||
analyseHelper = new XCXCAEAHelper();
|
||||
analyseHelper.Init(
|
||||
symbol,
|
||||
analysePeriod,
|
||||
inputs //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
void InitDetectorAndDrawer()
|
||||
{
|
||||
//
|
||||
// Initialize and Configure Detector ...
|
||||
detector = new XCXCAEAPOIDetector(helper);
|
||||
|
||||
//
|
||||
// Common Configurations ...
|
||||
detector.maxAllowedPivots = 0;
|
||||
detector.pivotVerifications = 5;
|
||||
detector.ticksDividerInPoints = 15;
|
||||
detector.pivotDetectionLoopbac = 1000;
|
||||
|
||||
//
|
||||
// Configure Detector ...
|
||||
|
||||
//
|
||||
// SWING ...
|
||||
|
||||
//
|
||||
detector.maxAllowedSwingLifetime = 0;
|
||||
|
||||
//
|
||||
detector.detectSWLPivots = false;
|
||||
detector.detectSWHPivots = false;
|
||||
|
||||
//
|
||||
// PV ...
|
||||
|
||||
//
|
||||
detector.maxAllowedPVLifetime = 0;
|
||||
detector.applySwingsOnPVPivots = false;
|
||||
detector.selectRejectedPVPivots = false;
|
||||
detector.selectEngulfedPVPivots = false;
|
||||
detector.applySupportAndResistanceOnPVPivots = false;
|
||||
|
||||
//
|
||||
detector.detectPeakPivots = true;
|
||||
detector.detectValePivots = true;
|
||||
|
||||
//
|
||||
// OB ...
|
||||
detector.maxAllowedOBLifetime = 0;
|
||||
|
||||
//
|
||||
detector.detectOBBullishPivots = true;
|
||||
detector.detectOBBearishPivots = true;
|
||||
|
||||
//
|
||||
// FVG ...
|
||||
|
||||
//
|
||||
detector.selectSameBarFVGs = false;
|
||||
detector.maxAllowedFVGLifetime = 0;
|
||||
detector.validateFVGUsingPV = false;
|
||||
detector.applyPVToFVGBoundary = false;
|
||||
detector.selectRejectedFVGPivots = false;
|
||||
detector.selectEngulfedFVGPivots = false;
|
||||
detector.validateFVGUsingManalyser = false;
|
||||
detector.applyLastBarToFVGBoundary = false;
|
||||
detector.selectOnlyFVGWhichHasIndirectionalLastBar = false;
|
||||
|
||||
//
|
||||
detector.detectFVGBullishPivots = false;
|
||||
detector.detectFVGBearishPivots = false;
|
||||
|
||||
//
|
||||
// TREND ...
|
||||
|
||||
//
|
||||
detector.maxAllowedTrendLifetime = 0;
|
||||
detector.detectTrendBullishPivots = false;
|
||||
detector.detectTrendBearishPivots = false;
|
||||
|
||||
//
|
||||
// DRAWER ...
|
||||
|
||||
//
|
||||
// Initialize and Configure Drawer ...
|
||||
drawer = new XCXCAEAPOIDrawer(detector);
|
||||
|
||||
//
|
||||
drawer.ignoreUpdateOSCTos = true;
|
||||
|
||||
//
|
||||
// Configure Drawer ...
|
||||
drawer.drawSWHPivots = false;
|
||||
drawer.drawSWLPivots = false;
|
||||
drawer.drawPeakPivots = true;
|
||||
drawer.drawValePivots = true;
|
||||
drawer.drawOBBullishPivots = false;
|
||||
drawer.drawOBBearishPivots = false;
|
||||
drawer.drawFVGBullishPivots = false;
|
||||
drawer.drawFVGBearishPivots = false;
|
||||
drawer.drawTrendBullishPivots = false;
|
||||
drawer.drawTrendBearishPivots = false;
|
||||
|
||||
//
|
||||
// Configure Styles ...
|
||||
|
||||
//
|
||||
// SWING ...
|
||||
|
||||
//
|
||||
// SWH ...
|
||||
XCAPivotStyle swhStyle;
|
||||
swhStyle.width = 2;
|
||||
swhStyle.clr = clrMagenta;
|
||||
swhStyle.style = STYLE_SOLID;
|
||||
drawer.swhPivotStyle = swhStyle;
|
||||
swhStyle.Clean();
|
||||
|
||||
//
|
||||
// SWL ...
|
||||
XCAPivotStyle swlStyle;
|
||||
swlStyle.width = 2;
|
||||
swlStyle.clr = clrAqua;
|
||||
swlStyle.style = STYLE_SOLID;
|
||||
drawer.swlPivotStyle = swlStyle;
|
||||
swlStyle.Clean();
|
||||
|
||||
//
|
||||
// PV ...
|
||||
|
||||
//
|
||||
// PEAK ...
|
||||
XCAPivotStyle peakStyle;
|
||||
peakStyle.width = 2;
|
||||
peakStyle.clr = clrMagenta;
|
||||
peakStyle.style = STYLE_SOLID;
|
||||
drawer.peakPivotStyle = peakStyle;
|
||||
peakStyle.Clean();
|
||||
|
||||
//
|
||||
// VALE ...
|
||||
XCAPivotStyle valeStyle;
|
||||
valeStyle.width = 2;
|
||||
valeStyle.clr = clrAqua;
|
||||
valeStyle.style = STYLE_SOLID;
|
||||
drawer.valePivotStyle = valeStyle;
|
||||
valeStyle.Clean();
|
||||
|
||||
//
|
||||
// OB ...
|
||||
|
||||
//
|
||||
// Bullish ...
|
||||
XCAPivotStyle obBullishStyle;
|
||||
obBullishStyle.width = 2;
|
||||
obBullishStyle.clr = clrLime;
|
||||
obBullishStyle.style = STYLE_DASH;
|
||||
drawer.obBullishPivotStyle = obBullishStyle;
|
||||
obBullishStyle.Clean();
|
||||
|
||||
//
|
||||
// Bearish ...
|
||||
XCAPivotStyle obBearishStyle;
|
||||
obBearishStyle.width = 2;
|
||||
obBearishStyle.clr = clrRed;
|
||||
obBearishStyle.style = STYLE_DASH;
|
||||
drawer.obBearishPivotStyle = obBearishStyle;
|
||||
obBearishStyle.Clean();
|
||||
|
||||
//
|
||||
// FVG ...
|
||||
|
||||
//
|
||||
// Bullish ...
|
||||
XCAPivotStyle fvgBullishStyle;
|
||||
fvgBullishStyle.width = 2;
|
||||
fvgBullishStyle.clr = clrLime;
|
||||
fvgBullishStyle.style = STYLE_DASH;
|
||||
drawer.fvgBullishPivotStyle = fvgBullishStyle;
|
||||
fvgBullishStyle.Clean();
|
||||
|
||||
//
|
||||
// Bearish ...
|
||||
XCAPivotStyle fvgBearishStyle;
|
||||
fvgBearishStyle.width = 2;
|
||||
fvgBearishStyle.clr = clrRed;
|
||||
fvgBearishStyle.style = STYLE_DASH;
|
||||
drawer.fvgBearishPivotStyle = fvgBearishStyle;
|
||||
fvgBearishStyle.Clean();
|
||||
|
||||
//
|
||||
// TREND ...
|
||||
|
||||
//
|
||||
// Bullish ...
|
||||
XCAPivotStyle trendBullishStyle;
|
||||
trendBullishStyle.width = 2;
|
||||
trendBullishStyle.clr = clrLime;
|
||||
trendBullishStyle.style = STYLE_DOT;
|
||||
drawer.trendBullishPivotStyle = trendBullishStyle;
|
||||
trendBullishStyle.Clean();
|
||||
|
||||
//
|
||||
// Bearish ...
|
||||
XCAPivotStyle trendBearishStyle;
|
||||
trendBearishStyle.width = 2;
|
||||
trendBearishStyle.clr = clrRed;
|
||||
trendBearishStyle.style = STYLE_DOT;
|
||||
drawer.trendBearishPivotStyle = trendBearishStyle;
|
||||
trendBearishStyle.Clean();
|
||||
}
|
||||
|
||||
//
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user