last works ...

This commit is contained in:
2025-05-13 23:17:25 +03:30
parent 75a0a1f088
commit bc88667712
4 changed files with 125 additions and 55 deletions
+64 -19
View File
@@ -1067,26 +1067,69 @@ class XCXCAEATradeManager : public XCBaseAlert
//
// Can Risk Free ...
bool canRF = jTarget.target > 0 &&
(isLong
? jTarget.target > iPosition.entry
: jTarget.target < iPosition.entry) &&
(isLong
? iPosition.price > targetDelta
: iPosition.price < targetDelta);
if (canRF)
bool canRF =
jTarget.doRF &&
jTarget.target > 0 &&
(isLong
? jTarget.target > iPosition.entry
: jTarget.target < iPosition.entry) &&
(isLong
? iPosition.price > targetDelta
: iPosition.price < targetDelta);
//
// Can Partial Close ...
bool canPC =
jTarget.volumeMultiplier > 0 &&
jTarget.target > 0 &&
(isLong
? jTarget.target > iPosition.entry
: jTarget.target < iPosition.entry) &&
(isLong
? iPosition.price > targetDelta
: iPosition.price < targetDelta);
bool canRFPC = canRF ||
canPC;
if (canRFPC)
{
//
double tp = iPosition.tp;
double sl = jTarget.target;
string comment = "RF On Target ...";
bool isModified = trader.Modify(
iPosition.ticket,
sl,
tp,
comment //
);
if (isModified)
// Handle Risk Free ...
bool isRFDone = false;
if (canRF)
{
//
double tp = iPosition.tp;
double sl = jTarget.target;
string comment = "RF On Target ...";
isRFDone = trader.Modify(
iPosition.ticket,
sl,
tp,
comment //
);
}
//
// Handle Partail Close ...
bool isPCDone = false;
if (canPC)
{
//
double volume = jTarget.volumeMultiplier * iPosition.volume;
volume = NormalizeVolume(volume, iPosition.symbol);
string comment = "RF On Target ...";
isPCDone = trader.ClosePartial(
iPosition.ticket,
volume,
comment //
);
}
//
// Handle Report Action ...
bool isRFPCDone = isRFDone ||
isPCDone;
if (isRFPCDone)
{
//
trades[idx].signal.appliedTargetIDX = j;
@@ -1097,7 +1140,9 @@ class XCXCAEATradeManager : public XCBaseAlert
ToString(iPosition.type) +
" Position: " +
ToString(iPosition.ticket) +
" RF On Traget: " + ToString(jTarget.target) +
(isRFDone ? "RF" : "") +
(isPCDone ? "PC" : "") +
" On Traget: " + ToString(jTarget.target) +
" Successfully ...";
HandleReportProtector(message);
}
+52 -28
View File
@@ -559,34 +559,6 @@ class XCXCAEASignaller : XCBase
? entry + reward
: entry - reward;
// //
// // Handling RF ...
// double rfReward = risk * 1.95;
// double rfPrice =
// isBullish
// ? entry + rfReward
// : entry - rfReward;
// Add(
// rfPrice,
// conditions.targets //
// );
// //
// rfReward = risk * 2.95;
// rfPrice =
// isBullish
// ? entry + rfReward
// : entry - rfReward;
// Add(
// rfPrice,
// conditions.targets //
// );
//
// Handling Partial Close ...
// conditions.partialCloseOnTPLevel = 1;
// conditions.partialCloseMultiplier = 0.5;
//
conditions.sl = sl;
conditions.tp = tp;
@@ -596,6 +568,58 @@ class XCXCAEASignaller : XCBase
? X_POSITION_TYPE_LONG
: X_POSITION_TYPE_SHORT;
//
// Preparing Targets ...
XTarget iTarget;
double iPrice = 0;
double iReward = 0;
//
// Partial Close 25% of Volume in R2R 1 ...
iReward = risk * 1;
iPrice =
isBullish
? entry + iReward
: entry - iReward;
iPrice = NormalizePrice(iPrice, conditions.symbol);
iTarget.target = iPrice;
iTarget.volumeMultiplier = 0.25;
AddRef(
iTarget,
targets //
);
//
// Partial Close 25% of Volume in R2R 2 ...
iReward = risk * 1.90;
iPrice =
isBullish
? entry + iReward
: entry - iReward;
iPrice = NormalizePrice(iPrice, conditions.symbol);
iTarget.target = iPrice;
iTarget.volumeMultiplier = 0.25;
AddRef(
iTarget,
targets //
);
//
// Risk Free in R2R 3 ...
iReward = risk * 2.90;
iPrice =
isBullish
? entry + iReward
: entry - iReward;
iPrice = NormalizePrice(iPrice, conditions.symbol);
// iTarget.doRF = true;
iTarget.volumeMultiplier = 0.25;
iTarget.target = iPrice;
AddRef(
iTarget,
targets //
);
//
// Handling Targets ...
bool hasTargets = HasChild(targets);