add supports for XASCT in mCycle ...

This commit is contained in:
2024-06-07 08:00:27 +03:30
parent f65fdcd14a
commit 6a0f803c1a
12 changed files with 1434 additions and 124 deletions
+78 -26
View File
@@ -25,8 +25,10 @@
//
#include "../Classes/x-saherelm.x121.xea.class.mq5"
#include "../Signallers/x-saherelm.x92.signaller.class.mq5"
#include "../Signallers/x-saherelm.xsp.signaller.class.mq5"
#include "../Signallers/x-saherelm.x110.signaller.class.mq5"
#include "../Signallers/x-saherelm.x121.signaller.class.mq5"
#include "../Signallers/x-saherelm.x128.signaller.class.mq5"
#include "../Signallers/x-saherelm.x786.signaller.class.mq5"
//
@@ -41,11 +43,6 @@ input string x121EASymbols = "EURUSDb"; // Symbols
//
input bool x121EAAllowLong = true; // Allow Long Trades
input bool x121EAAllowShort = true; // Allow Short Trades
input int x121EAManageInterval = 0; // Manager Check Intervals Seconds
input int x121EAMaxAllowedPositions = 5; // Max Allowed Positions
input double x121EAMaxAllowedSpread = 0; // Max Allowed Spred for Opening Trades
input double x121EAMinProfitPerTrade = 0.6; // Min Profit Per Trade based On Volume Factor (Hedge)
input double x121EAMinProfitPerVolumeFactor = 0.01; // Min Volume Factor for Calculating Profit (Hedge)
input double x121EAMaxAllowedDrawdownFactor = 0.002; // Max Allowed Drawdown Factor
input double x121EAVolume = 0.01; // Static Volume
@@ -229,33 +226,45 @@ bool InitialEA()
// X786 Signaller ...
X786Signaller *x786Signaller = new X786Signaller();
x786Signaller.Default();
x786Signaller.allowLong = x121EAAllowLong;
x786Signaller.allowShort = x121EAAllowShort;
x786Signaller.maxAllowedLong = 0;
x786Signaller.maxAllowedShort = 0;
x786Signaller.allowLong = false; // x121EAAllowLong;
x786Signaller.allowShort = false; // x121EAAllowShort;
x786Signaller.maxAllowedOpenPositionAge = 0;
x786Signaller.minRequiredProfitPerTrade = 1;
x786Signaller.openNextPositionOnProfit = true;
x786Signaller.minRequiredProfitPerTrade = 0;
x786Signaller.openNextPositionOnProfit = false;
x786Signaller.staticVolumeLong = x121EAVolume;
x786Signaller.staticVolumeShort = x121EAVolume;
x786Signaller.delayBetweenTwoSameTypeSignals = 6;
//
// X121 Signaller ...
X121Signaller *x121Signaller = new X121Signaller();
x121Signaller.Default();
x121Signaller.allowLong = x121EAAllowLong;
x121Signaller.allowShort = x121EAAllowShort;
x121Signaller.maxAllowedLong = 0;
x121Signaller.maxAllowedShort = 0;
x121Signaller.allowLong = false; // x121EAAllowLong;
x121Signaller.allowShort = false; // x121EAAllowShort;
x121Signaller.maxAllowedOpenPositionAge = 0;
x121Signaller.minRequiredProfitPerTrade = 1;
x121Signaller.openNextPositionOnProfit = true;
x121Signaller.minRequiredProfitPerTrade = 0;
x121Signaller.openNextPositionOnProfit = false;
x121Signaller.staticVolumeLong = x121EAVolume;
x121Signaller.staticVolumeShort = x121EAVolume;
x121Signaller.delayBetweenTwoSameTypeSignals = 6;
//
// X110 Signaller ...
X110Signaller *x110Signaller = new X110Signaller();
x110Signaller.Default();
x110Signaller.maxAllowedLong = 0;
x110Signaller.maxAllowedShort = 0;
x110Signaller.allowLong = x121EAAllowLong;
x110Signaller.allowShort = x121EAAllowShort;
x110Signaller.maxAllowedOpenPositionAge = 0;
x110Signaller.minRequiredProfitPerTrade = 1;
x110Signaller.openNextPositionOnProfit = true;
x110Signaller.minRequiredProfitPerTrade = 0;
x110Signaller.openNextPositionOnProfit = false;
x110Signaller.staticVolumeLong = x121EAVolume;
x110Signaller.staticVolumeShort = x121EAVolume;
x110Signaller.delayBetweenTwoSameTypeSignals = 6;
//
@@ -264,29 +273,67 @@ bool InitialEA()
x92Signaller.Default();
x92Signaller.SetSymbol(iSymbol);
x92Signaller.SetPeriod(iPeriod);
x92Signaller.allowLong = x121EAAllowLong;
x92Signaller.allowShort = x121EAAllowShort;
x92Signaller.maxAllowedLong = 0;
x92Signaller.maxAllowedShort = 0;
x92Signaller.allowLong = false; // x121EAAllowLong;
x92Signaller.allowShort = false; // x121EAAllowShort;
x92Signaller.maxAllowedOpenPositionAge = 0;
x92Signaller.minRequiredProfitPerTrade = 1;
x92Signaller.openNextPositionOnProfit = true;
x92Signaller.minRequiredProfitPerTrade = 0;
x92Signaller.openNextPositionOnProfit = false;
x92Signaller.staticVolumeLong = x121EAVolume;
x92Signaller.staticVolumeShort = x121EAVolume;
x92Signaller.delayBetweenTwoSameTypeSignals = 6;
//
// X128 Signaller ...
X128Signaller *x128Signaller = new X128Signaller();
x128Signaller.Default();
x128Signaller.maxAllowedLong = 0;
x128Signaller.maxAllowedShort = 0;
x128Signaller.allowLong = false; // x121EAAllowLong;
x128Signaller.allowShort = false; // x121EAAllowShort;
x128Signaller.maxAllowedOpenPositionAge = 0;
x128Signaller.minRequiredProfitPerTrade = 0;
x128Signaller.openNextPositionOnProfit = false;
x128Signaller.staticVolumeLong = x121EAVolume;
x128Signaller.staticVolumeShort = x121EAVolume;
x128Signaller.delayBetweenTwoSameTypeSignals = 6;
//
// XSP Signaller ...
XSPSignaller *xSPSignaller = new XSPSignaller();
xSPSignaller.Default();
xSPSignaller.maxAllowedLong = 0;
xSPSignaller.maxAllowedShort = 0;
xSPSignaller.allowLong = false; // x121EAAllowLong;
xSPSignaller.allowShort = false; // x121EAAllowShort;
xSPSignaller.maxAllowedOpenPositionAge = 0;
xSPSignaller.minRequiredProfitPerTrade = 0;
xSPSignaller.openNextPositionOnProfit = false;
xSPSignaller.staticVolumeLong = x121EAVolume;
xSPSignaller.staticVolumeShort = x121EAVolume;
xSPSignaller.delayBetweenTwoSameTypeSignals = 6;
//
Clean(iDescriptor.signallers);
//
int idx = 0;
ArrayResize(iDescriptor.signallers, 4);
ArrayResize(iDescriptor.signallers, 1);
//
iDescriptor.signallers[idx] = x786Signaller;
idx++;
iDescriptor.signallers[idx] = x121Signaller;
idx++;
// iDescriptor.signallers[idx] = x786Signaller;
// idx++;
// iDescriptor.signallers[idx] = x121Signaller;
// idx++;
iDescriptor.signallers[idx] = x110Signaller;
idx++;
iDescriptor.signallers[idx] = x92Signaller;
idx++;
// iDescriptor.signallers[idx] = x92Signaller;
// idx++;
// iDescriptor.signallers[idx] = x128Signaller;
// idx++;
// iDescriptor.signallers[idx] = xSPSignaller;
// idx++;
//
// Set Inputs to Default ...
@@ -342,6 +389,11 @@ void ConfigureDescriptor(
X121ProviderDescriptor &iDescriptor //
)
{
//
// XASCT ...
iDescriptor.inputs.asctInputs.showLongs = false;
iDescriptor.inputs.asctInputs.showShorts = false;
//
// XHK ...
iDescriptor.inputs.hkInputs.drawHikenAshi = false;