last works on GUI Panel Developing ...
This commit is contained in:
@@ -13,7 +13,12 @@
|
||||
CTrade trade;
|
||||
|
||||
//
|
||||
XCPanel panel;
|
||||
string mTag;
|
||||
XCPanel eaPanel;
|
||||
XCButton eaStateBtn;
|
||||
string eaStateBtnName;
|
||||
bool eaEnableLongs = true;
|
||||
bool eaEnableShorts = true;
|
||||
|
||||
//+------------------------------------------------------------------+
|
||||
//| Expert initialization function |
|
||||
@@ -21,7 +26,7 @@ XCPanel panel;
|
||||
int OnInit()
|
||||
{
|
||||
//
|
||||
panel.Create("XPanel", 100, 100, 200, 100);
|
||||
// panel.Create("XPanel", 100, 100, 300, 200);
|
||||
|
||||
//
|
||||
// Enables mouse move events on the chart
|
||||
@@ -70,6 +75,9 @@ int OnInit()
|
||||
// TitleBar.Add("BuyButton");
|
||||
// TitleBar.Add("SellButton");
|
||||
|
||||
//
|
||||
mTag = "XPanel";
|
||||
InitialPanel();
|
||||
ChartRedraw(0); // Redraws the chart
|
||||
return (INIT_SUCCEEDED);
|
||||
}
|
||||
@@ -87,6 +95,9 @@ void OnDeinit(const int reason)
|
||||
// LotSize.Destroy();
|
||||
// BuyButton.Destroy();
|
||||
// SellButton.Destroy();
|
||||
|
||||
//
|
||||
eaPanel.Destroy();
|
||||
}
|
||||
|
||||
//+------------------------------------------------------------------+
|
||||
@@ -113,6 +124,50 @@ void OnChartEvent(const int id, const long &lparam, const double &dparam, const
|
||||
// TitleBar.OnEvent(id, lparam, dparam, sparam);
|
||||
|
||||
//
|
||||
panel.OnEvent(id, lparam, dparam, sparam);
|
||||
eaPanel.OnEvent(id, lparam, dparam, sparam);
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
|
||||
//
|
||||
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_";
|
||||
eaStateBtnName = eaStatePrefix + "lbl";
|
||||
result = eaStateBtn.Create(
|
||||
eaStateBtnName,
|
||||
100,
|
||||
120,
|
||||
100,
|
||||
25 //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
eaStateBtn.SetZOrder(100);
|
||||
|
||||
//
|
||||
eaPanel.Add(eaStateBtnName);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
@@ -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