Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
Bulls_v2
//+------------------------------------------------------------------+
//| Bulls.mq4 |
//| Aleksey Fomichev, Copyright 2014, |
//| http://afblog.ru |
//+------------------------------------------------------------------+
#property copyright "Aleksey Fomichev, Copyright 2014,"
#property link "http://afblog.ru"
extern string Ðèñê_â_ïðîöåíòàõ;
extern double MaxRisk=0.5; // Ñòàðòîâûé ëîò â ïîöåíòàõ îò äåïîçèòà
extern string Ïðîôèò_è_ÑòîïËîññ;
extern int TP=200; // Ïðèáûëü â ïóíêòàõ
extern int SL=50; // Ñòîïëîñ â ïóíêòàõ
extern string Äèñòàíöèÿ_Òðåéëèíãà;
extern int Tral_dist=30; // Äèñòàíöèÿ òðåéëèíãà
extern int Shag=20;
extern string Áëîã_àíàëèçà_òðåíäà; // Îïðåäåëåíèå òðåíäà
extern string Ñêîëüçÿùàÿ_ñðåäíÿÿ;
extern int MA_Period=70;
extern int MA_Period2=14;
extern string iDeMarker_òåêóùèé;
extern int DeM_Period=5;
bool Use_shag=true;
bool Use_bezubitok=false;
extern int MagicNumber=305032014;
extern string SovName="Bulls";
int start()
{
//----
// Ðàñ÷åò ëîòà, êàê % îò äèïîçèòà
double Free =AccountFreeMargin();
double One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Min_Lot =MarketInfo(Symbol(),MODE_MINLOT);
double Max_Lot =MarketInfo(Symbol(),MODE_MAXLOT);
double Step =MarketInfo(Symbol(),MODE_LOTSTEP);
double Lot =MathFloor(Free*MaxRisk/100/One_Lot/Step)*Step;
if(Lot<Min_Lot) Lot=Min_Lot;
if(Lot>Max_Lot) Lot=Max_Lot;
int ord[8];
double tp,sl;
if (Digits==3||Digits==5) {tp=TP*10*Point; sl=SL*10*Point;}
else if (Digits==2||Digits==4) {tp=TP*Point; sl=SL*Point;}
double MA=iMA(Symbol(),0,MA_Period,0,MODE_SMA,PRICE_CLOSE,1);
double MA2=iMA(Symbol(),0,MA_Period2,0,MODE_SMA,PRICE_CLOSE,1);
double DeM=iDeMarker(Symbol(),0,DeM_Period,1);
Uchet_orderov(MagicNumber,Symbol(),ord); // Ïîäêëþ÷àåì ôóíêöèþ ó÷åòà îðäåðîâ
if (ord[0]==0&&ord[1]==0&&ord[6]==0&&ord[7]==0) // Ïðîâåðÿåì óñëîâèå îòêðûòèå îðäåðîâ äëÿ ýòîãî ñîâåòíèêà
{
if (High[1]<=High[2] && Low[1]>=Low[2] && Volume[0]<2) // Ïðîâåðÿåì óñëîâèå ïàòåðíà âíóòðåííåãî áàðà
{
if (MA2>MA && Close[1]>MA && DeM<0.3) // Ïðîâåðÿåì âõîäà íà BUY
OrderSend(Symbol(),OP_BUY,Lot,Ask,20,Ask-sl,Ask+tp,SovName+"_"+MagicNumber,MagicNumber,0,Blue);
}
}
if (OrdersTotal()>0)
Trailing_stop(MagicNumber,Symbol(),Tral_dist,Shag,Use_shag,Use_bezubitok);
//----
//---- Ïóáëèêóåì êîììåíòàðèé íà ýêðàí
Comment("ÁÀËÀÍÑ: ",DoubleToStr(AccountBalance(),2),"\nÑÐÅÄÑÒÂÀ: ",DoubleToStr(AccountEquity(),2),
"\nÏÐÈÁÛËÜ: ",DoubleToStr(AccountProfit(),2));
return(0);
}
//+------------------------------------------------------------------+
//-------------------------------------------------------------------+
//| Ó÷åò îðäåðîâ |
//+------------------------------------------------------------------+
void Uchet_orderov(int Mag, string Symb, int &mas[8])
{
ArrayInitialize(mas,0);
//mas[0] - ïîêóïêà;
//mas[1] - ïðîäàæà;
//mas[2] - buylimit
//mas[3] - selllimit;
//mas[4] - buystop;
//mas[5] - sellstop
//mas[6] - ñäåëêè;
//mas[7] - îòëîæêè
int tip;
int tiket=-1;
for (int pos=OrdersTotal()-1; pos>=0; pos--)
{
if (OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)&&OrderMagicNumber()==Mag&&OrderSymbol()==Symb&&OrderTicket()!=tiket)
{
tiket=OrderTicket();
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;}
}
}
continue;
}
}
//+------------------------END Ó÷åò îðäåðîâ -------------------------+
//-------------------------------------------------------------------+
//| Òðåéëèíã ñòîï |
//+------------------------------------------------------------------+
void Trailing_stop(int Magic, string Symb, int Dist, int Shag, bool Isp_shag, bool Bezubitok)
{
double dist,shag;
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&&!Bezubitok&&NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE);
if (Isp_shag&&!Bezubitok&&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&&Bezubitok&&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&&Bezubitok&&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&&!Bezubitok&&NormalizeDouble(OrderStopLoss()-Bid,Digits)>NormalizeDouble(dist,Digits))
OrderModify(OrderTicket(),0,Bid+dist,OrderTakeProfit(),0,CLR_NONE);
if (Isp_shag&&!Bezubitok&&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&&Bezubitok&&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&&Bezubitok&&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);
}
}
}
}
//+------------------------END Òðåéëèíã ñòîï ------------------------+
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
---