Apply Fix on Signal Delays ...
This commit is contained in:
@@ -0,0 +1,162 @@
|
|||||||
|
// ///////////////////////////////////////////////////////
|
||||||
|
// //
|
||||||
|
// // SaherElm IT Center MQL5 Class Library
|
||||||
|
// // --------------------------------------
|
||||||
|
// // Name: XCButton
|
||||||
|
// // Description: provides all based classes for use ...
|
||||||
|
// //
|
||||||
|
// //
|
||||||
|
// // Maintainer:
|
||||||
|
// // ------------
|
||||||
|
// // Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
|
||||||
|
// //
|
||||||
|
// //////////////////////////////////////////////////////
|
||||||
|
// //
|
||||||
|
// // Global Properties ...
|
||||||
|
// #property library
|
||||||
|
// #property copyright "Copyright 2023, SaherElm IT Center"
|
||||||
|
// #property link "https://www.saherelm.ir"
|
||||||
|
// #property version "1.00"
|
||||||
|
// #property strict
|
||||||
|
|
||||||
|
// //
|
||||||
|
// #include "../x-saherelm.base.class.mq5"
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Definitions ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Implementation ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // a Button Creation Class ...
|
||||||
|
// class XCButton : XSCBase
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// // Public ...
|
||||||
|
// public:
|
||||||
|
// //
|
||||||
|
// // Constructor(s) ...
|
||||||
|
// void XCButton()
|
||||||
|
// {
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Deconstructor ...
|
||||||
|
// void ~XCButton()
|
||||||
|
// {
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Actions ...
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Create an Instance of Class Object ...
|
||||||
|
// *
|
||||||
|
// * @param name: Object Name
|
||||||
|
// * @param xDis: X Distance
|
||||||
|
// * @param yDis: Y Distance
|
||||||
|
// * @param xSize: X Size
|
||||||
|
// * @param ySize: Y Size
|
||||||
|
// */
|
||||||
|
// bool Create(
|
||||||
|
// string name,
|
||||||
|
// int xDis,
|
||||||
|
// int yDis,
|
||||||
|
// int xSize,
|
||||||
|
// int ySize //
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// // Object creation and property settings
|
||||||
|
// bool result = false;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// result = ObjectCreate(0, name, OBJ_BUTTON, 0, 0, 0);
|
||||||
|
// if (!result)
|
||||||
|
// {
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// ObjectSetInteger(0, name, OBJPROP_XDISTANCE, xDis);
|
||||||
|
// ObjectSetInteger(0, name, OBJPROP_YDISTANCE, yDis);
|
||||||
|
// ObjectSetInteger(0, name, OBJPROP_XSIZE, xSize);
|
||||||
|
// ObjectSetInteger(0, name, OBJPROP_YSIZE, ySize);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// mName = name;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Destroy Class Instance ...
|
||||||
|
// */
|
||||||
|
// void Destroy()
|
||||||
|
// {
|
||||||
|
// ObjectDelete(0, mName);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Getter(s) / Setter(s) ...
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Set Object Border Color ...
|
||||||
|
// *
|
||||||
|
// * @param value: color
|
||||||
|
// */
|
||||||
|
// void SetBorderColor(color value)
|
||||||
|
// {
|
||||||
|
// ObjectSetInteger(0, mName, OBJPROP_BORDER_COLOR, value);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Set Object Background Color ...
|
||||||
|
// *
|
||||||
|
// * @param value: color
|
||||||
|
// */
|
||||||
|
// void SetBGColor(color value)
|
||||||
|
// {
|
||||||
|
// ObjectSetInteger(0, mName, OBJPROP_BGCOLOR, value);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Set Object Text ...
|
||||||
|
// *
|
||||||
|
// * @param value: text
|
||||||
|
// */
|
||||||
|
// void SetText(string value)
|
||||||
|
// {
|
||||||
|
// ObjectSetString(0, mName, OBJPROP_TEXT, value);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Protected ...
|
||||||
|
// protected:
|
||||||
|
// //
|
||||||
|
// // Private ...
|
||||||
|
// private:
|
||||||
|
// //
|
||||||
|
// // Props ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// string mName; // Name of Object
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Mouse state tracking variables ...
|
||||||
|
// int mlbDownX;
|
||||||
|
// int mlbDownY;
|
||||||
|
// int mlbDownXDistance;
|
||||||
|
// int mlbDownYDistance;
|
||||||
|
// int mPreviousMouseState;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// bool mMovingState; // State for whether the object is moving
|
||||||
|
|
||||||
|
// //
|
||||||
|
// string mAddedNames[]; // Array of added names
|
||||||
|
// long mAddedXDisDiffrence[]; // Arrays to store added distance differences
|
||||||
|
// long mAddedYDisDiffrence[]; // Arrays to store added distance differences
|
||||||
|
// };
|
||||||
@@ -0,0 +1,176 @@
|
|||||||
|
// ///////////////////////////////////////////////////////
|
||||||
|
// //
|
||||||
|
// // SaherElm IT Center MQL5 Class Library
|
||||||
|
// // --------------------------------------
|
||||||
|
// // Name: XCLabel
|
||||||
|
// // Description: provides all based classes for use ...
|
||||||
|
// //
|
||||||
|
// //
|
||||||
|
// // Maintainer:
|
||||||
|
// // ------------
|
||||||
|
// // Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
|
||||||
|
// //
|
||||||
|
// //////////////////////////////////////////////////////
|
||||||
|
// //
|
||||||
|
// // Global Properties ...
|
||||||
|
// #property library
|
||||||
|
// #property copyright "Copyright 2023, SaherElm IT Center"
|
||||||
|
// #property link "https://www.saherelm.ir"
|
||||||
|
// #property version "1.00"
|
||||||
|
// #property strict
|
||||||
|
|
||||||
|
// //
|
||||||
|
// #include "../x-saherelm.base.class.mq5"
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Definitions ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Implementation ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // a Label Creation Class ...
|
||||||
|
// class XCLabel : XSCBase
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// // Public ...
|
||||||
|
// public:
|
||||||
|
// //
|
||||||
|
// // Constructor(s) ...
|
||||||
|
// void XCLabel()
|
||||||
|
// {
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Deconstructor ...
|
||||||
|
// void ~XCLabel()
|
||||||
|
// {
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Actions ...
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Create an Instance of Class Object ...
|
||||||
|
// *
|
||||||
|
// * @param name: Object Name
|
||||||
|
// * @param xDis: X Distance
|
||||||
|
// * @param yDis: Y Distance
|
||||||
|
// */
|
||||||
|
// bool Create(
|
||||||
|
// string name,
|
||||||
|
// int xDis,
|
||||||
|
// int yDis //
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// // Object creation and property settings
|
||||||
|
// bool result = false;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// result = ObjectCreate(0, name, OBJ_LABEL, 0, 0, 0);
|
||||||
|
// if (!result)
|
||||||
|
// {
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// ObjectSetInteger(0, name, OBJPROP_XDISTANCE, xDis);
|
||||||
|
// ObjectSetInteger(0, name, OBJPROP_YDISTANCE, yDis);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// mName = name;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Destroy Class Instance ...
|
||||||
|
// */
|
||||||
|
// void Destroy()
|
||||||
|
// {
|
||||||
|
// ObjectDelete(0, mName);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Getter(s) / Setter(s) ...
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Set Text Color ...
|
||||||
|
// *
|
||||||
|
// * @param value: color
|
||||||
|
// */
|
||||||
|
// void SetTextColor(color value)
|
||||||
|
// {
|
||||||
|
// ObjectSetInteger(0, mName, OBJPROP_COLOR, value);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Set Text of Object ...
|
||||||
|
// *
|
||||||
|
// * @param value: text
|
||||||
|
// */
|
||||||
|
// void SetText(string value)
|
||||||
|
// {
|
||||||
|
// ObjectSetString(0, mName, OBJPROP_TEXT, value);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Get Text Of Object ...
|
||||||
|
// *
|
||||||
|
// * @return ( string )
|
||||||
|
// */
|
||||||
|
// string GetText()
|
||||||
|
// {
|
||||||
|
// return ObjectGetString(0, mName, OBJPROP_TEXT);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Set Font Size of Object ...
|
||||||
|
// *
|
||||||
|
// * @param value: size
|
||||||
|
// */
|
||||||
|
// void SetFontSize(int value)
|
||||||
|
// {
|
||||||
|
// ObjectSetInteger(0, mName, OBJPROP_FONTSIZE, value);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Set Font Name Of Object ...
|
||||||
|
// *
|
||||||
|
// * @param value: font name
|
||||||
|
// */
|
||||||
|
// void SetFont(string value)
|
||||||
|
// {
|
||||||
|
// ObjectSetString(0, mName, OBJPROP_FONT, value);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Protected ...
|
||||||
|
// protected:
|
||||||
|
// //
|
||||||
|
// // Private ...
|
||||||
|
// private:
|
||||||
|
// //
|
||||||
|
// // Props ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// string mName; // Name of Object
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Mouse state tracking variables ...
|
||||||
|
// int mlbDownX;
|
||||||
|
// int mlbDownY;
|
||||||
|
// int mlbDownXDistance;
|
||||||
|
// int mlbDownYDistance;
|
||||||
|
// int mPreviousMouseState;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// bool mMovingState; // State for whether the object is moving
|
||||||
|
|
||||||
|
// //
|
||||||
|
// string mAddedNames[]; // Array of added names
|
||||||
|
// long mAddedXDisDiffrence[]; // Arrays to store added distance differences
|
||||||
|
// long mAddedYDisDiffrence[]; // Arrays to store added distance differences
|
||||||
|
// };
|
||||||
@@ -0,0 +1,268 @@
|
|||||||
|
// ///////////////////////////////////////////////////////
|
||||||
|
// //
|
||||||
|
// // SaherElm IT Center MQL5 Class Library
|
||||||
|
// // --------------------------------------
|
||||||
|
// // Name: XCRectangleLabel
|
||||||
|
// // Description: provides all based classes for use ...
|
||||||
|
// //
|
||||||
|
// //
|
||||||
|
// // Maintainer:
|
||||||
|
// // ------------
|
||||||
|
// // Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
|
||||||
|
// //
|
||||||
|
// //////////////////////////////////////////////////////
|
||||||
|
// //
|
||||||
|
// // Global Properties ...
|
||||||
|
// #property library
|
||||||
|
// #property copyright "Copyright 2023, SaherElm IT Center"
|
||||||
|
// #property link "https://www.saherelm.ir"
|
||||||
|
// #property version "1.00"
|
||||||
|
// #property strict
|
||||||
|
|
||||||
|
// //
|
||||||
|
// #include "../x-saherelm.base.class.mq5"
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Definitions ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Implementation ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // a Rectangle Label Creation Class ...
|
||||||
|
// class XCRectangleLabel : XSCBase
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// // Public ...
|
||||||
|
// public:
|
||||||
|
// //
|
||||||
|
// // Constructor(s) ...
|
||||||
|
// void XCRectangleLabel()
|
||||||
|
// {
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Deconstructor ...
|
||||||
|
// void ~XCRectangleLabel()
|
||||||
|
// {
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Getter(s) / Setter(s) ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Handlers ...
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Event Handling for Mouse Movement ...
|
||||||
|
// * @param id: Event ID
|
||||||
|
// * @param lparam: Event parameter of long type
|
||||||
|
// * @param dparam: Event parameter of double type
|
||||||
|
// * @param sparam: Event parameter of string type
|
||||||
|
// */
|
||||||
|
// void OnEvent(
|
||||||
|
// int id,
|
||||||
|
// long lparam,
|
||||||
|
// double dparam,
|
||||||
|
// string sparam //
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// // Handle mouse movement events for dragging the rectangle label
|
||||||
|
// if (id == CHARTEVENT_MOUSE_MOVE)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// int X = (int)lparam;
|
||||||
|
// int Y = (int)dparam;
|
||||||
|
// int MouseState = (int)sparam;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// string name = mName;
|
||||||
|
// int XSize = (int)ObjectGetInteger(0, name, OBJPROP_XSIZE);
|
||||||
|
// int YSize = (int)ObjectGetInteger(0, name, OBJPROP_YSIZE);
|
||||||
|
// int XDistance = (int)ObjectGetInteger(0, name, OBJPROP_XDISTANCE);
|
||||||
|
// int YDistance = (int)ObjectGetInteger(0, name, OBJPROP_YDISTANCE);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// if (MouseState == 1 &&
|
||||||
|
// mPreviousMouseState == 0)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// mlbDownX = X;
|
||||||
|
// mlbDownY = Y;
|
||||||
|
// mlbDownXDistance = XDistance;
|
||||||
|
// mlbDownYDistance = YDistance;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// if (X >= XDistance &&
|
||||||
|
// Y >= YDistance &&
|
||||||
|
// X <= XDistance + XSize &&
|
||||||
|
// Y <= YDistance + YSize)
|
||||||
|
// {
|
||||||
|
// mMovingState = true;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// if (mMovingState)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// ChartSetInteger(0, CHART_MOUSE_SCROLL, false);
|
||||||
|
// ObjectSetInteger(0, name, OBJPROP_XDISTANCE, mlbDownXDistance + X - mlbDownX);
|
||||||
|
// ObjectSetInteger(0, name, OBJPROP_YDISTANCE, mlbDownYDistance + Y - mlbDownY);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// for (int i = 0; i < ArraySize(mAddedNames); i++)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// ObjectSetInteger(0, mAddedNames[i], OBJPROP_XDISTANCE, mlbDownXDistance + X - mlbDownX - mAddedXDisDiffrence[i]);
|
||||||
|
// ObjectSetInteger(0, mAddedNames[i], OBJPROP_YDISTANCE, mlbDownYDistance + Y - mlbDownY - mAddedYDisDiffrence[i]);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// ChartRedraw(0);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// if (MouseState == 0)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// mMovingState = false;
|
||||||
|
// ChartSetInteger(0, CHART_MOUSE_SCROLL, true);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// mPreviousMouseState = MouseState;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Actions ...
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Create an Instance of Class Object ...
|
||||||
|
// *
|
||||||
|
// * @param name: Object Name
|
||||||
|
// * @param xDis: X Distance
|
||||||
|
// * @param yDis: Y Distance
|
||||||
|
// * @param xSize: X Size
|
||||||
|
// * @param ySize: Y Size
|
||||||
|
// */
|
||||||
|
// bool Create(
|
||||||
|
// string name,
|
||||||
|
// int xDis,
|
||||||
|
// int yDis,
|
||||||
|
// int xSize,
|
||||||
|
// int ySize //
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// // Object creation and property settings
|
||||||
|
// bool result = false;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// result = ObjectCreate(0, name, OBJ_RECTANGLE_LABEL, 0, 0, 0);
|
||||||
|
// if (!result)
|
||||||
|
// {
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// ObjectSetInteger(0, name, OBJPROP_XDISTANCE, xDis);
|
||||||
|
// ObjectSetInteger(0, name, OBJPROP_YDISTANCE, yDis);
|
||||||
|
// ObjectSetInteger(0, name, OBJPROP_XSIZE, xSize);
|
||||||
|
// ObjectSetInteger(0, name, OBJPROP_YSIZE, ySize);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// mName = name;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return result;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Destroy Class Instance ...
|
||||||
|
// */
|
||||||
|
// void Destroy()
|
||||||
|
// {
|
||||||
|
// ObjectDelete(0, mName);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Set Object Border Type ...
|
||||||
|
// *
|
||||||
|
// * @param borderType: Specified border type
|
||||||
|
// */
|
||||||
|
// void SetBorderType(ENUM_BORDER_TYPE borderType)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// ObjectSetInteger(
|
||||||
|
// 0,
|
||||||
|
// mName,
|
||||||
|
// OBJPROP_BORDER_TYPE,
|
||||||
|
// borderType //
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Set Object Background Color
|
||||||
|
// *
|
||||||
|
// * @param value: color
|
||||||
|
// */
|
||||||
|
// void SetBGColor(color value)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// ObjectSetInteger(
|
||||||
|
// 0,
|
||||||
|
// mName,
|
||||||
|
// OBJPROP_BGCOLOR,
|
||||||
|
// value //
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Add a Name to Object
|
||||||
|
// * @param name: name
|
||||||
|
// */
|
||||||
|
// void Add(string name)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// // Add a new object by name to the rectangle label and track distances
|
||||||
|
// ArrayResize(mAddedNames, ArraySize(mAddedNames) + 1);
|
||||||
|
// ArrayResize(mAddedXDisDiffrence, ArraySize(mAddedXDisDiffrence) + 1);
|
||||||
|
// ArrayResize(mAddedYDisDiffrence, ArraySize(mAddedYDisDiffrence) + 1);
|
||||||
|
|
||||||
|
// //
|
||||||
|
// mAddedNames[ArraySize(mAddedNames) - 1] = name;
|
||||||
|
// mAddedXDisDiffrence[ArraySize(mAddedXDisDiffrence) - 1] = ObjectGetInteger(0, mName, OBJPROP_XDISTANCE) - ObjectGetInteger(0, name, OBJPROP_XDISTANCE);
|
||||||
|
// mAddedYDisDiffrence[ArraySize(mAddedYDisDiffrence) - 1] = ObjectGetInteger(0, mName, OBJPROP_YDISTANCE) - ObjectGetInteger(0, name, OBJPROP_YDISTANCE);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Protected ...
|
||||||
|
// protected:
|
||||||
|
// //
|
||||||
|
// // Private ...
|
||||||
|
// private:
|
||||||
|
// //
|
||||||
|
// // Props ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// string mName; // Name of Object
|
||||||
|
|
||||||
|
// //
|
||||||
|
// // Mouse state tracking variables ...
|
||||||
|
// int mlbDownX;
|
||||||
|
// int mlbDownY;
|
||||||
|
// int mlbDownXDistance;
|
||||||
|
// int mlbDownYDistance;
|
||||||
|
// int mPreviousMouseState;
|
||||||
|
|
||||||
|
// //
|
||||||
|
// bool mMovingState; // State for whether the object is moving
|
||||||
|
|
||||||
|
// //
|
||||||
|
// string mAddedNames[]; // Array of added names
|
||||||
|
// long mAddedXDisDiffrence[]; // Arrays to store added distance differences
|
||||||
|
// long mAddedYDisDiffrence[]; // Arrays to store added distance differences
|
||||||
|
// };
|
||||||
@@ -195,6 +195,7 @@ string mTag = "";
|
|||||||
|
|
||||||
//
|
//
|
||||||
double eaR2R = 1.5;
|
double eaR2R = 1.5;
|
||||||
|
datetime lastSignalOn = NULL;
|
||||||
bool eaUseFixedTPSLPoints = true;
|
bool eaUseFixedTPSLPoints = true;
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -1002,6 +1003,20 @@ void OnSignalRecieved(
|
|||||||
)
|
)
|
||||||
: conditionsSummary;
|
: conditionsSummary;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check Signal Delay ...
|
||||||
|
datetime currentTime = TimeCurrent();
|
||||||
|
int delay = eaDelayBarBetweenTwoSameSignal;
|
||||||
|
bool isDelayPassed = delay <= 0
|
||||||
|
? true
|
||||||
|
: !IsValid(lastSignalOn)
|
||||||
|
? true
|
||||||
|
: MathAbs(TimeToSeconds(currentTime)) - MathAbs(TimeToSeconds(lastSignalOn)) >= ulong(delay * PeriodSeconds(_Period));
|
||||||
|
if (!isDelayPassed)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Execute Signal Using Trade Handler ...
|
// Execute Signal Using Trade Handler ...
|
||||||
ENUM_X_SIGNAL_EXECUTION_RESULT state;
|
ENUM_X_SIGNAL_EXECUTION_RESULT state;
|
||||||
@@ -1009,6 +1024,12 @@ void OnSignalRecieved(
|
|||||||
signal,
|
signal,
|
||||||
state //
|
state //
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
if (isExecuted)
|
||||||
|
{
|
||||||
|
lastSignalOn = currentTime;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
Reference in New Issue
Block a user