Complete Position Drawer and Well Test it ...
This commit is contained in:
@@ -523,7 +523,7 @@ bool XUpdatePosition(
|
||||
// Global Chart Objects ...
|
||||
|
||||
/**
|
||||
* Base Chart Object ...
|
||||
* Base Chart Object ...
|
||||
**/
|
||||
class XCBaseObject : public CChartObject
|
||||
{
|
||||
@@ -1151,7 +1151,7 @@ class XCSignalObject : public XCBaseObject
|
||||
};
|
||||
|
||||
/**
|
||||
* XRR Object ...
|
||||
* XRR Object ...
|
||||
**/
|
||||
class XCRRObject : public XCSignalObject
|
||||
{
|
||||
@@ -2115,28 +2115,20 @@ class XCPositionObject : public XCBaseObject
|
||||
void ApplyStyle()
|
||||
{
|
||||
//
|
||||
// Validate ...
|
||||
bool has = HasPosition();
|
||||
if (!has)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Risk Style ...
|
||||
mRiskBoxObj.BoxColor(riskStyle.clr);
|
||||
mRiskBoxObj.BoxFill(riskStyle.fill);
|
||||
mRiskBoxObj.BoxStyle(riskStyle.style);
|
||||
mRiskBoxObj.BoxWidth(riskStyle.width);
|
||||
|
||||
//
|
||||
// Reward Style ...
|
||||
mRewardBoxObj.BoxColor(rewardStyle.clr);
|
||||
mRewardBoxObj.BoxFill(rewardStyle.fill);
|
||||
mRewardBoxObj.BoxStyle(rewardStyle.style);
|
||||
mRewardBoxObj.BoxWidth(rewardStyle.width);
|
||||
|
||||
//
|
||||
// Check Position in Profit ...
|
||||
bool isLong = IsLong(mPosition.type);
|
||||
bool isRiskFreed =
|
||||
isLong
|
||||
? mPosition.sl > mPosition.entry
|
||||
: mPosition.sl < mPosition.entry;
|
||||
bool isInProfit = mPosition.profit > 0;
|
||||
XPOIStyle _priceStyle;
|
||||
if (isInProfit)
|
||||
@@ -2157,6 +2149,28 @@ class XCPositionObject : public XCBaseObject
|
||||
_priceStyle.fill = true;
|
||||
_priceStyle.style = priceStyle;
|
||||
|
||||
//
|
||||
// Change Risk Style if Risk Freed Position ...
|
||||
if (isRiskFreed) {
|
||||
//
|
||||
riskStyle.fill = true;
|
||||
riskStyle.clr = rewardStyle.clr;
|
||||
}
|
||||
|
||||
//
|
||||
// Risk Style ...
|
||||
mRiskBoxObj.BoxColor(riskStyle.clr);
|
||||
mRiskBoxObj.BoxFill(riskStyle.fill);
|
||||
mRiskBoxObj.BoxStyle(riskStyle.style);
|
||||
mRiskBoxObj.BoxWidth(riskStyle.width);
|
||||
|
||||
//
|
||||
// Reward Style ...
|
||||
mRewardBoxObj.BoxColor(rewardStyle.clr);
|
||||
mRewardBoxObj.BoxFill(rewardStyle.fill);
|
||||
mRewardBoxObj.BoxStyle(rewardStyle.style);
|
||||
mRewardBoxObj.BoxWidth(rewardStyle.width);
|
||||
|
||||
//
|
||||
// Price Style ..
|
||||
mPriceBoxObj.BoxColor(_priceStyle.clr);
|
||||
@@ -2323,6 +2337,10 @@ class XCPositionObject : public XCBaseObject
|
||||
|
||||
//
|
||||
bool isInProfit = mPosition.profit > 0;
|
||||
bool isRiskFreed =
|
||||
isLong
|
||||
? mPosition.sl > mPosition.entry
|
||||
: mPosition.sl < mPosition.entry;
|
||||
ENUM_X_DIRECTION iPriceDir = isInProfit
|
||||
? X_DIRECTION_BULLISH
|
||||
: X_DIRECTION_BEARISH;
|
||||
@@ -2342,17 +2360,27 @@ class XCPositionObject : public XCBaseObject
|
||||
mRiskBox.at = iAt;
|
||||
mRiskBox.lower =
|
||||
isLong
|
||||
? isRiskFreed
|
||||
? iEntry
|
||||
: iSL
|
||||
: isRiskFreed
|
||||
? iSL
|
||||
: iEntry;
|
||||
mRiskBox.upper =
|
||||
isLong
|
||||
? isRiskFreed
|
||||
? iSL
|
||||
: iEntry
|
||||
: isRiskFreed
|
||||
? iEntry
|
||||
: iSL;
|
||||
mRiskBox.from = iFrom;
|
||||
mRiskBox.symbol = iSymbol;
|
||||
mRiskBox.period = iPeriod;
|
||||
mRiskBox.type = iRiskName;
|
||||
mRiskBox.dir = X_DIRECTION_BEARISH;
|
||||
mRiskBox.dir = isRiskFreed
|
||||
? X_DIRECTION_BEARISH
|
||||
: X_DIRECTION_BULLISH;
|
||||
|
||||
//
|
||||
// Reward Box ...
|
||||
@@ -2379,10 +2407,14 @@ class XCPositionObject : public XCBaseObject
|
||||
mPriceBox.lower =
|
||||
isLong
|
||||
? isInProfit
|
||||
? iEntry
|
||||
? isRiskFreed
|
||||
? iSL
|
||||
: iEntry
|
||||
: iPrice
|
||||
: isInProfit
|
||||
? iPrice
|
||||
? isRiskFreed
|
||||
? iSL
|
||||
: iPrice
|
||||
: iEntry;
|
||||
mPriceBox.upper =
|
||||
isLong
|
||||
|
||||
Reference in New Issue
Block a user