Price Data Components
Orders Execution
0
Views
0
Downloads
0
Favorites
HistoryDraw
// ================================================================================================+
// ===== HistoryDraw.mq4 ===== |
// ============= Copyright © 2012, Drknn ============= |
// ===== mailto: drknn@mail.ru ===== |
// ================================================================================================+
#property copyright "Copyright © 2012, Drknn"
#property link "drknn@mail.ru"
string NameExpert="HistoryDraw.mq4";
extern bool UseCreateHistoryDraw=true;// äîáðî îòðèñîâûâàòü èñòîðèþ òîðãîâ ïðè ðàáîòå ñîâåòíèêà
extern bool UseDelHistoryDraw=true;/* äîáðî óäàëÿòü îòðèñîâàííóþ èñòîðèþ òîðãîâ ïðè äåèíèöèàëèçàöèè
ñîâåòíèêà. Åñëè ïåðåìåííàÿ UseCreateHistoryDraw èìååò çíà÷åíèå
false, òî áåçðàçëè÷íî, êàêîå çíà÷åíèå ïðèíèìàåò ïåðåìííàÿ UseDelHistoryDraw
*/
int myBars;
// ================================================================================================+
// ================================================================================================|
// ============= ÈÍÈÖÈÀËÈÇÀÖÈß ÑÎÂÅÒÍÈÊÀ ============= |
// ================================================================================================|
// ================================================================================================+
int init(){
Print("Ñîâåòíèê ",NameExpert," íà èíñòðóìåíòå ",Symbol()," ïðîèíèöèàëèçèðîâàí - â ðàáîòó âêëþ÷åí");
return(0);
}
// ================================================================================================+
// ================================================================================================|
// ============= ÄÅÈÍÈÖÈÀËÈÇÀÖÈß ÑÎÂÅÒÍÈÊÀ ============= |
// ================================================================================================|
// ================================================================================================+
int deinit(){
if(!IsTesting()){
string s_Deint;
switch(UninitializeReason()){
case 0: s_Deint="ñîâåòíèê ñàìîñòîÿòåëüíî çàâåðøèë ñâîþ ðàáîòó"; break;
case 1: s_Deint="ñîâåòíèê óäàë¸í ñ ãðàôèêà ëèáî âðó÷íóþ, ëèáî íà ãðàôèê áûë áðîøåí äðóãîé ýêñïåðò, ÷òî ïðèâåëî ê óäàëåíèþ äàííîãî"; break;
case 2: s_Deint="ñîâåòíèê ïåðåêîìïèëèðîâàí"; break;
case 3: s_Deint="ñèìâîë èëè ïåðèîä ãðàôèêà áûë èçìåíåí"; break;
case 4: s_Deint="ãðàôèê çàêðûò"; break;
case 5: s_Deint="âõîäíûå ïàðàìåòðû áûëè èçìåíåíû ïîëüçîâàòåëåì"; break;
case 6: s_Deint="àêòèâèðîâàí äðóãîé ñ÷åò"; break;
default: s_Deint="ïðè÷èíà äåèíèöèàëèçàöèè íå ÿñíà"; break;
}
if(UseCreateHistoryDraw && UseDelHistoryDraw){
HistoryDrawDelete();
}
Print("Ñîâåòíèê ",NameExpert," íà èíñòðóìåíòå ",Symbol()," äåèíèöèàëèçèðîâàí. Ïðè÷èíà: ",s_Deint);
Comment("");
}
return(0);
}
// ================================================================================================+
// ================================================================================================|
// ============= ÑÒÀÐÒ ÐÀÁÎÒÛ ÑÎÂÅÒÍÈÊÀ ============= |
// ================================================================================================|
// ================================================================================================+
int start(){
// ===============================================================================================
// ======================= Áëîê îòðèñîâêè èñòîðèè òîðãîâ =========================================
// ===============================================================================================
if(isNewBar() && UseCreateHistoryDraw){
HistoryDrawCreate();
}
// ===============================================================================================
return(0);
}
//+------------------------------------------------------------------+
//| Ïîëüçîâàòåëüñêèå ïîäïðîãðàììû |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| ôóíêöèÿ isNewBar() - âîçâðàùàåò ïðèçíàê íîâîãî áàðà |
//+------------------------------------------------------------------+
bool isNewBar(){
bool res=false;
if(myBars!=Bars){
res=true;
myBars=Bars;
}
return(res);
}
//---------------------------------------------------------------
// -------------------------- HistoryDrawCreate() --------------------------------------------------
// Ïðîöåäóðà îòðèñîâûâàåò èñòîðèþ òîðãîâ íà ãðàôèêå
// --------------------------------------------------------
void HistoryDrawCreate(){
string FunctionName="HistoryDrawDelete()";
string SMB=Symbol();
double OpenBuy=0.0,CloseBuy=0.0,OpenSell=0.0,CloseSell=0.0;//êîîðäèíàòû îòðåçêîâ
int Ticket;
string L_name,Tip,Open_name,Close_name;
datetime TimeOpenBuy=0,TimeCloseBuy=0,TimeOpenSell=0,TimeCloseSell=0;
for(int i=0; i<OrdersHistoryTotal(); i++){
if (!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){
Print("Îøèáêà ¹ ",GetLastError()," ïðè âûáîðå îðäåðà ¹ ",i);
Print(" ============== ",FunctionName," ============== ");
}
else{
if(OrderSymbol()!=SMB){continue;}
if(OrderType()==OP_BUY){
// ------------- ïîëó÷àåì ïàðàìåòðû ëèíèé --------------
OpenBuy=OrderOpenPrice();
CloseBuy=OrderClosePrice();
Ticket=OrderTicket();
TimeOpenBuy=OrderOpenTime();
TimeCloseBuy=OrderCloseTime();
// ---- ãåíåðèðóåì èìåíà îáúåêòîâ ------
Tip="Buy";//òèï ñäåëêè
L_name="L_"+Tip+" ¹ "+Ticket;
Open_name="Open"+Tip+" ¹ "+Ticket;//ñòðåëêà, îòêðûâàþùàÿ ñäåëêó
Close_name="Close"+Tip+" ¹ "+Ticket;//ñòðåëêà, çàêðûâàþùàÿ ñäåëêó
// ---- ñîçäà¸ì îòêðûâàþùóþ ñòðåëêó ------------
ObjectCreate(Open_name,OBJ_ARROW,0,TimeOpenBuy,OpenBuy);//îòêðûâàþùàÿ ñòðåëêà Áàé-îðäåðà
ObjectSet(Open_name,OBJPROP_ARROWCODE,1);//êîä ñòðåëêè 232
ObjectSet(Open_name,OBJPROP_COLOR,Blue);//öâåò ñòðåëêè
// ---- ñîçäà¸ì çàêðûâàþùóþ ñòðåëêó ------------
ObjectCreate(Close_name,OBJ_ARROW,0,TimeCloseBuy,CloseBuy);//çàêðûâàþùàÿ ñòðåëêà Áàé-îðäåðà
ObjectSet(Close_name,OBJPROP_ARROWCODE,3);//êîä ñòðåëêè 231
ObjectSet(Close_name,OBJPROP_COLOR,Blue);//öâåò ñòðåëêè
// ---- ñîçäà¸ì ëèíèè ------------
ObjectCreate(L_name,OBJ_TREND,0,TimeOpenBuy,OpenBuy,TimeCloseBuy,CloseBuy);//
ObjectSet(L_name,OBJPROP_RAY,false);//çàïðåùàåì ðèñîâàòü ëó÷
ObjectSet(L_name,OBJPROP_WIDTH,0);//óñòàíàâëèâàåì òîëùèíó ëèíèè ()
ObjectSet(L_name,OBJPROP_STYLE,0);//óñòàíàâëèâàåì òèï ëèíèè (îòðåçêè)
ObjectSet(L_name,OBJPROP_STYLE,STYLE_DOT);//óñòàíàâëèâàåì òèï øòðèõîâêè(ïóíêòèðíàÿ ëèíèÿ)
ObjectSet(L_name,OBJPROP_COLOR,Blue);//óñòàíàâëèâàåì öâåò(ñèíèé/êðàñíûé)
}
if(OrderType()==OP_SELL){
// ------------- ïîëó÷àåì ïàðàìåòðû ëèíèé ------------
OpenSell=OrderOpenPrice();
CloseSell=OrderClosePrice();
Ticket=OrderTicket();
TimeOpenSell=OrderOpenTime();
TimeCloseSell=OrderCloseTime();
// ---- ãåíåðèðóåì èìåíà îáúåêòîâ ------
Tip="Sell";//òèï ñäåëêè
L_name="L_"+Tip+" ¹ "+Ticket;
Open_name="Open"+Tip+" ¹ "+Ticket;//ñòðåëêà, îòêðûâàþùàÿ ñäåëêó
Close_name="Close"+Tip+" ¹ "+Ticket;//ñòðåëêà, çàêðûâàþùàÿ ñäåëêó
// ---- ñîçäà¸ì îòêðûâàþùóþ ñòðåëêó ------------
ObjectCreate(Open_name,OBJ_ARROW,0,TimeOpenSell,OpenSell);//îòêðûâàþùàÿ ñòðåëêà Sell-îðäåðà
ObjectSet(Open_name,OBJPROP_ARROWCODE,1);//êîä ñòðåëêè 232
ObjectSet(Open_name,OBJPROP_COLOR,Red);//öâåò ñòðåëêè
// ---- ñîçäà¸ì çàêðûâàþùóþ ñòðåëêó ------------
ObjectCreate(Close_name,OBJ_ARROW,0,TimeCloseSell,CloseSell);//çàêðûâàþùàÿ ñòðåëêà Sell-îðäåðà
ObjectSet(Close_name,OBJPROP_ARROWCODE,3);//êîä ñòðåëêè 231
ObjectSet(Close_name,OBJPROP_COLOR,Red);//öâåò ñòðåëêè
// ---- ñîçäà¸ì ëèíèè ------------
ObjectCreate(L_name,OBJ_TREND,0,TimeOpenSell,OpenSell,TimeCloseSell,CloseSell);//
ObjectSet(L_name,OBJPROP_RAY,false);//çàïðåùàåì ðèñîâàòü ëó÷
ObjectSet(L_name,OBJPROP_WIDTH,0);//óñòàíàâëèâàåì òîëùèíó ëèíèè ()
ObjectSet(L_name,OBJPROP_STYLE,0);//óñòàíàâëèâàåì òèï ëèíèè (îòðåçêè)
ObjectSet(L_name,OBJPROP_STYLE,STYLE_DOT);//óñòàíàâëèâàåì òèï øòðèõîâêè(ïóíêòèðíàÿ ëèíèÿ)
ObjectSet(L_name,OBJPROP_COLOR,Red);//óñòàíàâëèâàåì öâåò(ñèíèé/êðàñíûé)
}
}
}
}
// -------------------------- HistoryDrawDelete() --------------------------------------------------
// Ïðîöåäóðà óäàëÿåò èñòîðèþ òîðãîâ, ïðîðèñîâàííóþ íà ãðàôèêå
// --------------------------------------------------------
void HistoryDrawDelete(){
string FunctionName="HistoryDrawDelete()";
string SMB=Symbol();
double OpenBuy=0.0,CloseBuy=0.0,OpenSell=0.0,CloseSell=0.0;//êîîðäèíàòû îòðåçêîâ
int Ticket;
string L_name,Tip,Open_name,Close_name;
datetime TimeOpenBuy=0,TimeCloseBuy=0,TimeOpenSell=0,TimeCloseSell=0;
for(int i=0;i<OrdersHistoryTotal();i++){
if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){
Print("Îøèáêà ¹ ",GetLastError()," ïðè âûáîðå îðäåðà ¹ ",i);
Print(" ============== ",FunctionName," ============== ");
}
else{
if(OrderSymbol()!=SMB){continue;}
if(OrderType()==OP_BUY){
// ------------- ïîëó÷àåì ïàðàìåòðû ëèíèé --------------
OpenBuy=OrderOpenPrice();
CloseBuy=OrderClosePrice();
Ticket=OrderTicket();
TimeOpenBuy=OrderOpenTime();
TimeCloseBuy=OrderCloseTime();
// ---- ãåíåðèðóåì èìåíà îáúåêòîâ ------
Tip="Buy";//òèï ñäåëêè
L_name="L_"+Tip+" ¹ "+Ticket;
Open_name="Open"+Tip+" ¹ "+Ticket;//ñòðåëêà, îòêðûâàþùàÿ ñäåëêó
Close_name="Close"+Tip+" ¹ "+Ticket;//ñòðåëêà, çàêðûâàþùàÿ ñäåëêó
// ---- óäàëÿåì îòêðûâàþùóþ ñòðåëêó ------------
ObjectDelete(Open_name);//îòêðûâàþùàÿ ñòðåëêà Áàé-îðäåðà
// ---- óäàëÿåì çàêðûâàþùóþ ñòðåëêó ------------
ObjectDelete(Close_name);//çàêðûâàþùàÿ ñòðåëêà Áàé-îðäåðà
// ---- óäàëÿåì ëèíèè ------------
ObjectDelete(L_name);//
}
if(OrderType()==OP_SELL){
// ------------- ïîëó÷àåì ïàðàìåòðû ëèíèé ------------
OpenSell=OrderOpenPrice();
CloseSell=OrderClosePrice();
Ticket=OrderTicket();
TimeOpenSell=OrderOpenTime();
TimeCloseSell=OrderCloseTime();
// ---- ãåíåðèðóåì èìåíà îáúåêòîâ ------
Tip="Sell";//òèï ñäåëêè
L_name="L_"+Tip+" ¹ "+Ticket;
Open_name="Open"+Tip+" ¹ "+Ticket;//ñòðåëêà, îòêðûâàþùàÿ ñäåëêó
Close_name="Close"+Tip+" ¹ "+Ticket;//ñòðåëêà, çàêðûâàþùàÿ ñäåëêó
// ---- óäàëÿåì îòêðûâàþùóþ ñòðåëêó ------------
ObjectDelete(Open_name);//îòêðûâàþùàÿ ñòðåëêà Sell-îðäåðà
// ---- óäàëÿåì çàêðûâàþùóþ ñòðåëêó ------------
ObjectDelete(Close_name);//çàêðûâàþùàÿ ñòðåëêà Sell-îðäåðà
// ---- óäàëÿåì ëèíèè ------------
ObjectDelete(L_name);//
}
}
}
}
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
---