//+------------------------------------------------------------------+
//| library.mq4 |
//| Copyright 2013, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property library
//+------------------------------------------------------------------+
// Ó÷åò îðäåðîâ
//+------------------------------------------------------------------+
void Uchet_orderov(int Mag, string Symb, int &mas[8])
{
ArrayInitialize(mas,0);
//mas[0] - ïîêóïêè
//mas[1] - ïðîäàæè
//mas[2] - baylimit
//mas[3] - selllimit
//mas[4] - baystop
//mas[5] - sellstop
//mas[6] - ñäåëêè
//mas[7] - îòëîæêè
int tip;
for (int pos=0; pos<OrdersTotal();pos++)
{
OrderSelect(pos,SELECT_BY_POS,MODE_TRADES);
tip=OrderType();
switch(tip)
{
case 0:{mas[0]++;mas[6]++;break;}
case 1:{mas[1]++;mas[6]++;break;}
case 2:{mas[2]++;mas[7]++;break;}
case 3:{mas[3]++;mas[7]++;break;}
case 4:{mas[4]++;mas[7]++;break;}
case 5:{mas[5]++;mas[7]++;break;}
}
}
}
//+------------------------------------------------------------------+
//| òðåèëèíã ñòîï |
//+------------------------------------------------------------------+
void Trailing_stop(int Magic, string Symb, int Dist, int Shag, bool Isp_shag, bool bezubytok)
{
double dist, shag;
// ðàçíîå êîë-âî öèôð â êîòèðîâêàõ, ãäå-òî 4 ãäå 5 ãäå 3 ãäå 2 öèôðû ïîñëå çàïÿòîé
if (Digits==3||Digits==5) {dist=Dist*10*Point; shag=Shag*10*Point;}
else if (Digits==2||Digits==4) {dist=Dist*Point; shag=Shag*Point;}
// ïåðåáîðêà îðäåðîâ
for (int pos=0; pos<OrdersTotal(); pos++)
{
OrderSelect(pos, SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber()==Magic||OrderSymbol()==Symb)
{
if (OrderType()==OP_BUY)
{
if (!Isp_shag&&!bezubytok&&NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE);
if (Isp_shag&&!bezubytok&&NormalizeDouble(Ask-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits)&&
NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE);
if (!Isp_shag&&bezubytok&&NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits)&&
NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE);
if (Isp_shag&&bezubytok&&NormalizeDouble(Ask-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits)&&
NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits)&&
NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE);
}
else if (OrderType()==OP_SELL)
{
if (!Isp_shag&&!bezubytok&&NormalizeDouble(OrderStopLoss()-Bid,Digits)>NormalizeDouble(dist,Digits))
OrderModify(OrderTicket(),0,Bid+dist,OrderTakeProfit(),0,CLR_NONE);
if (Isp_shag&&!bezubytok&&NormalizeDouble(OrderOpenPrice()-Bid,Digits)>=NormalizeDouble(shag,Digits)&&
NormalizeDouble(OrderStopLoss()-Bid,Digits)>NormalizeDouble(dist,Digits))
OrderModify(OrderTicket(),0,Bid+dist,OrderTakeProfit(),0,CLR_NONE);
if (!Isp_shag&&bezubytok&&NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble(OrderOpenPrice(),Digits)&&
NormalizeDouble(OrderStopLoss()-Bid,Digits)>NormalizeDouble(dist,Digits))
OrderModify(OrderTicket(),0,Bid+dist,OrderTakeProfit(),0,CLR_NONE);
if (Isp_shag&&bezubytok&&NormalizeDouble(OrderOpenPrice()-Bid,Digits)>=NormalizeDouble(shag,Digits)&&
NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble(OrderOpenPrice(),Digits)&&
NormalizeDouble(OrderStopLoss()-Bid,Digits)>NormalizeDouble(dist,Digits))
OrderModify(OrderTicket(),0,Bid+dist,OrderTakeProfit(),0,CLR_NONE);
}
}
}
}
//+------------------------------------------------------------------+
Comments