last ...
This commit is contained in:
@@ -65,6 +65,7 @@ class XCBaseSignaller : public XCBase
|
|||||||
int restingSignals; // Resting Signals ...
|
int restingSignals; // Resting Signals ...
|
||||||
datetime lastSignalAt; // Holding Last Signal's Time ...
|
datetime lastSignalAt; // Holding Last Signal's Time ...
|
||||||
int restingDelay; // Resting Bars After Last Signal ...
|
int restingDelay; // Resting Bars After Last Signal ...
|
||||||
|
int loosingTrades; // Loosing Trades ...
|
||||||
|
|
||||||
//
|
//
|
||||||
TCanAnalyse canAnalyseEventListener;
|
TCanAnalyse canAnalyseEventListener;
|
||||||
@@ -325,6 +326,22 @@ class XCBaseSignaller : public XCBase
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
void LoseTrade()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
restingSignals++;
|
||||||
|
loosingTrades++;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
void WinTrade() {
|
||||||
|
//
|
||||||
|
if (loosingTrades > 0) {
|
||||||
|
loosingTrades--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Protected ...
|
// Protected ...
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -362,7 +362,7 @@ int OnInit()
|
|||||||
eaSignallerRiskInPoint, // Default Risk In Points ...
|
eaSignallerRiskInPoint, // Default Risk In Points ...
|
||||||
eaSignallerVolume // Defaul Volume ...
|
eaSignallerVolume // Defaul Volume ...
|
||||||
);
|
);
|
||||||
fima1Signaller.slAdditionDistance = 15;
|
fima1Signaller.slAdditionDistance = 15;
|
||||||
fima1Signaller.AddOnSignalEventHandler(OnSignalTriggered);
|
fima1Signaller.AddOnSignalEventHandler(OnSignalTriggered);
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -728,7 +728,8 @@ void OnStopLossTriggered(const XDeal &deal)
|
|||||||
|
|
||||||
//
|
//
|
||||||
HandleBalanceReport();
|
HandleBalanceReport();
|
||||||
HandleLoosingPosition(deal.positionId, deal.profit);
|
HandleWinTrade(deal.positionId, deal.profit);
|
||||||
|
HandleLoseTrade(deal.positionId, deal.profit);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -743,6 +744,7 @@ void OnTakeProfitTriggered(const XDeal &deal)
|
|||||||
|
|
||||||
//
|
//
|
||||||
HandleBalanceReport();
|
HandleBalanceReport();
|
||||||
|
HandleWinTrade(deal.positionId, deal.profit);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -767,7 +769,8 @@ void OnPositionForceClosed(
|
|||||||
|
|
||||||
//
|
//
|
||||||
HandleBalanceReport();
|
HandleBalanceReport();
|
||||||
HandleLoosingPosition(ticket, position.profit);
|
HandleWinTrade(ticket, position.profit);
|
||||||
|
HandleLoseTrade(ticket, position.profit);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -856,8 +859,9 @@ void OnTradeStateChanged(const XOnTradeHandlerState &state)
|
|||||||
* Test Resting Signals ...
|
* Test Resting Signals ...
|
||||||
*
|
*
|
||||||
* @param ticket: ulong, Position Ticket ...
|
* @param ticket: ulong, Position Ticket ...
|
||||||
|
* @param profit: double, Position Profit ...
|
||||||
*/
|
*/
|
||||||
void HandleLoosingPosition(
|
void HandleLoseTrade(
|
||||||
ulong ticket = 0,
|
ulong ticket = 0,
|
||||||
double profit = 0 //
|
double profit = 0 //
|
||||||
)
|
)
|
||||||
@@ -879,7 +883,30 @@ void HandleLoosingPosition(
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Increase Resting Signals of Signallers ...
|
// Increase Resting Signals of Signallers ...
|
||||||
fima1Signaller.restingSignals++;
|
fima1Signaller.LoseTrade();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle Win Trade ...
|
||||||
|
*
|
||||||
|
* @param ticket: ulong, Position Ticket ...
|
||||||
|
* @param profit: double, Position Profit ...
|
||||||
|
*/
|
||||||
|
void HandleWinTrade(
|
||||||
|
ulong ticket = 0,
|
||||||
|
double profit = 0 //
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool has = ticket > 0 &&
|
||||||
|
profit > 0;
|
||||||
|
if (!has)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
fima1Signaller.WinTrade();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -403,7 +403,8 @@ 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.Clean();
|
||||||
iTarget.actingDistance = 1;
|
iTarget.doRF = true;
|
||||||
|
iTarget.actingDistance = 20;
|
||||||
iTarget.volumeMultiplier = 0.5;
|
iTarget.volumeMultiplier = 0.5;
|
||||||
iTarget.target = isBullish ? entry + (1.5 * risk) : entry - (1.5 * risk);
|
iTarget.target = isBullish ? entry + (1.5 * risk) : entry - (1.5 * risk);
|
||||||
iTarget.tpValue = isBullish ? entry + (2.5 * risk) : entry - (2.5 * risk);
|
iTarget.tpValue = isBullish ? entry + (2.5 * risk) : entry - (2.5 * risk);
|
||||||
@@ -444,7 +445,10 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Reset Restrictions ...
|
// Reset Restrictions ...
|
||||||
ResetRestrictions();
|
if (loosingTrades == 1)
|
||||||
|
{
|
||||||
|
ResetRestrictions();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -535,16 +539,17 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
|
|||||||
bool result = false;
|
bool result = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
result = Strategy2HasSignal(
|
// result = Strategy2HasSignal(
|
||||||
bar,
|
// bar,
|
||||||
zone,
|
// zone,
|
||||||
targets,
|
// targets,
|
||||||
dir //
|
// dir //
|
||||||
);
|
// );
|
||||||
|
|
||||||
//
|
//
|
||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
|
//
|
||||||
result = Strategy3HasSignal(
|
result = Strategy3HasSignal(
|
||||||
bar,
|
bar,
|
||||||
zone,
|
zone,
|
||||||
@@ -556,7 +561,7 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
|
|||||||
//
|
//
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
Print("Salam");
|
// Print("Salam");
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
Reference in New Issue
Block a user