last works on GUI Panel Developing ...
This commit is contained in:
@@ -104,7 +104,7 @@ class XCButton : XSCBase
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Object Border Color ...
|
* Set Object Border Color ...
|
||||||
*
|
*
|
||||||
* @param value: color
|
* @param value: color
|
||||||
*/
|
*/
|
||||||
void SetBorderColor(color value)
|
void SetBorderColor(color value)
|
||||||
@@ -114,7 +114,7 @@ class XCButton : XSCBase
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Object Background Color ...
|
* Set Object Background Color ...
|
||||||
*
|
*
|
||||||
* @param value: color
|
* @param value: color
|
||||||
*/
|
*/
|
||||||
void SetBGColor(color value)
|
void SetBGColor(color value)
|
||||||
@@ -124,7 +124,7 @@ class XCButton : XSCBase
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Object Text ...
|
* Set Object Text ...
|
||||||
*
|
*
|
||||||
* @param value: text
|
* @param value: text
|
||||||
*/
|
*/
|
||||||
void SetText(string value)
|
void SetText(string value)
|
||||||
@@ -132,6 +132,16 @@ class XCButton : XSCBase
|
|||||||
ObjectSetString(0, mName, OBJPROP_TEXT, value);
|
ObjectSetString(0, mName, OBJPROP_TEXT, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Object ZOrder ...
|
||||||
|
*
|
||||||
|
* @param value: z order
|
||||||
|
*/
|
||||||
|
void SetZOrder(int value)
|
||||||
|
{
|
||||||
|
ObjectSetInteger(0, mName, OBJPROP_ZORDER, value);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Protected ...
|
// Protected ...
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -152,6 +152,16 @@ class XCEdit : XSCBase
|
|||||||
return ObjectGetString(0, mName, OBJPROP_TEXT);
|
return ObjectGetString(0, mName, OBJPROP_TEXT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Object ZOrder ...
|
||||||
|
*
|
||||||
|
* @param value: z order
|
||||||
|
*/
|
||||||
|
void SetZOrder(int value)
|
||||||
|
{
|
||||||
|
ObjectSetInteger(0, mName, OBJPROP_ZORDER, value);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Protected ...
|
// Protected ...
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -146,6 +146,25 @@ class XCLabel : XSCBase
|
|||||||
ObjectSetString(0, mName, OBJPROP_FONT, value);
|
ObjectSetString(0, mName, OBJPROP_FONT, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Object Anchor ...
|
||||||
|
*
|
||||||
|
* @param value: anchor
|
||||||
|
*/
|
||||||
|
void SetAnchor(ENUM_ANCHOR_POINT value) {
|
||||||
|
ObjectSetInteger(0, mName, OBJPROP_ANCHOR, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Object ZOrder ...
|
||||||
|
*
|
||||||
|
* @param value: z order
|
||||||
|
*/
|
||||||
|
void SetZOrder(int value)
|
||||||
|
{
|
||||||
|
ObjectSetInteger(0, mName, OBJPROP_ZORDER, value);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Protected ...
|
// Protected ...
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -52,7 +52,25 @@ class XCPanel : XSCBase
|
|||||||
//
|
//
|
||||||
// Action ...
|
// Action ...
|
||||||
|
|
||||||
//
|
/**
|
||||||
|
* Create an instance of Panel Object ...
|
||||||
|
*
|
||||||
|
* @param name: Object name
|
||||||
|
* @param xDis: X Distance
|
||||||
|
* @param yDis: Y Distance
|
||||||
|
* @param xSize: X Size
|
||||||
|
* @param ySize: Y Size
|
||||||
|
* @param titleBarBorderType: Border Type of Panel TitleBar
|
||||||
|
* @param titleBarBGColor: Background Color of Panel TitleBar
|
||||||
|
* @param caption: Caption Text of Panel TitleBar
|
||||||
|
* @param captionontSize: Font Size of Panel Caption
|
||||||
|
* @param captionColor: Text Color of Panel Caption
|
||||||
|
* @param captionAnchor: Anchor Point of Panel Caption
|
||||||
|
* @param bodyBorderType: Border Type of Panel Body
|
||||||
|
* @param bodyBGColor: Background Color of Panel Body
|
||||||
|
*
|
||||||
|
* @return ( bool )
|
||||||
|
*/
|
||||||
bool Create(
|
bool Create(
|
||||||
string name,
|
string name,
|
||||||
int xDis,
|
int xDis,
|
||||||
@@ -68,6 +86,7 @@ class XCPanel : XSCBase
|
|||||||
string caption = "",
|
string caption = "",
|
||||||
int captionontSize = 9,
|
int captionontSize = 9,
|
||||||
color captionColor = clrWhite,
|
color captionColor = clrWhite,
|
||||||
|
ENUM_ANCHOR_POINT captionAnchor = ANCHOR_LEFT_UPPER,
|
||||||
//
|
//
|
||||||
// Body ...
|
// Body ...
|
||||||
ENUM_BORDER_TYPE bodyBorderType = BORDER_FLAT,
|
ENUM_BORDER_TYPE bodyBorderType = BORDER_FLAT,
|
||||||
@@ -99,7 +118,7 @@ class XCPanel : XSCBase
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Title Bar ...
|
// Title Bar ...
|
||||||
int titleBarHeight = ySize / 5;
|
int titleBarHeight = 20;
|
||||||
result = mTitleBar.Create(
|
result = mTitleBar.Create(
|
||||||
mTitleBarName,
|
mTitleBarName,
|
||||||
xDis,
|
xDis,
|
||||||
@@ -144,6 +163,7 @@ class XCPanel : XSCBase
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
mTitleText.SetText(caption);
|
mTitleText.SetText(caption);
|
||||||
|
mTitleText.SetAnchor(captionAnchor);
|
||||||
mTitleText.SetTextColor(captionColor);
|
mTitleText.SetTextColor(captionColor);
|
||||||
mTitleText.SetFontSize(captionontSize);
|
mTitleText.SetFontSize(captionontSize);
|
||||||
|
|
||||||
@@ -156,7 +176,9 @@ class XCPanel : XSCBase
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
/**
|
||||||
|
* Destroy Panel Object and all of it's Child
|
||||||
|
*/
|
||||||
void Destroy()
|
void Destroy()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@@ -193,6 +215,16 @@ class XCPanel : XSCBase
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add Specific Child Object ...
|
||||||
|
*
|
||||||
|
* @param name: object name
|
||||||
|
*/
|
||||||
|
void Add(string name)
|
||||||
|
{
|
||||||
|
mTitleBar.Add(name);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
protected:
|
protected:
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -13,7 +13,12 @@
|
|||||||
CTrade trade;
|
CTrade trade;
|
||||||
|
|
||||||
//
|
//
|
||||||
XCPanel panel;
|
string mTag;
|
||||||
|
XCPanel eaPanel;
|
||||||
|
XCButton eaStateBtn;
|
||||||
|
string eaStateBtnName;
|
||||||
|
bool eaEnableLongs = true;
|
||||||
|
bool eaEnableShorts = true;
|
||||||
|
|
||||||
//+------------------------------------------------------------------+
|
//+------------------------------------------------------------------+
|
||||||
//| Expert initialization function |
|
//| Expert initialization function |
|
||||||
@@ -21,7 +26,7 @@ XCPanel panel;
|
|||||||
int OnInit()
|
int OnInit()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
panel.Create("XPanel", 100, 100, 200, 100);
|
// panel.Create("XPanel", 100, 100, 300, 200);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Enables mouse move events on the chart
|
// Enables mouse move events on the chart
|
||||||
@@ -70,6 +75,9 @@ int OnInit()
|
|||||||
// TitleBar.Add("BuyButton");
|
// TitleBar.Add("BuyButton");
|
||||||
// TitleBar.Add("SellButton");
|
// TitleBar.Add("SellButton");
|
||||||
|
|
||||||
|
//
|
||||||
|
mTag = "XPanel";
|
||||||
|
InitialPanel();
|
||||||
ChartRedraw(0); // Redraws the chart
|
ChartRedraw(0); // Redraws the chart
|
||||||
return (INIT_SUCCEEDED);
|
return (INIT_SUCCEEDED);
|
||||||
}
|
}
|
||||||
@@ -87,6 +95,9 @@ void OnDeinit(const int reason)
|
|||||||
// LotSize.Destroy();
|
// LotSize.Destroy();
|
||||||
// BuyButton.Destroy();
|
// BuyButton.Destroy();
|
||||||
// SellButton.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);
|
// 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 "../Parsers/x-saherelm.xch.che.parser.mq5"
|
||||||
#include "../Strategies/x-saherelm.xch.che.strategy.mq5"
|
#include "../Strategies/x-saherelm.xch.che.strategy.mq5"
|
||||||
|
|
||||||
|
//
|
||||||
|
#include "../Classes/XCObjects/x-saherelm.x-panel.class.mq5"
|
||||||
|
|
||||||
//
|
//
|
||||||
// Inputs ...
|
// Inputs ...
|
||||||
|
|
||||||
@@ -190,6 +193,14 @@ XTimeTracker eaTimeTracker;
|
|||||||
// Trade Handler Instance Class ...
|
// Trade Handler Instance Class ...
|
||||||
X121SCTradeHandler *eaTradeHandler;
|
X121SCTradeHandler *eaTradeHandler;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Panel of EA ...
|
||||||
|
XCPanel eaPanel;
|
||||||
|
XCButton eaStateButton;
|
||||||
|
string eaStateButtonTitle;
|
||||||
|
bool eaEnableLongs = true;
|
||||||
|
bool eaEnableShorts = true;
|
||||||
|
|
||||||
//
|
//
|
||||||
string mTag = "";
|
string mTag = "";
|
||||||
|
|
||||||
@@ -230,6 +241,13 @@ int OnInit()
|
|||||||
// EventSetTimer(1);
|
// EventSetTimer(1);
|
||||||
// EventSetMillisecondTimer(100);
|
// EventSetMillisecondTimer(100);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Create Panel for EA Data ...
|
||||||
|
if (!InitialPanel())
|
||||||
|
{
|
||||||
|
return INIT_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Alert Initialization ...
|
// Alert Initialization ...
|
||||||
string msg = "Initialized Successfully ...";
|
string msg = "Initialized Successfully ...";
|
||||||
@@ -271,6 +289,9 @@ void OnDeinit(const int reason)
|
|||||||
delete eaTrader;
|
delete eaTrader;
|
||||||
delete eaTradeHandler;
|
delete eaTradeHandler;
|
||||||
|
|
||||||
|
//
|
||||||
|
eaPanel.Destroy();
|
||||||
|
|
||||||
//
|
//
|
||||||
Clean(strategies);
|
Clean(strategies);
|
||||||
}
|
}
|
||||||
@@ -282,6 +303,7 @@ void OnTick()
|
|||||||
//
|
//
|
||||||
HandleTradeState();
|
HandleTradeState();
|
||||||
HandleTimeReport();
|
HandleTimeReport();
|
||||||
|
HandlePanelUpdate();
|
||||||
HandleStrategiesOnTick();
|
HandleStrategiesOnTick();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -302,6 +324,24 @@ void OnTimer()
|
|||||||
// HandleStrategiesOnTick();
|
// 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 ...
|
// Custom Functions ...
|
||||||
|
|
||||||
@@ -418,6 +458,42 @@ bool ValidateInputs()
|
|||||||
return result;
|
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 ...
|
// Initialize all Requirements ...
|
||||||
bool InitialEA()
|
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 ...
|
// SIGNAL EVENT Handlers ...
|
||||||
//
|
//
|
||||||
@@ -912,6 +1001,9 @@ void OnSignalRecieved(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isLong = IsLong(signal.type);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Notify When a Raw (Unfiltered) Signal Recieved
|
// Notify When a Raw (Unfiltered) Signal Recieved
|
||||||
// if it's Provided ...
|
// if it's Provided ...
|
||||||
@@ -949,6 +1041,21 @@ void OnSignalRecieved(
|
|||||||
//
|
//
|
||||||
eaTradeHandler.UpdateSignal(signal);
|
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
|
// Since Signal Filtering done based on
|
||||||
|
|||||||
Reference in New Issue
Block a user