Orders Execution
0
Views
0
Downloads
0
Favorites
SetStop
//+------------------------------------------------------------------+
//| SetStop.mq4 |
//| Copyright © 2010, Khlystov Vladimir |
//| cmillion@narod.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Khlystov Vladimir"
#property link "cmillion@narod.ru"
#property version "1.00"
#property strict
#property description "ñîâåòíèê âûñòàâëÿåò ñòîï ëîññ è òåéê ïðîôèò ó âñåõ ïîçèöèé â òåêóùåì îêíå, "
#property description "åñëè âûñòàâëåíî çíà÷åíèå ìåíåå STOPLEVEL, òî ñîâåòíèê íå ìåíÿåò ñòîï."
//--------------------------------------------------------------------
extern int stoploss = 50, //óðîâåíü âûñòàâëåíèÿ SL, åñëè 0, òî SL íå èçìåíÿåòñÿ
takeprofit = 50; //óðîâåíü âûñòàâëåíèÿ TP, åñëè 0, òî TP íå èçìåíÿåòñÿ
//--------------------------------------------------------------------
void OnTick()
{
int tip,Ticket;
double SL,TP;
double OOP,OSL,OTP;
int STOPLEVEL = (int)MarketInfo(Symbol(),MODE_STOPLEVEL);
int SPREAD = (int)MarketInfo(Symbol(),MODE_SPREAD);
if (stoploss<STOPLEVEL) stoploss=0;
if (takeprofit<STOPLEVEL) takeprofit=0;
Comment("SetStop Copyright © 2016, http://cmillion.ru\n",
"ñîâåòíèê âûñòàâëÿåò\nñòîï ëîññ = ",stoploss,"\nòåéê ïðîôèò = ",takeprofit
,"\nSTOPLEVEL = ",STOPLEVEL);
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i, SELECT_BY_POS))
{
tip = OrderType();
if (OrderSymbol()==Symbol())
{
OSL = OrderStopLoss();
OTP = OrderTakeProfit();
if ((OSL==0&&stoploss!=0)||(OTP==0&&takeprofit!=0))
{
OOP = OrderOpenPrice();
Ticket = OrderTicket();
if (tip==OP_BUY || tip==OP_BUYSTOP || tip==OP_BUYLIMIT)
{
if (takeprofit!=0) TP = NormalizeDouble(OOP + takeprofit*Point,Digits); else TP=OTP;
if (stoploss!=0) SL = NormalizeDouble(OOP - (stoploss+SPREAD)* Point,Digits); else SL=OSL;
if (OrderModify(Ticket,OOP,SL,TP,0,White)) Print("SetStop ",Ticket," SL ",OSL," -> ",SL," TP ",OTP," -> ",TP);
else Print(Symbol()," Error SetStop ",GetLastError()," Ticket ",Ticket);
}
if (tip==OP_SELL || tip==OP_SELLSTOP || tip==OP_SELLLIMIT)
{
if (takeprofit!=0) TP = NormalizeDouble(OOP - takeprofit*Point,Digits); else TP=OTP;
if (stoploss!=0) SL = NormalizeDouble(OOP + (stoploss+SPREAD)* Point,Digits); else SL=OSL;
if (OrderModify(Ticket,OOP,SL,TP,0,White)) Print("SetStop ",Ticket," SL ",OSL," -> ",SL," TP ",OTP," -> ",TP);
else Print(Symbol()," Error SetStop ",GetLastError()," Ticket ",Ticket);
}
}
}
}
}
}
//--------------------------------------------------------------------
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
---