Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
ow1000p_v_2_1_2_2_realize
//+------------------------------------------------------------------+
//| ow1000p.v.2.1.2.2.realize.mq4 |
//| Andrey Tsarkov |
//| http://vkontakte.ru/andrey_tsarkov |
//| ICQ: 206-687-622 |
//| Åñëè Âû è âïðàâäó çàðàáîòàëè ìèëëèîí ñ ïîìîùüþ ýòîãî ñîâåòíèêà, |
//| êèíüòå äåñÿòîê òûñÿ÷åíîê íà Z360574545386. Àâòîð áóäåò ñ÷àñòëèâ, |
//| êàê ðåáåíîê%) |
//+------------------------------------------------------------------+
#property copyright "Andrey Tsarkov"
#property link "http://vkontakte.ru/andrey_tsarkov"
//---- input parameters
extern double StopLoss=0.005;
extern double Take_Profit=0.03;
extern double Money_Buffer=0.002;
extern double Second_Bar_Buffer=0.003;
extern int Deal_Percent=5;
extern double SL_1=0.005;
extern double SL_2=0.007;
extern double SL_3=0.009;
extern double SL_4=0.016;
extern double SL_5=0.023;
//extern int Expiration=15;
/*int Order_Hour=0;
int Order_Minute=0;
int Expiration_Hour=0;
int Expiration_Minute=0;*/
int MA_Period=64;
bool More_Than_One_Bar_Left=false;
bool working=true;
double Max_Peak;
double MA;
double MA1;
double MA2;
double MA3;
double Stop_Loss;
double Open_Bar_Close_Price;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double Price, // Öåíà âûáðàííîãî îðäåðà
SL, // SL âûáðàííîãî îðäåðà
TP, // TP âûáðàííîãî îðäåðà
Lot, // Êîëè÷. ëîòîâ â âûáðàí.îðäåðå
A,
B;
int Tip=-1, // Òèï âûáðàí. îðäåðà (B=0,S=1)
Ticket; // Íîìåð îðäåðà
//----
MA=iMA(NULL,0,MA_Period,0,MODE_SMA,PRICE_CLOSE,0);
MA1=iMA(NULL,0,MA_Period,0,MODE_SMA,PRICE_CLOSE,1);
MA2=iMA(NULL,0,MA_Period,0,MODE_SMA,PRICE_CLOSE,2);
MA3=iMA(NULL,0,MA_Period,0,MODE_SMA,PRICE_CLOSE,3);
if (DayOfWeek()==0 || DayOfWeek()==6)
{
working=false;
}
else
{
if (DayOfWeek()==1 && Hour()<0)
{
working=false;
}
else
{
working=true;
}
}
if (working)
{
if (OrdersTotal()>0) //Åñëè åñòü îòêðûòûé îðäåð
{
OrderSelect(0,SELECT_BY_POS);
Ticket=OrderTicket(); // Íîìåð âûáðàíí. îðä.
Tip =OrderType(); // Òèï âûáðàííîãî îðä.
Price =OrderOpenPrice(); // Öåíà âûáðàíí. îðä.
SL =OrderStopLoss(); // SL âûáðàííîãî îðä.
TP =OrderTakeProfit(); // TP âûáðàííîãî îðä.
Lot =OrderLots(); // Êîëè÷åñòâî ëîòîâ
RefreshRates();
/*if (Tip==0) // Åñëè îðäåð íà ïîêóïêó
{
if ((Expiration_Hour==Hour()) && (Expiration_Minute<=Minute()))
{
OrderClose(Ticket, Lot, Bid, 2);
}
if (MA-Bid>=Cancel)
{
OrderClose(Ticket, Lot, Bid, 2);
}
}*/
/*if (Tip==1) // Åñëè îðäåð íà ïðîäàæó
{
if ((Expiration_Hour==Hour()) && (Expiration_Minute<=Minute()))
{
OrderClose(Ticket, Lot, Ask, 2);
}
if (Ask-MA>=Cancel)
{
OrderClose(Ticket, Lot, Ask, 2);
}
}*/
if (Tip==0) // Åñëè îðäåð íà ïîêóïêó
{
if (Close[1]>Max_Peak)
{
Max_Peak=Close[1];
}
if (Open_Bar_Close_Price==Close[2] && More_Than_One_Bar_Left==false)
{
More_Than_One_Bar_Left=true;
}
if (Close[1]<=MA1)
{
OrderClose(Ticket, Lot, Bid, 2);
}
else
{
if (More_Than_One_Bar_Left==true)
{
A=Max_Peak-Price;
B=Close[1]-Price;
if (A-B>A/3.5 && Close[2]-Close[1]>=Money_Buffer && A<=0.01 && A>0.006 && Close[2]>Close[1])
{
OrderClose(Ticket, Lot, Bid, 2);
}
else
{
if (A>0.01 && A<=0.015 && Bid-Price<SL_1)
{
OrderClose(Ticket, Lot, Bid, 2);
}
if (A>0.015 && A<=0.02 && Bid-Price<SL_2)
{
OrderClose(Ticket, Lot, Bid, 2);
}
if (A>0.02 && A<=0.025 && Bid-Price<SL_3)
{
OrderClose(Ticket, Lot, Bid, 2);
}
if (A>0.025 && A<=0.029 && Bid-Price<SL_4)
{
OrderClose(Ticket, Lot, Bid, 2);
}
if (A>0.029 && A<=0.03 && Bid-Price<SL_5)
{
OrderClose(Ticket, Lot, Bid, 2);
}
}
}
}
}
if (Tip==1) // Åñëè îðäåð íà ïðîäàæó
{
if (Close[1]<Max_Peak)
{
Max_Peak=Close[1];
}
if (Open_Bar_Close_Price==Close[2] && More_Than_One_Bar_Left==false)
{
More_Than_One_Bar_Left=true;
}
if (Close[1]>=MA1)
{
OrderClose(Ticket, Lot, Ask, 2);
}
else
{
if (More_Than_One_Bar_Left==true)
{
A=Price-Max_Peak;
B=Price-Close[1];
if (A-B>A/3.5 && Close[1]-Close[2]>=Money_Buffer && A<=0.01 && A>0.006 && Close[1]>Close[2])
{
OrderClose(Ticket, Lot, Ask, 2);
}
else
{
if (A>0.01 && A<=0.015 && Price-Ask<SL_1)
{
OrderClose(Ticket, Lot, Ask, 2);
}
if (A>0.015 && A<=0.02 && Price-Ask<SL_2)
{
OrderClose(Ticket, Lot, Ask, 2);
}
if (A>0.02 && A<=0.025 && Price-Ask<SL_3)
{
OrderClose(Ticket, Lot, Ask, 2);
}
if (A>0.025 && A<=0.029 && Price-Ask<SL_4)
{
OrderClose(Ticket, Lot, Ask, 2);
}
if (A>0.029 && A<=0.03 && Price-Ask<SL_5)
{
OrderClose(Ticket, Lot, Ask, 2);
}
}
}
}
}
}
else //Åñëè íåò îòêðûòîãî îðäåðà
{
RefreshRates();
if (cross_the_line(Close[3]) && Minute()==0) //Åñëè öåíà ïåðåñåêëà ÌÀ
{
if (Close[3]<Close[2] && Close[2]<Close[1]/*Close[2]-Close[1]<0.0004*/)//Åñëè öåíà èäåò ââåðõ
{
OrderSend(Symbol(),OP_BUY,Quarter_Balance(),Ask,2,Bid-StopLoss,Bid+Take_Profit);
Max_Peak=Ask;
Open_Bar_Close_Price=Close[1];
More_Than_One_Bar_Left=false;
/*Order_Hour=Hour();
Order_Minute=Minute();
Expiration_Hour=Order_Hour+Expiration;
Expiration_Minute=Order_Minute;
if (Expiration_Hour>=24)
{
Expiration_Hour=Expiration_Hour-24;
}*/
}
else //Åñëè öåíà èäåò âíèç
{
if (Close[3]>Close[2] && Close[2]>Close[1]/*Close[1]-Close[2]<0.0004*/)
{
OrderSend(Symbol(),OP_SELL,Quarter_Balance(),Bid,2,Ask+StopLoss,Ask-Take_Profit);
Max_Peak=Bid;
Open_Bar_Close_Price=Close[1];
More_Than_One_Bar_Left=false;
/*Order_Hour=Hour();
Order_Minute=Minute();
Expiration_Hour=Order_Hour+Expiration;
Expiration_Minute=Order_Minute;
if (Expiration_Hour>=24)
{
Expiration_Hour=Expiration_Hour-24;
}*/
}
}
}
else
{
if (cross_the_line2(Close[4]) && Minute()==0)
{
if (Close[4]<Close[3] && Close[3]-Close[2]<Second_Bar_Buffer && Close[1]>Close[2])//Åñëè öåíà èäåò ââåðõ
{
OrderSend(Symbol(),OP_BUY,Quarter_Balance(),Ask,2,Bid-StopLoss,Bid+Take_Profit);
Max_Peak=Ask;
Open_Bar_Close_Price=Close[1];
More_Than_One_Bar_Left=false;
/*Order_Hour=Hour();
Order_Minute=Minute();
Expiration_Hour=Order_Hour+Expiration;
Expiration_Minute=Order_Minute;
if (Expiration_Hour>=24)
{
Expiration_Hour=Expiration_Hour-24;
}*/
}
else //Åñëè öåíà èäåò âíèç
{
if (Close[4]>Close[3] && Close[2]-Close[3]<Second_Bar_Buffer && Close[2]>Close[1])
{
OrderSend(Symbol(),OP_SELL,Quarter_Balance(),Bid,2,Ask+StopLoss,Ask-Take_Profit);
Max_Peak=Bid;
Open_Bar_Close_Price=Close[1];
More_Than_One_Bar_Left=false;
/*Order_Hour=Hour();
Order_Minute=Minute();
Expiration_Hour=Order_Hour+Expiration;
Expiration_Minute=Order_Minute;
if (Expiration_Hour>=24)
{
Expiration_Hour=Expiration_Hour-24;
}*/
}
}
/*else
{
if (cross_the_line2(Close[7]) && Minute()==0)
{
}
}*/
}
}
}
//----
}
return(0);
}
//+------------------------------------------------------------------+
//| user's functions |
//+------------------------------------------------------------------+
bool cross_the_line(double Start_Price)
{
if (Start_Price<=MA2 && Bid>=MA && Close[2]>MA2) return(true);
if (Start_Price>=MA2 && Bid<=MA && Close[2]<MA2) return(true);
return(false);
}
//----
bool cross_the_line2(double Start_Price)
{
if (Start_Price<=MA3 && Bid>=MA && Close[3]>MA3) return(true);
if (Start_Price>=MA3 && Bid<=MA && Close[3]<MA3) return(true);
return(false);
}
//----
double Quarter_Balance()
{
double Free,
One_Lot,
Step,
Lots,
Min_Lot,
Max_Lot;
RefreshRates(); // Îáíîâëåíèå äàííûõ
Free =AccountFreeMargin(); // Ñâîáîäí ñðåäñòâà
One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED);// Ñòîèìîñòü 1 ëîòà
Step =MarketInfo(Symbol(),MODE_LOTSTEP); // Øàã èçìåíåí ðàçìåðà
Min_Lot=MarketInfo(Symbol(),MODE_MINLOT);
Max_Lot=MarketInfo(Symbol(),MODE_MAXLOT);
Lots=MathFloor(Free*Deal_Percent/100/One_Lot/Step)*Step;
if(Lots<Min_Lot) Lots=Min_Lot;
if(Lots>Max_Lot) Lots=Max_Lot;
return(Lots);
}
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
---