last works on GUI Panel Developing ...

This commit is contained in:
2024-09-24 18:02:10 +03:30
parent a36e78254d
commit 2cca497b62
6 changed files with 242 additions and 9 deletions
+107
View File
@@ -36,6 +36,9 @@
#include "../Parsers/x-saherelm.xch.che.parser.mq5"
#include "../Strategies/x-saherelm.xch.che.strategy.mq5"
//
#include "../Classes/XCObjects/x-saherelm.x-panel.class.mq5"
//
// Inputs ...
@@ -190,6 +193,14 @@ XTimeTracker eaTimeTracker;
// Trade Handler Instance Class ...
X121SCTradeHandler *eaTradeHandler;
//
// Panel of EA ...
XCPanel eaPanel;
XCButton eaStateButton;
string eaStateButtonTitle;
bool eaEnableLongs = true;
bool eaEnableShorts = true;
//
string mTag = "";
@@ -230,6 +241,13 @@ int OnInit()
// EventSetTimer(1);
// EventSetMillisecondTimer(100);
//
// Create Panel for EA Data ...
if (!InitialPanel())
{
return INIT_FAILED;
}
//
// Alert Initialization ...
string msg = "Initialized Successfully ...";
@@ -271,6 +289,9 @@ void OnDeinit(const int reason)
delete eaTrader;
delete eaTradeHandler;
//
eaPanel.Destroy();
//
Clean(strategies);
}
@@ -282,6 +303,7 @@ void OnTick()
//
HandleTradeState();
HandleTimeReport();
HandlePanelUpdate();
HandleStrategiesOnTick();
}
@@ -302,6 +324,24 @@ void OnTimer()
// HandleStrategiesOnTick();
}
//
// Chart Event Handler ...
void OnChartEvent(
const int id,
const long &lparam,
const double &dparam,
const string &sparam //
)
{
//
eaPanel.OnEvent(
id,
lparam,
dparam,
sparam //
);
}
//
// Custom Functions ...
@@ -418,6 +458,42 @@ bool ValidateInputs()
return result;
}
//
bool InitialPanel()
{
//
bool result = false;
//
// Create a Panel ...
result = eaPanel.Create(
mTag,
100,
100,
300,
200 //
);
if (!result)
{
return result;
}
//
// Create Activation Button ...
string eaStatePrefix = mTag + "_State_";
eaStateButtonTitle = eaStatePrefix + "lbl";
result = eaStateButton.Create(
eaStateButtonTitle,
100,
120,
100,
25 //
);
//
return result;
}
//
// Initialize all Requirements ...
bool InitialEA()
@@ -885,6 +961,19 @@ void HandleTimeReport()
}
}
//
// Update Panel ...
void HandlePanelUpdate()
{
//
// Prepare State ...
bool isEnable = eaEnableLongs ||
eaEnableShorts;
//
string stateStr = isEnable ? "Active" : "Inactive";
}
//
// SIGNAL EVENT Handlers ...
//
@@ -912,6 +1001,9 @@ void OnSignalRecieved(
return;
}
//
bool isLong = IsLong(signal.type);
//
// Notify When a Raw (Unfiltered) Signal Recieved
// if it's Provided ...
@@ -949,6 +1041,21 @@ void OnSignalRecieved(
//
eaTradeHandler.UpdateSignal(signal);
}
else
{
signal.volume = eaVolume;
}
//
// Chekc Signalling Enable or not ...
bool canContinue =
isLong
? eaEnableLongs
: eaEnableShorts;
if (!canContinue)
{
return;
}
//
// Since Signal Filtering done based on