First commit [09/03/2018]
This commit is contained in:
@@ -0,0 +1,200 @@
|
||||
//+------------------------------------------------------------------+
|
||||
//| OrderInfoSample.mq5 |
|
||||
//| Copyright 2009-2017, MetaQuotes Software Corp. |
|
||||
//| http://www.mql5.com |
|
||||
//+------------------------------------------------------------------+
|
||||
#property copyright "2009-2017, MetaQuotes Software Corp."
|
||||
#property link "http://www.mql5.com"
|
||||
//---
|
||||
#include <Trade\OrderInfo.mqh>
|
||||
#include <ChartObjects\ChartObjectsTxtControls.mqh>
|
||||
//---
|
||||
#include "OrderInfoSampleInit.mqh"
|
||||
//+------------------------------------------------------------------+
|
||||
//| Script to testing the use of class COrderInfo. |
|
||||
//+------------------------------------------------------------------+
|
||||
//---
|
||||
//+------------------------------------------------------------------+
|
||||
//| Order Info Sample script class |
|
||||
//+------------------------------------------------------------------+
|
||||
class COrderInfoSample
|
||||
{
|
||||
protected:
|
||||
COrderInfo m_order;
|
||||
//--- chart objects
|
||||
CChartObjectButton m_button_prev;
|
||||
CChartObjectButton m_button_next;
|
||||
CChartObjectLabel m_label[20];
|
||||
CChartObjectLabel m_label_info[20];
|
||||
//---
|
||||
int m_curr_ord;
|
||||
int m_total_ord;
|
||||
|
||||
public:
|
||||
COrderInfoSample(void);
|
||||
~COrderInfoSample(void);
|
||||
//---
|
||||
bool Init(void);
|
||||
void Deinit(void);
|
||||
void Processing(void);
|
||||
|
||||
private:
|
||||
void InfoToChart(void);
|
||||
};
|
||||
//---
|
||||
COrderInfoSample ExtScript;
|
||||
//+------------------------------------------------------------------+
|
||||
//| Constructor |
|
||||
//+------------------------------------------------------------------+
|
||||
COrderInfoSample::COrderInfoSample(void) : m_curr_ord(-1),
|
||||
m_total_ord(-1)
|
||||
{
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
//| Destructor |
|
||||
//+------------------------------------------------------------------+
|
||||
COrderInfoSample::~COrderInfoSample(void)
|
||||
{
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
//| Method Init. |
|
||||
//+------------------------------------------------------------------+
|
||||
bool COrderInfoSample::Init(void)
|
||||
{
|
||||
int i,sy=10;
|
||||
int dy=16;
|
||||
color color_label;
|
||||
color color_info;
|
||||
//--- tuning colors
|
||||
color_info =(color)(ChartGetInteger(0,CHART_COLOR_BACKGROUND)^0xFFFFFF);
|
||||
color_label=(color)(color_info^0x202020);
|
||||
//---
|
||||
if(ChartGetInteger(0,CHART_SHOW_OHLC))
|
||||
sy+=16;
|
||||
//--- creation Buttons
|
||||
m_button_prev.Create(0,"ButtonPrev",0,10,sy,100,20);
|
||||
m_button_prev.Description("Prev Order");
|
||||
m_button_prev.Color(Red);
|
||||
m_button_prev.FontSize(8);
|
||||
//---
|
||||
m_button_next.Create(0,"ButtonNext",0,110,sy,100,20);
|
||||
m_button_next.Description("Next Order");
|
||||
m_button_next.Color(Red);
|
||||
m_button_next.FontSize(8);
|
||||
//---
|
||||
sy+=20;
|
||||
//--- creation Labels[]
|
||||
for(i=0;i<20;i++)
|
||||
{
|
||||
m_label[i].Create(0,"Label"+IntegerToString(i),0,20,sy+dy*i);
|
||||
m_label[i].Description(init_str[i]);
|
||||
m_label[i].Color(color_label);
|
||||
m_label[i].FontSize(8);
|
||||
//---
|
||||
m_label_info[i].Create(0,"LabelInfo"+IntegerToString(i),0,120,sy+dy*i);
|
||||
m_label_info[i].Description(" ");
|
||||
m_label_info[i].Color(color_info);
|
||||
m_label_info[i].FontSize(8);
|
||||
}
|
||||
InfoToChart();
|
||||
//--- redraw chart
|
||||
ChartRedraw();
|
||||
//---
|
||||
return(0);
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
//| Method Deinit. |
|
||||
//+------------------------------------------------------------------+
|
||||
void COrderInfoSample::Deinit(void)
|
||||
{
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
//| Method Processing. |
|
||||
//+------------------------------------------------------------------+
|
||||
void COrderInfoSample::Processing(void)
|
||||
{
|
||||
ulong ticket;
|
||||
//---
|
||||
if(m_total_ord!=OrdersTotal())
|
||||
{
|
||||
m_total_ord=OrdersTotal();
|
||||
if(m_total_ord==0)
|
||||
{
|
||||
m_label_info[0].Description("0");
|
||||
m_label_info[1].Description("");
|
||||
m_curr_ord=-1;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_label_info[0].Description(IntegerToString(m_total_ord));
|
||||
if(m_curr_ord==-1)
|
||||
m_curr_ord=0;
|
||||
if(m_curr_ord>=m_total_ord)
|
||||
m_curr_ord=m_total_ord-1;
|
||||
m_label_info[1].Description(IntegerToString(m_curr_ord));
|
||||
}
|
||||
}
|
||||
if(m_button_prev.State())
|
||||
{
|
||||
m_button_prev.State(false);
|
||||
if(m_curr_ord>=0)
|
||||
m_label_info[1].Description(IntegerToString(--m_curr_ord));
|
||||
}
|
||||
if(m_button_next.State())
|
||||
{
|
||||
m_button_next.State(false);
|
||||
if(m_curr_ord<m_total_ord-1)
|
||||
m_label_info[1].Description(IntegerToString(++m_curr_ord));
|
||||
}
|
||||
ticket=OrderGetTicket(m_curr_ord);
|
||||
if(OrderSelect(ticket))
|
||||
{
|
||||
m_label_info[2].Description(IntegerToString(ticket));
|
||||
InfoToChart();
|
||||
}
|
||||
//--- redraw chart
|
||||
ChartRedraw();
|
||||
Sleep(250);
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
//| Method InfoToChart. |
|
||||
//+------------------------------------------------------------------+
|
||||
void COrderInfoSample::InfoToChart(void)
|
||||
{
|
||||
m_label_info[3].Description(m_order.Symbol());
|
||||
m_label_info[4].Description(TimeToString(m_order.TimeSetup()));
|
||||
m_label_info[5].Description(m_order.TypeDescription());
|
||||
m_label_info[6].Description(m_order.StateDescription());
|
||||
m_label_info[7].Description(TimeToString(m_order.TimeExpiration()));
|
||||
m_label_info[8].Description(TimeToString(m_order.TimeDone()));
|
||||
m_label_info[9].Description(m_order.TypeFillingDescription());
|
||||
m_label_info[10].Description(m_order.TypeTimeDescription());
|
||||
m_label_info[11].Description(IntegerToString(m_order.Magic()));
|
||||
m_label_info[12].Description(DoubleToString(m_order.VolumeInitial()));
|
||||
m_label_info[13].Description(DoubleToString(m_order.VolumeCurrent()));
|
||||
m_label_info[14].Description(DoubleToString(m_order.PriceOpen()));
|
||||
m_label_info[15].Description(DoubleToString(m_order.StopLoss()));
|
||||
m_label_info[16].Description(DoubleToString(m_order.TakeProfit()));
|
||||
m_label_info[17].Description(DoubleToString(m_order.PriceCurrent()));
|
||||
m_label_info[18].Description(DoubleToString(m_order.PriceStopLimit()));
|
||||
m_label_info[19].Description(m_order.Comment());
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
//| Script program start function |
|
||||
//+------------------------------------------------------------------+
|
||||
int OnStart(void)
|
||||
{
|
||||
//--- call init function
|
||||
if(ExtScript.Init()==0)
|
||||
{
|
||||
//--- cycle until the script is not halted
|
||||
while(!IsStopped())
|
||||
ExtScript.Processing();
|
||||
}
|
||||
//--- call deinit function
|
||||
ExtScript.Deinit();
|
||||
//---
|
||||
return(0);
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
@@ -0,0 +1,17 @@
|
||||
//+------------------------------------------------------------------+
|
||||
//| OrderInfoSampleInit.mqh |
|
||||
//| Copyright 2009-2017, MetaQuotes Software Corp. |
|
||||
//| http://www.mql5.com |
|
||||
//+------------------------------------------------------------------+
|
||||
//---
|
||||
//+------------------------------------------------------------------+
|
||||
//| Arrays to initialize graphics objects OrderInfoSample. |
|
||||
//+------------------------------------------------------------------+
|
||||
string init_str[]=
|
||||
{
|
||||
"Total","Current","Ticket","Symbol","TimeSetup",
|
||||
"Type","State","TimeExpiration","TimeDone","TypeFilling",
|
||||
"TypeTime","Expert","VolumeInit","VolumeCurr","PriceOpen",
|
||||
"StopLoss","TakeProfit","PriceCurr","PriceStopLimit","Comment"
|
||||
};
|
||||
//+------------------------------------------------------------------+
|
||||
Reference in New Issue
Block a user