cm_Line_Revers

Author: Copyright � 2012, Vladimir Khlystov
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reached
0 Views
0 Downloads
0 Favorites
cm_Line_Revers
//+-----------------------------------------------------------------------------------------+
//| Ñîâåòíèê cm_Line_Revers, ïåðåâîðà÷èâàåò ïðèáûëüíûå ïîçèöèè íà ëèíèÿõ ñ èìåíàìè Revers_õ |
//| Äëÿ ðàáîòû íåîáõîäèìî óñòàíîâèòü íà ãðàôèê ëèíèþ è íàçâàòü åå Revers_1                  |
//| èëè íåñêîëüêî ëèíèé Revers_1, Revers_2, Revers_3...                                     |
//| Íà êàæäîé èç ëèíèé âñå ïðîôèòíûå îðäåðà áóäóò ïåðåâîðà÷èâàòüñÿ                          |
//|                                                                                         |
//|                                  Copyright © 2012, Vladimir Khlystov, cmillion@narod.ru |
//+-----------------------------------------------------------------------------------------+
#property copyright "Copyright © 2012, Vladimir Khlystov"
#property link      "cmillion@narod.ru"
//--------------------------------------------------------------------
int slippage=3;
int init()
{
   if (Digits==3 || Digits==5) slippage=30;
   Comment("Còàðò cm_Line_Revers ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES));
}
//--------------------------------------------------------------------
int start()
{
   int OT,b,s;
   double OrdersB[100][3],OrdersS[100][3];
   //---
   for (int j = OrdersTotal()-1; j >= 0; j--)
   {
      if (OrderSelect(j, SELECT_BY_POS))
      {
         if (OrderSymbol() == Symbol())
         {
            OT = OrderType();
            if (OT==OP_BUY) 
            {
               OrdersB[b][0]=OrderOpenPrice();
               OrdersB[b][1]=OrderLots();
               OrdersB[b][2]=OrderTicket();
               b++;
            }
            if (OT==OP_SELL) 
            {
               OrdersS[s][0]=OrderOpenPrice();
               OrdersS[s][1]=OrderLots();
               OrdersS[s][2]=OrderTicket();
               s++;
            }
         }
      }
   }
   if (b+s==0) Comment("Íåò îðäåðîâ");
   //---
   double Line[100];
   int l;
   string txt,Name;
   for(int i=ObjectsTotal()-1; i>=0; i--) 
   {
      Name=ObjectName(i);
      OT = ObjectType(Name);
      if (OT==OBJ_HLINE || OT==OBJ_TREND)
      {
         if (StringSubstr(Name,0,6)=="Revers") 
         {
            if (OT==OBJ_TREND) Line[l] = NormalizeDouble(ObjectGetValueByShift(Name,0),Digits);
            if (OT==OBJ_HLINE) Line[l] = NormalizeDouble(ObjectGet(Name,OBJPROP_PRICE1),Digits);
            txt = StringConcatenate(txt,"\n",DoubleToStr(Line[l],Digits));
            l++;
         }
      }
   }
   if (l==0) Comment("Íåò ëèíèé ñ èìåíåì Revers_õ");
   else Comment("Ïåðåâîðîò ïîçèöèé íà:",txt);
   //---
   int Ticket;
   for(i=0; i<l; i++) 
   {
      if (Line[i]<=Bid) //åñëè Buy êîñíóëñÿ ëèíèè
      {
         for(j=0; j<b; j++) 
         {
            if (OrdersB[j][0]<Line[i]) //åñëè îðäåð â ïðèáûëè
            {
               Ticket = OrdersB[j][2];
               if (OrderClose(Ticket,OrdersB[j][1],NormalizeDouble(Bid,Digits),slippage,Blue))
                  if (OrderSend(Symbol(),OP_SELL,OrdersB[j][1],NormalizeDouble(Bid,Digits),slippage,0,0,"cm_Line_Revers",0,0,Red)!=-1)
                     Comment("Revers Orders BUY -> SELL ",DoubleToStr(Line[i],Digits),"  ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS));
            }
         }
      }
      if (Line[i]>=Ask) //åñëè Ask êîñíóëñÿ ëèíèè
      {
         for(j=0; j<s; j++) 
         {
            if (OrdersS[j][0]>Line[i]) //åñëè îðäåð â ïðèáûëè
            {
               Ticket = OrdersS[j][2];
               if (OrderClose(Ticket,OrdersS[j][1],NormalizeDouble(Ask,Digits),slippage,Red))
                  if (OrderSend(Symbol(),OP_BUY,OrdersS[j][1],NormalizeDouble(Ask,Digits),slippage,0,0,"cm_Line_Revers",0,0,Blue)!=-1)
                     Comment("Revers Orders SELL -> BUY ",DoubleToStr(Line[i],Digits),"  ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS));
            }
         }
      }
   }
   return(0);
}
//--------------------------------------------------------------------

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 ---