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