Price Data Components
Orders Execution
0
Views
0
Downloads
0
Favorites
TrailingLines1
//+------------------------------------------------------------------+
//| TrailingLine.mq4 |
//| Roger |
//+------------------------------------------------------------------+
#property show_inputs
extern bool TrailingLine=True;
int _OrderTicket;
int start()
{
//+------------------------------------------------------------------+
int Order_Find_Radius = 10;
int Stop_Loss = 14;
int Take_Profit = 30;
int Slippage = 50;
//+------------------------------------------------------------------+
double Open_Price_Level, Stop_Loss_Level, PriceClose, Take_Profit_Level, Take_Profit_Level_new, Stop_Loss_Level_new;
int _break;
double lev;
double DropPrice = WindowPriceOnDropped();
bool mod;
for ( int x = 0; x <= Order_Find_Radius; x ++ )
{
for ( int z = 0; z < OrdersTotal(); z ++ )
{
OrderSelect( z, SELECT_BY_POS, MODE_TRADES );
if ( OrderSymbol() == Symbol() )
{
if ( MathAbs(( DropPrice - OrderOpenPrice() )/Point) <= x )
{ _break = 1;
break;
}
}
}
if ( _break == 1 ) break;
}
string ord;
int _OrderType = OrderType();
if(_OrderType==0)ord="BUY"; else ord="SELL";
_OrderTicket = OrderTicket();
Open_Price_Level = Bid;
if ( Stop_Loss > 0 )
{
if(_OrderType==0)Stop_Loss_Level = Open_Price_Level - Stop_Loss*Point;
if(_OrderType==1)Stop_Loss_Level = Open_Price_Level + Stop_Loss*Point;
ObjectCreate( "Stop_Loss_Line"+_OrderTicket, OBJ_HLINE, 0, 0, Stop_Loss_Level, 0, 0, 0, 0 );
ObjectSet( "Stop_Loss_Line"+_OrderTicket, OBJPROP_COLOR,Red );
ObjectSetText( "Stop_Loss_Line"+_OrderTicket, "Stop_Loss_Line", 6, "Arial", Red );
}
else Stop_Loss_Level =0;
if ( Take_Profit >0 )
{
if(_OrderType==0)Take_Profit_Level=Open_Price_Level + Take_Profit*Point;
if(_OrderType==1)Take_Profit_Level=Open_Price_Level - Take_Profit*Point;
ObjectCreate( "Take_Profit_Line"+_OrderTicket, OBJ_HLINE, 0, 0, Take_Profit_Level, 0, 0, 0, 0 );
ObjectSet( "Take_Profit_Line"+_OrderTicket, OBJPROP_COLOR,Lime );
ObjectSetText( "Take_Profit_Line"+_OrderTicket, "Take_Profit_Line", 6, "Arial", Lime );
}
else Take_Profit_Level=0;
lev=Open_Price_Level-Stop_Loss_Level;
Print("OrderType - ",ord," OrderTicket - ",_OrderTicket," OpenPrice - ",Open_Price_Level," StopLoss - ",Stop_Loss_Level," TakeProfit - ",Take_Profit_Level);
WindowRedraw();
int xx;
while( xx<1)
{
RefreshRates();
if(ObjectFind("Stop_Loss_Line"+_OrderTicket)!=-1)Stop_Loss_Level_new = NormalizeDouble( ObjectGet( "Stop_Loss_Line"+_OrderTicket, OBJPROP_PRICE1 ), MarketInfo( Symbol(), MODE_DIGITS ) );
else
{
Stop_Loss_Level=0;
Stop_Loss_Level_new =0;
}
if(ObjectFind("Take_Profit_Line"+_OrderTicket)!=-1)Take_Profit_Level = NormalizeDouble( ObjectGet( "Take_Profit_Line"+_OrderTicket, OBJPROP_PRICE1 ), MarketInfo( Symbol(), MODE_DIGITS ) );
else Take_Profit_Level=0;
if(Stop_Loss_Level==0&&Take_Profit_Level==0)break;
if(_OrderType==0)PriceClose=Bid; else PriceClose=Ask;
if(Stop_Loss_Level!=Stop_Loss_Level_new)lev=Bid-Stop_Loss_Level_new;
Stop_Loss_Level=Stop_Loss_Level_new;
if(TrailingLine)
if(MathAbs(Bid-Stop_Loss_Level)>MathAbs(lev)&&Stop_Loss_Level!=0)
{
Stop_Loss_Level=Bid-lev;
ObjectMove( "Stop_Loss_Line"+_OrderTicket, 0, 10,Stop_Loss_Level );
WindowRedraw();
}
Comment("Order ",ord," - ",_OrderTicket, " StopLoss - ",Stop_Loss_Level," TakeProfit - ",Take_Profit_Level);
if((lev<0&&iHigh(0,1,0)>=Stop_Loss_Level&&Stop_Loss_Level>0)||(lev>0&&iLow(0,1,0)<=Stop_Loss_Level)||
(iHigh(0,1,1)<Take_Profit_Level&&iHigh(0,1,0)>=Take_Profit_Level)||(iLow(0,1,1)>Take_Profit_Level&&iLow(0,1,0)<=Take_Profit_Level))//óñëîâèÿ ïåðåñå÷åíèÿ ñòîïà èëè ïðîôèòà
{
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect( i, SELECT_BY_POS, MODE_TRADES );
if (_OrderTicket == OrderTicket())
{
if(OrderClose(OrderTicket(),OrderLots(),PriceClose,Slippage,CLR_NONE))
{
break;
}
}
}
}
OrderSelect(_OrderTicket,SELECT_BY_TICKET,MODE_TRADES);
if(OrderCloseTime( ) !=0)break;
Sleep(2000);
}
return(-1);
}
int deinit()
{
ObjectDelete( "Stop_Loss_Line"+_OrderTicket );
ObjectDelete( "Take_Profit_Line"+_OrderTicket );
Comment("");
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
---