last works on GUI Panel Developing ...
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user