add input validation to ea ...
This commit is contained in:
@@ -125,9 +125,6 @@ input bool eaAlertNewHours = false; // Alert New Hours
|
|||||||
//
|
//
|
||||||
// Variables ...
|
// Variables ...
|
||||||
|
|
||||||
//
|
|
||||||
// int mNumberOfSLs = 0;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Bar Style nad Time Instances ...
|
// Bar Style nad Time Instances ...
|
||||||
XSCXCTHelper *mCTHelper;
|
XSCXCTHelper *mCTHelper;
|
||||||
@@ -262,12 +259,6 @@ void OnTimer()
|
|||||||
// HandleTradeState();
|
// HandleTradeState();
|
||||||
// HandleTimeReport();
|
// HandleTimeReport();
|
||||||
// HandleStrategiesOnTick();
|
// HandleStrategiesOnTick();
|
||||||
|
|
||||||
// //
|
|
||||||
// if (eaTimeTracker.IsNewDay())
|
|
||||||
// {
|
|
||||||
// mNumberOfSLs = 0;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -281,7 +272,164 @@ bool ValidateInputs()
|
|||||||
bool result = false;
|
bool result = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
result = true;
|
string errMessage = "";
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isCommonValid = (
|
||||||
|
//
|
||||||
|
eaSlippage > 0 &&
|
||||||
|
eaMagicNumber > 0
|
||||||
|
//
|
||||||
|
);
|
||||||
|
if (!isCommonValid)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
errMessage += "common configurations error;" + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isSymbolsValid = (
|
||||||
|
//
|
||||||
|
eaMultiSymbol
|
||||||
|
? IsValid(eaSymbols)
|
||||||
|
: true
|
||||||
|
//
|
||||||
|
);
|
||||||
|
if (!isSymbolsValid)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
errMessage += "symbols configurations error;" + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isRiskRewardValid = (
|
||||||
|
//
|
||||||
|
(eaUseFixedTPSLPoints
|
||||||
|
? eaTPPoint > 0 ||
|
||||||
|
eaSLPoint > 0
|
||||||
|
: eaR2R > 0) &&
|
||||||
|
!(eaIgnoreTP &&
|
||||||
|
eaIgnoreSL)
|
||||||
|
//
|
||||||
|
);
|
||||||
|
if (!isRiskRewardValid)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
errMessage += "risk/reward configurations error;" + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isVolumeValid = (
|
||||||
|
//
|
||||||
|
eaUseDynamicVolume
|
||||||
|
? eaDynamicVolumeStep >= 0.01 &&
|
||||||
|
eaDynamicVolumeBalanceFactor > 0
|
||||||
|
: eaVolume >= 0.01
|
||||||
|
//
|
||||||
|
);
|
||||||
|
if (!isVolumeValid)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
errMessage += "volume configurations error;" + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isTradeManagementValid = (
|
||||||
|
//
|
||||||
|
!(!eaAllowLong && !eaAllowShort) &&
|
||||||
|
eaMaxAllowedLongs >= 0 &&
|
||||||
|
eaMaxAllowedShorts >= 0
|
||||||
|
//
|
||||||
|
);
|
||||||
|
if (!isTradeManagementValid)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
errMessage += "trade management configurations error;" + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isHedgingValid = (
|
||||||
|
//
|
||||||
|
eaAllowHedging
|
||||||
|
? eaMinTradesForHedge >= 1 &&
|
||||||
|
eaHedgeVolumeFactor >= 0.01 &&
|
||||||
|
eaMinimumProfitPerVolumeForHedging >= 0
|
||||||
|
: true
|
||||||
|
//
|
||||||
|
);
|
||||||
|
if (!isHedgingValid)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
errMessage += "hedging configurations error;" + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isTraillingValid = (
|
||||||
|
//
|
||||||
|
eaAllowTrailStop
|
||||||
|
? eaStartTrailInPoint > 0 &&
|
||||||
|
eaTrailStepInPoint > 0
|
||||||
|
: true
|
||||||
|
//
|
||||||
|
);
|
||||||
|
if (!isTraillingValid)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
errMessage += "trailling configurations error;" + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isRecoveryValid = (
|
||||||
|
//
|
||||||
|
eaAllowRecovery
|
||||||
|
? eaRecoveryTPPoint > 0 &&
|
||||||
|
eaRecoverySLPoint > 0 &&
|
||||||
|
eaMaxAllowedRecoveryTrades >= 0 &&
|
||||||
|
eaRecoveryVolumeMultiplier > 0 &&
|
||||||
|
eaMaxAllowedRecoveryTradesVolume >= 0
|
||||||
|
: true
|
||||||
|
//
|
||||||
|
);
|
||||||
|
if (!isRecoveryValid)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
errMessage += "recovery configurations error;" + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
result =
|
||||||
|
//
|
||||||
|
// Common ...
|
||||||
|
isCommonValid &&
|
||||||
|
//
|
||||||
|
// Symbols ...
|
||||||
|
isSymbolsValid &&
|
||||||
|
//
|
||||||
|
// Risk/Reward ...
|
||||||
|
isRiskRewardValid &&
|
||||||
|
//
|
||||||
|
// Volume ...
|
||||||
|
isVolumeValid &&
|
||||||
|
//
|
||||||
|
// Trade Management ...
|
||||||
|
isTradeManagementValid &&
|
||||||
|
//
|
||||||
|
// Hedging ...
|
||||||
|
isHedgingValid &&
|
||||||
|
//
|
||||||
|
// Trailling ...
|
||||||
|
isTraillingValid &&
|
||||||
|
//
|
||||||
|
// Recovery ...
|
||||||
|
isRecoveryValid
|
||||||
|
//
|
||||||
|
;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
Print("Errors: \n", errMessage);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
Reference in New Issue
Block a user