last ...
This commit is contained in:
@@ -219,6 +219,14 @@ class XCBaseSignaller : public XCBase
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check Rest Until ...
|
||||||
|
has = !IsXValid(restUntil) || (IsXValid(restUntil) && cBarTime > restUntil);
|
||||||
|
if (!has)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check Process Permissions ...
|
// Check Process Permissions ...
|
||||||
has = CanAnalyseMarket(cBarTime);
|
has = CanAnalyseMarket(cBarTime);
|
||||||
@@ -326,7 +334,9 @@ class XCBaseSignaller : public XCBase
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
/**
|
||||||
|
* Prepare Restrictions Update For Losing Trades ...
|
||||||
|
*/
|
||||||
void LoseTrade()
|
void LoseTrade()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@@ -334,12 +344,22 @@ class XCBaseSignaller : public XCBase
|
|||||||
loosingTrades++;
|
loosingTrades++;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
/**
|
||||||
void WinTrade() {
|
* Prepare Restrictions For Winning Trades ...
|
||||||
|
*/
|
||||||
|
void WinTrade()
|
||||||
|
{
|
||||||
//
|
//
|
||||||
if (loosingTrades > 0) {
|
if (loosingTrades > 0)
|
||||||
|
{
|
||||||
loosingTrades--;
|
loosingTrades--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (restingSignals > 0)
|
||||||
|
{
|
||||||
|
restingSignals--;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -402,12 +402,19 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Handle Partial Close Position if Reached TP 1.5 ...
|
// Handle Partial Close Position if Reached TP 1.5 ...
|
||||||
|
// iTarget.Clean();
|
||||||
|
// iTarget.doRF = true;
|
||||||
|
// iTarget.actingDistance = 10;
|
||||||
|
// iTarget.volumeMultiplier = 0.5;
|
||||||
|
// iTarget.target = isBullish ? entry + (1.8 * risk) : entry - (1.8 * risk);
|
||||||
|
// // iTarget.tpValue = isBullish ? entry + (2.5 * risk) : entry - (2.5 * risk);
|
||||||
|
// AddRef(iTarget, iTargets);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Reward 3 Target ...
|
||||||
iTarget.Clean();
|
iTarget.Clean();
|
||||||
iTarget.doRF = true;
|
iTarget.actingDistance = 0;
|
||||||
iTarget.actingDistance = 20;
|
iTarget.target = isBullish ? entry + (3 * risk) : entry - (3 * risk);
|
||||||
iTarget.volumeMultiplier = 0.5;
|
|
||||||
iTarget.target = isBullish ? entry + (1.5 * risk) : entry - (1.5 * risk);
|
|
||||||
iTarget.tpValue = isBullish ? entry + (2.5 * risk) : entry - (2.5 * risk);
|
|
||||||
AddRef(iTarget, iTargets);
|
AddRef(iTarget, iTargets);
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -425,29 +432,56 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
|
|||||||
// Here we Can Do Target Preparing if Signaller Restricted and
|
// Here we Can Do Target Preparing if Signaller Restricted and
|
||||||
// then ignore restrictions if required ...
|
// then ignore restrictions if required ...
|
||||||
|
|
||||||
//
|
// //
|
||||||
// Risk Free On Entry:
|
// // Risk Free On Entry:
|
||||||
iTarget.Clean();
|
// iTarget.Clean();
|
||||||
iTarget.doRF = true;
|
// iTarget.doRF = true;
|
||||||
iTarget.actingDistance = (5 * spread) / _point;
|
// iTarget.actingDistance = 10 * _point; // (5 * spread) / _point;
|
||||||
iTarget.target = isBullish ? entry + (2 * spread) : entry - (2 * spread);
|
// iTarget.target = isBullish ? entry + risk : entry - risk; // isBullish ? entry + (2 * spread) : entry - (2 * spread);
|
||||||
AddRef(iTarget, iTargets);
|
// AddRef(iTarget, iTargets);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Partial Close Position Half on TP 1 ...
|
||||||
|
// // Increase Rewards to TP 3 ...
|
||||||
|
// iTarget.Clean();
|
||||||
|
// iTarget.actingDistance = 1;
|
||||||
|
// iTarget.volumeMultiplier = 0.5;
|
||||||
|
// iTarget.target = isBullish ? entry + risk : entry - risk;
|
||||||
|
// iTarget.tpValue = isBullish ? entry + (2.5 * risk) : entry - (2.5 * risk);
|
||||||
|
// AddRef(iTarget, iTargets);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Reset Restrictions ...
|
||||||
|
// if (loosingTrades == 1)
|
||||||
|
// {
|
||||||
|
// ResetRestrictions();
|
||||||
|
// }
|
||||||
|
|
||||||
//
|
//
|
||||||
// Partial Close Position Half on TP 1 ...
|
if (loosingTrades >= 2)
|
||||||
// Increase Rewards to TP 3 ...
|
|
||||||
iTarget.Clean();
|
|
||||||
iTarget.actingDistance = 1;
|
|
||||||
iTarget.volumeMultiplier = 0.5;
|
|
||||||
iTarget.target = isBullish ? entry + risk : entry - risk;
|
|
||||||
iTarget.tpValue = isBullish ? entry + (3 * risk) : entry - (3 * risk);
|
|
||||||
AddRef(iTarget, iTargets);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Reset Restrictions ...
|
|
||||||
if (loosingTrades == 1)
|
|
||||||
{
|
{
|
||||||
ResetRestrictions();
|
//
|
||||||
|
if (IsXValid(restUntil) && iBar.time > restUntil)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
WinTrade();
|
||||||
|
restUntil = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//
|
||||||
|
XOHCL rBar;
|
||||||
|
bool has = rBar.Init(iZone.symbol, PERIOD_W1, 0);
|
||||||
|
if (has)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
restUntil = rBar.NextAt();
|
||||||
|
Print("Rest Until: ", restUntil);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
rBar.Clean();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user