last ...
This commit is contained in:
@@ -219,6 +219,14 @@ class XCBaseSignaller : public XCBase
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Check Rest Until ...
|
||||
has = !IsXValid(restUntil) || (IsXValid(restUntil) && cBarTime > restUntil);
|
||||
if (!has)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Check Process Permissions ...
|
||||
has = CanAnalyseMarket(cBarTime);
|
||||
@@ -326,7 +334,9 @@ class XCBaseSignaller : public XCBase
|
||||
{
|
||||
}
|
||||
|
||||
//
|
||||
/**
|
||||
* Prepare Restrictions Update For Losing Trades ...
|
||||
*/
|
||||
void LoseTrade()
|
||||
{
|
||||
//
|
||||
@@ -334,12 +344,22 @@ class XCBaseSignaller : public XCBase
|
||||
loosingTrades++;
|
||||
}
|
||||
|
||||
//
|
||||
void WinTrade() {
|
||||
/**
|
||||
* Prepare Restrictions For Winning Trades ...
|
||||
*/
|
||||
void WinTrade()
|
||||
{
|
||||
//
|
||||
if (loosingTrades > 0) {
|
||||
if (loosingTrades > 0)
|
||||
{
|
||||
loosingTrades--;
|
||||
}
|
||||
|
||||
//
|
||||
if (restingSignals > 0)
|
||||
{
|
||||
restingSignals--;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@@ -402,12 +402,19 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
|
||||
|
||||
//
|
||||
// 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.doRF = true;
|
||||
iTarget.actingDistance = 20;
|
||||
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);
|
||||
iTarget.actingDistance = 0;
|
||||
iTarget.target = isBullish ? entry + (3 * risk) : entry - (3 * risk);
|
||||
AddRef(iTarget, iTargets);
|
||||
|
||||
//
|
||||
@@ -425,29 +432,56 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
|
||||
// Here we Can Do Target Preparing if Signaller Restricted and
|
||||
// then ignore restrictions if required ...
|
||||
|
||||
//
|
||||
// Risk Free On Entry:
|
||||
iTarget.Clean();
|
||||
iTarget.doRF = true;
|
||||
iTarget.actingDistance = (5 * spread) / _point;
|
||||
iTarget.target = isBullish ? entry + (2 * spread) : entry - (2 * spread);
|
||||
AddRef(iTarget, iTargets);
|
||||
// //
|
||||
// // Risk Free On Entry:
|
||||
// iTarget.Clean();
|
||||
// iTarget.doRF = true;
|
||||
// iTarget.actingDistance = 10 * _point; // (5 * spread) / _point;
|
||||
// iTarget.target = isBullish ? entry + risk : entry - risk; // isBullish ? entry + (2 * spread) : entry - (2 * spread);
|
||||
// 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 ...
|
||||
// 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)
|
||||
if (loosingTrades >= 2)
|
||||
{
|
||||
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