Price Data Components
Orders Execution
0
Views
0
Downloads
0
Favorites
cm_orders_info_130916
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, cmillion@narod.ru"
#property link "http://cmillion.ru"
#property version "1.00"
#property strict
#property indicator_chart_window
double TICKVALUE;
string AC;
extern bool showm = false;//ïîêàçûâàòü ìàãèê
extern bool showp = true;//ïîêàçûâàòü ïðîôèò
extern bool showt = false;//ïîêàçûâàòü âðåìÿ
extern bool showsl = true;//ïîêàçûâàòü ñòîïëîññ
extern bool showtp = true;//ïîêàçûâàòü òåéêïðîôèò
extern color plus = clrGreen;//öâåò ïëþñ
extern color minus = clrRed;//öâåò ìèíóñ
//+------------------------------------------------------------------+
int OnInit()
{
TICKVALUE=MarketInfo(Symbol(),MODE_TICKVALUE);
AC=AccountCurrency();
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
double sumsl=0;
double sumtp=0;
ObjectsDeleteAll(0,"sl");
ObjectsDeleteAll(0,"tp");
ObjectsDeleteAll(0,"or");
for(int j=0; j<OrdersTotal(); j++)
{
if(OrderSelect(j,SELECT_BY_POS))
{
int pips=0,OT=OrderType();
double OOP=OrderOpenPrice();
double OTP=OrderTakeProfit();
double OSL=OrderStopLoss();
double OL=OrderLots();
string name=StringConcatenate("or",OrderTicket());
ObjectDelete(0,name);
string txt=NULL;
if(showm) txt=StringConcatenate("Magic ",OrderMagicNumber()," ");
if(showp) txt=StringConcatenate(txt,"Profit ",DoubleToStr(OrderProfit(),2)," ",AC," ");
if(showt) txt=StringConcatenate(txt,"Time ",MathFloor((TimeCurrent()-OrderOpenTime())/60)," Minute ");
TextCreate(0,name,0,Time[0]+Period()*300,OOP,txt,"Arial",8,Color(OrderProfit()<0,minus,plus));
if(OTP!=0)
{
name=StringConcatenate("tp",name);
ObjectDelete(0,name);
if(OT==OP_BUY) pips=(int)((OTP-OOP)/Point);
if(OT==OP_SELL) pips=(int)((OOP-OTP)/Point);
if(showtp) TextCreate(0,name,0,Time[WindowFirstVisibleBar()/2],OTP,StringConcatenate(DoubleToStr(TICKVALUE*pips*OL,2)," ",AC," ",pips),"Arial",8,Color(pips<0,minus,plus));
sumtp+=TICKVALUE*pips*OL;
}
if(OSL!=0)
{
name=StringConcatenate("sl",name);
ObjectDelete(0,name);
if(OT==OP_BUY) pips=(int)((OSL-OOP)/Point);
if(OT==OP_SELL) pips=(int)((OOP-OSL)/Point);
if(showsl) TextCreate(0,name,0,Time[WindowFirstVisibleBar()/2],OSL,StringConcatenate(DoubleToStr(TICKVALUE*pips*OL,2)," ",AC," ",pips),"Arial",8,Color(pips<0,minus,plus));
sumsl+=TICKVALUE*pips*OL;
}
}
}
DrawLABEL("sl",0,300,0,Color(sumsl<0,minus,plus),StringConcatenate("Ñóììà ïî SL ",DoubleToStr(sumsl,2)," ",AC));
DrawLABEL("tp",0,300,15,Color(sumtp<0,minus,plus),StringConcatenate("Ñóììà ïî TP ",DoubleToStr(sumtp,2)," ",AC));
return(rates_total);
}
//-------------------------------------------------------------------
void OnDeinit(const int reason)
{
ObjectsDeleteAll(0,"sl");
ObjectsDeleteAll(0,"tp");
ObjectsDeleteAll(0,"or");
}
//+------------------------------------------------------------------+
void DrawLABEL(string name,int CORNER,int X,int Y,color clr,string Name)
{
if(ObjectFind(name)==-1)
{
ObjectCreate(name,OBJ_LABEL,0,0,0);
ObjectSet(name,OBJPROP_CORNER,CORNER);
ObjectSet(name,OBJPROP_XDISTANCE,X);
ObjectSet(name,OBJPROP_YDISTANCE,Y);
}
ObjectSetText(name,Name,10,"Arial",clr);
}
//+------------------------------------------------------------------+
bool TextCreate(const long chart_ID=0, // ID ãðàôèêà
const string name="Text", // èìÿ îáúåêòà
const int sub_window=0, // íîìåð ïîäîêíà
datetime time=0, // âðåìÿ òî÷êè ïðèâÿçêè
double price=0, // öåíà òî÷êè ïðèâÿçêè
const string text="Text", // ñàì òåêñò
const string font="Arial", // øðèôò
const int font_size=8,// ðàçìåð øðèôòà
const color clr=clrRed, // öâåò
const double angle=0.0, // íàêëîí òåêñòà
const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_LOWER, // ñïîñîá ïðèâÿçêè
const bool back=false, // íà çàäíåì ïëàíå
const bool selection=false, // âûäåëèòü äëÿ ïåðåìåùåíèé
const bool hidden=true, // ñêðûò â ñïèñêå îáúåêòîâ
const long z_order=0) // ïðèîðèòåò íà íàæàòèå ìûøüþ
{
ResetLastError();
if(!ObjectCreate(chart_ID,name,OBJ_TEXT,sub_window,time,price))
{
Print(__FUNCTION__,
": íå óäàëîñü ñîçäàòü îáúåêò \"Òåêñò\"! Êîä îøèáêè = ",GetLastError());
return(false);
}
ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
return(true);
}
//+------------------------------------------------------------------+
color Color(bool P,color a,color b)
{
if(P) return(a);
else return(b);
}
//------------------------------------------------------------------
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---