Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
pips4_0
//+------------------------------------------------------------------+
//| pips4.0.mq4 |
//| Copyright © 2012, Sergey Aganin |
//| www.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, admin@vdsforex.ru"
#property link "http://www.ru"
#property show_inputs
#define MAGICMA 20120718
//--------------------------------------------------------------------
extern double lots = 0.1;
extern int Stoploss = 0, //ñòîïëîññ, åñëè 0 òî íå èçìåíÿåòñÿ
Takeprofit = 0; //òåéêïðîôèò, åñëè 0 òî íå èçìåíÿåòñÿ
extern int TrailingStop = 30; //äëèííà òðàëëà, åñëè 0 òî íåò òðàëëà
extern int StepTrall = 0; //øàã òðàëëà - ïåðåìåùàòü ñòîïëîññ íå áëèæå ÷åì StepTrall
extern int NoLoss = 0, //ïåðåâîä â áåçóáûòîê ïðè çàäàííîì êîë-âå ïóíêòîâ ïðèáûëè, åñëè 0 òî íåò ïåðåâîäà â áåçóáûòîê
MinProfitNoLoss = 0; //ìèíèìàëüíàÿ ïðèáûëü ïðè ïåðåâîäå âáåçóáûòîê
//extern int EMAperoid =15; // Ôèëüòð ïåðèîä åìà îïðåäåëåíèÿ òðåíäà
extern int VolumeFiltr =200; // Ôèëüòð ïî Volume
extern int OsMaFast_ema_period =12;
extern int OsMaSlow_ema_period =26;
extern int OsMaSignal_period =9;
extern bool Dolivka =false; // äî ÒÔ Ì15 âêëþ÷èòåëüíî ëó÷øå íå èñïîëüçîâàòü
extern int doliv =300; //îòñòóï îò óæå îòðûòîãî îðäàðà
extern int dolivK =2; // ìíîæèòåëü ëîòà íà äîëèâêó
int limit, closesell1=0, closebuy1=0;
int bar2_period;
int bar3_period;
int bar4_period;
double ma1, ma2, osma1, osma2, osma0, osma3, SL1, valsar1, valsar2;
bool New_Bar;
int sells, buys, sells2, buys2;
//--------------------------------------------------------------------
int STOPLEVEL,TimeBar;
//--------------------------------------------------------------------
int init()
{
}
//--------------------------------------------------------------------
int deinit()
{
ObjectDelete("SLb");
ObjectDelete("SLs");
}
//--------------------------------------------------------------------
int start()
{
//+------------------------------------------------------------------+
//| TrailingStopLight.mq4 |
//| Copyright © 2011, Khlystov Vladimir |
//| http://cmillion.narod.ru |
//+------------------------------------------------------------------+
//while(!IsStopped())
{
//RefreshRates();
STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
double OSL,OTP,OOP,StLo,SL,TP;
double Profit,ProfitS,ProfitB,LB,LS,NLb,NLs,price_b,price_s,OL,sl;
int b,s,OT,OMN;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
OMN = OrderMagicNumber();
if (OrderSymbol() == Symbol())
{
OOP = NormalizeDouble(OrderOpenPrice(),Digits);
OT = OrderType();
OL = OrderLots();
if (OT==OP_BUY)
{
price_b = price_b+OOP*OL;
b++; LB+= OL;
ProfitB+=OrderProfit()+OrderSwap()+OrderCommission();
}
if (OT==OP_SELL)
{
price_s = price_s+OOP*OL;
s++;LS+= OL;
ProfitS+=OrderProfit()+OrderSwap()+OrderCommission();
}
}
}
}
ObjectDelete("SLb");
ObjectDelete("SLs");
if (b>0)
{
NLb = NormalizeDouble(price_b/LB,Digits);
ObjectCreate("SLb",OBJ_ARROW,0,Time[0],NLb,0,0,0,0);
ObjectSet ("SLb",OBJPROP_ARROWCODE,6);
ObjectSet ("SLb",OBJPROP_COLOR, Blue);
}
if (s>0)
{
NLs = NormalizeDouble(price_s/LS,Digits);
ObjectCreate("SLs",OBJ_ARROW,0,Time[0],NLs,0,0,0,0);
ObjectSet ("SLs",OBJPROP_ARROWCODE,6);
ObjectSet ("SLs",OBJPROP_COLOR, Red);
}
int OTicket;
for (i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()==Symbol())
{
OT = OrderType();
OSL = NormalizeDouble(OrderStopLoss(),Digits);
OTP = NormalizeDouble(OrderTakeProfit(),Digits);
OOP = NormalizeDouble(OrderOpenPrice(),Digits);
SL=OSL;TP=OTP;
if (OT==OP_BUY)
{
b++;
if (OSL==0 && Stoploss>=STOPLEVEL && Stoploss!=0)
{
SL = NormalizeDouble(Bid - Stoploss * Point,Digits);
}
else SL=OSL;
if (OTP==0 && Takeprofit>=STOPLEVEL && Takeprofit!=0)
{
TP = NormalizeDouble(Ask + Takeprofit * Point,Digits);
}
else TP=OTP;
if (NoLoss>=STOPLEVEL && OSL<NLb && NoLoss!=0)
{
if (OOP<=NLb && NLb!=0 && NLb <= NormalizeDouble(Bid-NoLoss*Point,Digits))
SL = NormalizeDouble(NLb+MinProfitNoLoss*Point,Digits);
}
if (TrailingStop>=STOPLEVEL && TrailingStop!=0)
{
StLo = NormalizeDouble(Bid - TrailingStop*Point,Digits);
if (StLo>=NLb && NLb!=0) if (StLo > OSL) SL = StLo;
}
if (SL != OSL || TP != OTP)
{
OTicket=OrderTicket();
if (!OrderModify(OTicket,OOP,SL,TP,0,White)) Print("Error OrderModify ",GetLastError());
}
}
if (OT==OP_SELL)
{
s++;
if (OSL==0 && Stoploss>=STOPLEVEL && Stoploss!=0)
{
SL = NormalizeDouble(Ask + Stoploss * Point,Digits);
}
else SL=OSL;
if (OTP==0 && Takeprofit>=STOPLEVEL && Takeprofit!=0)
{
TP = NormalizeDouble(Bid - Takeprofit * Point,Digits);
}
else TP=OTP;
if (NoLoss>=STOPLEVEL && (OSL>NLs || OSL==0) && NoLoss!=0)
{
if (OOP>=NLs && NLs!=0 && NLs >= NormalizeDouble(Ask+NoLoss*Point,Digits))
SL = NormalizeDouble(NLs-MinProfitNoLoss*Point,Digits);
}
if (TrailingStop>=STOPLEVEL && TrailingStop!=0)
{
StLo = NormalizeDouble(Ask + TrailingStop*Point,Digits);
if (StLo<=NLs && NLs!=0) if (StLo < OSL || OSL==0) SL = StLo;
}
if ((SL != OSL || OSL==0) || TP != OTP)
{
OTicket=OrderTicket();
if (!OrderModify(OTicket,OOP,SL,TP,0,White)) Print("Error OrderModify ",GetLastError());
}
}
}
}
}
//Èíäþêè
osma0= iOsMA (NULL,0,OsMaFast_ema_period,OsMaSlow_ema_period,OsMaSignal_period,PRICE_CLOSE,0);
osma1= iOsMA (NULL,0,OsMaFast_ema_period,OsMaSlow_ema_period,OsMaSignal_period,PRICE_CLOSE,1);
osma2= iOsMA (NULL,0,OsMaFast_ema_period,OsMaSlow_ema_period,OsMaSignal_period,PRICE_CLOSE,2);
//valsar0=iSAR(NULL,0,0.02,0.2,0);
valsar1=iSAR(NULL,0,0.02,0.2,1);
valsar2=iSAR(NULL,0,0.02,0.2,2);
// óñëîâèÿ
//BUY
if (valsar1<Ask && osma0>osma1 && osma1>osma2 && osma1>0 && osma2<0 && Volume[1]>VolumeFiltr) buys=1; buys2=1;
//SELL
if (valsar1>Bid && osma1>osma0 && osma2>osma1 && osma1<0 && osma2>0 && Volume[1]>VolumeFiltr) sells=1; sells2=1;
//---- îïðåäåëÿåì îòêðûòûå îðäåðà
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
//---- check order type
if(OrderType()==OP_BUY && OrderLots()==lots) buys2=1; buys=0;
if(OrderType()==OP_BUY && OrderLots()==lots*dolivK) buys2=0;
if(OrderType()==OP_SELL && OrderLots()==lots) sells2=1; sells=0;
if(OrderType()==OP_SELL && OrderLots()==lots*dolivK) sells2=0;
}
// Æäåì íîâûé áàð
static datetime New_Time=0; // Âðåìÿ òåêóùåãî áàðà
New_Bar=false; // Íîâîãî áàðà íåò
if(New_Time!=Time[0]) // Ñðàâíèâàåì âðåìÿ
{
New_Time=Time[0]; // Òåïåðü âðåìÿ òàêîå
New_Bar=true; // Ïîéìàëñÿ íîâûé áàð
}
//--- Øëåì îðäåðà
if (sells==1 && New_Bar==true)
OrderSend(Symbol(),OP_SELL,lots,NormalizeDouble(Bid,Digits),3,0,0,"pips4.0",MAGICMA,0,Red);
if (buys==1 && New_Bar==true)
OrderSend(Symbol(),OP_BUY,lots,NormalizeDouble(Ask,Digits),3,0,0,"pips4.0",MAGICMA,0,Blue);
// Äîëèâêà
int totalorder=OrdersTotal();
for(int y=0;y<OrdersTotal();y++)
{
if(OrderSelect(y,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
//---- check order type
if(OrderType()==OP_BUY && OrderLots()==lots && OrderOpenPrice()>Ask+doliv*Point && Dolivka==true)
{
if(buys2==1)
OrderSend(Symbol(),OP_BUY,lots*dolivK,NormalizeDouble(Ask,Digits),3,0,0,"pips4.0-2",MAGICMA,0,Blue);
//Print ("Order Time=", TimeCurrent()-OrderOpenTime());
closebuy1=1;
break;
}
if(OrderType()==OP_SELL && OrderLots()==lots && OrderOpenPrice()<Bid-doliv*Point && Dolivka==true)
{
if(sells2==1)
OrderSend(Symbol(),OP_SELL,lots*dolivK,NormalizeDouble(Bid,Digits),3,0,0,"pips4.0-2",MAGICMA,0,Red);
//Print ("Order Time=", TimeCurrent()-OrderOpenTime());
closesell1=1;
break;
}
}
//---- Çàêðûâàåì îðäåðà
for(int cn=0;cn<OrdersTotal();cn++)
{
if(OrderSelect(cn,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
//---- check order type
if(OrderType()==OP_BUY)
{
if(0==1) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
//Print ("Order Time=", TimeCurrent()-OrderOpenTime());
break; return(0);
}
if(OrderType()==OP_SELL)
{
if(0==1) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
//Print ("Order Time=", TimeCurrent()-OrderOpenTime());
break; return(0);
}
}
}
return;
}
//--------------------------------------------------------------------
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
---