Price Data Components
Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
FT_HighLow+SAR
//+------------------------------------------------------------------+
//| FT_HighLow+SAR.mq4.mq4
//| FORTRADER.RU, Þðèé, ftyuriy@gmail.com
//| http://FORTRADER.RU, Ñîâåòíèê ïî ïðîáîþ HighLow è òðåéëèíã ïî SAR
//+------------------------------------------------------------------+
#property copyright "FORTRADER.RU, Þðèé, ftyuriy@gmail.com"
#property link "http://FORTRADER.RU, Ñîâåòíèê ïî ïðîáîþ HighLow è òðåéëèíã ïî SAR"
/*
Àðõèâ æóðíàëà: http://www.fortrader.ru/arhiv.php
51 âûïóñê: http://www.fortrader.ru/
*/
int SL=100;
extern int TP=0;
int err;
extern int MG=564651;
extern double Lots=0.1;
extern int mn=10;
int start()
{
SarTrailingStop();
pattern();
return(0);
}
int pattern()
{
double op,sl,tp;
double high=iHigh(Symbol(),Period(),1);
double stopbuy=iLow(Symbol(),Period(),2);
double low=iLow(Symbol(),Period(),1);
double stopsell=iHigh(Symbol(),Period(),2);
if(ChPos(1)==0 ){
_DeleteOrder(1);
op=high;if(SL>0){sl=stopbuy;}if(TP>0){tp=op+(op-stopbuy)*3;}else{tp=0;}
err=OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"6 FORTRADER.RU",MG,0,Red);
if(err<0){Print("OrderSend()- Îøèáêà OP_BUYSTOP. op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}
}
if(ChPos(0)==0 ){
_DeleteOrder(0);
op=low;if(SL>0){sl=stopsell;}if(TP>0){tp=op-(stopbuy-op)*3;}else{tp=0;}
err=OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"4 FORTRADER.RU",MG,0,Red);
if(err<0){Print("OrderSend()- Îøèáêà OP_SELLSTOP. op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}
}
return(0);
}
//óäàëÿåò îòëîæåííûå ñòîï îðäåðà
int _DeleteOrder(int type)
{
for( int i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(i-1,SELECT_BY_POS)==true)
{
if(OrderType()==OP_SELLSTOP && OrderSymbol()==Symbol() && type==0)
{
OrderDelete(OrderTicket());
}//if
if(OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol() && type==1)
{
OrderDelete(OrderTicket());
}//if
}//if
}
return(0);
}
//Òðåéäèíã ñòîï ïî ïàðàáîëèêó
extern double SARstep=0.02;
extern double SARmax=0.2;
extern int SarTrailingStop=1;
extern int TrailingStep=5;
int SarTrailingStop()
{int i;bool err; int GraStop=Period();
double sar=iSAR(NULL,GraStop,SARstep,SARmax,1);
for( i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(i-1,SELECT_BY_POS)==true)
{
if(SarTrailingStop>0 && OrderType()==OP_BUY && OrderSymbol()==Symbol())
{
if(sar>OrderStopLoss())
{
if((sar-OrderStopLoss())>=TrailingStep*Point*mn && (Ask-sar)>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
{
Print("ÒÐÅÉËÈÌ");
err=OrderModify(OrderTicket(),OrderOpenPrice(),sar,OrderTakeProfit(),0,Green);
if(err==false){return(-1);}
}//if(Bid>=OrderStopLoss()
}//if(Bid-OrderOpenPrice()
}//if(BBUSize>0
}//if(OrderSelect(i
if(OrderSelect(i-1,SELECT_BY_POS)==true)
{
if(SarTrailingStop>0 && OrderType()==OP_SELL && OrderSymbol()==Symbol() )
{
if(OrderStopLoss()>sar)
{
if((OrderStopLoss()-sar)>TrailingStep*Point*mn && (sar-Ask)>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
{
Print("ÒÐÅÉËÈÌ");
err=OrderModify(OrderTicket(),OrderOpenPrice(),sar,OrderTakeProfit(),0,Green);
if(err==false){return(-1);}
}//if(Ask<=OrderStopLoss()
}//if(OrderOpenPrice()
}//if(BBUSize>0
}// if(OrderSelect
}// for( i=1;
return(0);
}
//ïðîâåðÿåò åñòü ëè îòêðûòûå îðäåðà
int ChPos(int type)
{//ïîäðîáíîå îïèñàíèå: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=100
int i;int col;
for( i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(i-1,SELECT_BY_POS)==true)
{
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && type==1&& OrderMagicNumber()==MG){col=1;}
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && type==0&& OrderMagicNumber()==MG){col=1;}
}
}
return(col);
}
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
---