position history

Author: Yuriy Tokman (YTG)
Orders Execution
Checks for the total of closed orders
2 Views
0 Downloads
0 Favorites
position history
ÿþ//+------------------------------------------------------------------+

//|                                             position history.mq4 |

//|                                               Yuriy Tokman (YTG) |

//|                       https://www.mql5.com/ru/users/satop/seller |

//+------------------------------------------------------------------+

#property copyright "Yuriy Tokman (YTG)"

#property link      "https://www.mql5.com/ru/users/satop/seller"

#property version   "1.00"

#property strict

#property show_inputs



input color buy = clrGreen;

input color sell = clrRed;

input int   _width=3;



//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+

void OnStart()

  {

//---

   int i, k= OrdersHistoryTotal(), r=-1;

   string sy=Symbol();

   for(i=0; i<k; i++)

     {

      if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))

        {

         if(OrderSymbol()==sy)

           {

            if(OrderType()==OP_BUY)

              {

               TrendCreate(0,"TrendLine"+(string)OrderTicket(),0,

                           OrderOpenTime(),           // 2@5<O ?5@2>9 B>G:8

                           OrderOpenPrice(),          // F5=0 ?5@2>9 B>G:8

                           OrderCloseTime(),           // 2@5<O 2B>@>9 B>G:8

                           OrderClosePrice(),          // F5=0 2B>@>9 B>G:8

                           buy,        // F25B ;8=88

                           STYLE_SOLID, // AB8;L ;8=88

                           _width

                          );

              }

            if(OrderType()==OP_SELL)

              {

               TrendCreate(0,"TrendLine"+(string)OrderTicket(),0,

                           OrderOpenTime(),           // 2@5<O ?5@2>9 B>G:8

                           OrderOpenPrice(),          // F5=0 ?5@2>9 B>G:8

                           OrderCloseTime(),           // 2@5<O 2B>@>9 B>G:8

                           OrderClosePrice(),          // F5=0 2B>@>9 B>G:8

                           sell,        // F25B ;8=88

                           STYLE_SOLID, // AB8;L ;8=88

                           _width

                          );

              }

           }

        }

     }

  }

//+------------------------------------------------------------------+

//| !>7405B ;8=8N B@5=40 ?> 7040==K< :>>@48=0B0<                     |

//+------------------------------------------------------------------+

bool TrendCreate(const long            chart_ID=0,        // ID 3@0D8:0

                 const string          name="TrendLine",  // 8<O ;8=88

                 const int             sub_window=0,      // =><5@ ?>4>:=0

                 datetime              time1=0,           // 2@5<O ?5@2>9 B>G:8

                 double                price1=0,          // F5=0 ?5@2>9 B>G:8

                 datetime              time2=0,           // 2@5<O 2B>@>9 B>G:8

                 double                price2=0,          // F5=0 2B>@>9 B>G:8

                 const color           clr=clrRed,        // F25B ;8=88

                 const ENUM_LINE_STYLE style=STYLE_SOLID, // AB8;L ;8=88

                 const int             width=1,           // B>;I8=0 ;8=88

                 const bool            back=false,        // =0 704=5< ?;0=5

                 const bool            selection=false,    // 2K45;8BL 4;O ?5@5<5I5=89

                 const bool            ray_right=false,   // ?@>4>;65=85 ;8=88 2?@02>

                 const bool            hidden=true,       // A:@KB 2 A?8A:5 >1J5:B>2

                 const long            z_order=0)         // ?@8>@8B5B =0 =060B85 <KHLN

  {

//--- A1@>A8< 7=0G5=85 >H81:8

   ResetLastError();

//--- A>74048< B@5=4>2CN ;8=8N ?> 7040==K< :>>@48=0B0<

   if(!ObjectCreate(chart_ID,name,OBJ_TREND,sub_window,time1,price1,time2,price2))

     {

      Print(__FUNCTION__,

            ": =5 C40;>AL A>740BL ;8=8N B@5=40! >4 >H81:8 = ",GetLastError());

      return(false);

     }

//--- CAB0=>28< F25B ;8=88

   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);

//--- CAB0=>28< AB8;L >B>1@065=8O ;8=88

   ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);

//--- CAB0=>28< B>;I8=C ;8=88

   ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);

//--- >B>1@078< =0 ?5@54=5< (false) 8;8 704=5< (true) ?;0=5

   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);

//--- 2:;NG8< (true) 8;8 >B:;NG8< (false) @568< ?5@5<5I5=8O ;8=88 <KHLN

//--- ?@8 A>740=88 3@0D8G5A:>3> >1J5:B0 DC=:F859 ObjectCreate, ?> C<>;G0=8N >1J5:B

//--- =5;L7O 2K45;8BL 8 ?5@5<5I0BL. =CB@8 65 MB>3> <5B>40 ?0@0<5B@ selection

//--- ?> C<>;G0=8N @025= true, GB> ?>72>;O5B 2K45;OBL 8 ?5@5<5I0BL MB>B >1J5:B

   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);

   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);

//--- 2:;NG8< (true) 8;8 >B:;NG8< (false) @568< ?@>4>;65=8O >B>1@065=8O ;8=88 2?@02>

   ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);

//--- A:@>5< (true) 8;8 >B>1@078< (false) 8<O 3@0D8G5A:>3> >1J5:B0 2 A?8A:5 >1J5:B>2

   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);

//--- CAB0=>28< ?@8>@8B5B =0 ?>;CG5=85 A>1KB8O =060B8O <KH8 =0 3@0D8:5

   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);

//--- CA?5H=>5 2K?>;=5=85

   return(true);

  }

//----

//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---