Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
graal_2
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// Ãðààëü_2.mq4.
// Èñïîëüçóåòñÿ â êà÷åñòâå ïðèìåðà â ñòàòüå "Ìîé ïåðâûé Ãðààëü".
// Ñåðãåé Êîâàë¸â, Äíåïðîïåòðîâñê, sk@mail.dnepr.net, ICQ 64015987, http://autograf.dp.ua/.
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
extern int TakeProfit=5; // TakeProfit îðäåðà
extern int StopLoss= 29; // StopLoss îðäåðà
extern int Distan = 2; // Äèñòàíöèÿ îò ñðåäíåé ÌÀ
extern int Cls = 2; // Çàêðûòü ïðè ** ïíêòîâ ïðèáûëè
extern int period_MA=16; // Ïåðèîä ñðåäíåé ÌÀ
//extern int Time_1 = 0; // Âðåìÿ íà÷àëà ðàáîòû
//extern int Time_2 = 0; // Âðåìÿ îêîí÷àíèÿ ðàáîòû
extern int Prots = 0; // Ïðîöåíò îò ñâîáîäíûõ ñðåäñòâ
//--------------------------------------------------------------------------------------------
int
Nom_bl, // Íîìåð îðäåðà BuyLimit
Nom_sl, // Íîìåð îðäåðà SellLimit
total, // Êîëè÷åñòâî ëîòîâ
bl = 0, // 1 = ôàêò íàëèèÿ îðäåðà BuyLimit
sl = 0, // 1 = ôàêò íàëèèÿ îðäåðà SellLimit
b = 0, // 1 = ôàêò íàëèèÿ îðäåðà Buy
s = 0; // 1 = ôàêò íàëèèÿ îðäåðà Sell
//--------------------------------------------------------------------------------------------
double
OP, // OpenPrice (àáñîëþòí. ïóíêòîâ)
SL, // StopLoss îðäåðà (îòíîñèò.ïóíêò.)
TP, // TakeProfit îðäåðà (îòíîñèò.ïóíêò.)
dist, // Äèñòàíöèÿ îò ñðåäíåé ÌÀ(îòí.ïóí.)
Level, // Ìèíèì. äîïóñò äèñòàíöèÿ îòë.îðä
OP_bl, // OpenPrice BuyLimit (àáñ. ïóíêòîâ)
OP_sl, // OpenPrice SellLimit(àáñ. ïóíêòîâ)
cls, // Çàêðûòü ïðè ** ïðèáûëè (àáñ. ïóí.)
MA, // Çíà÷åíèå ÌÀ (êóðñ)
spred, // Ñïðåä (àáñ. ïóíêòîâ)
Lot; // Êîëè÷åñòâî ëîòîâ
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
int init()
{
Level=MarketInfo(Symbol(),MODE_STOPLEVEL); // Âûÿñíèì ÷òî íàì äà¸ò ñåðâåð
Level=(Level+1)*Point; // ?:)
SL=StopLoss*Point; // StopLoss îðäåðà (îòíîñèò.ïóíêò.)
TP=TakeProfit*Point; // TakeProfit îðäåðà (îòíîñèò.ïóíêò.)
dist=Distan*Point; // Äèñòàíöèÿ îò ñðåäíåé ÌÀ(îòí.ïóí.)
cls=Cls*Point; // Çàêðûòü ïðè ** ïðèáûëè (àáñ. ïóí.)
spred=Ask-Bid; // Ñïðåä (àáñ. ïóíêòîâ)
return;
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
int start()
{
//============================================================================================
total=OrdersTotal(); // Êîëè÷åñòâî ëîòîâ
bl=0; // Îáíóëèìñÿ â íà÷àëå ïðîõîäà
sl=0; // Îáíóëèìñÿ â íà÷àëå ïðîõîäà
b=0; // Îáíóëèìñÿ â íà÷àëå ïðîõîäà
s=0; // Îáíóëèìñÿ â íà÷àëå ïðîõîäà
//--------------------------------------------------------------------------------------------
for (int i=total; i>=0; i--) // Ïî âñåì îðäåðàì
{
if (OrderSelect(i,SELECT_BY_POS)==true && // Âûäåëèì îðäåð
OrderSymbol()==Symbol())
{
//--------------------------------------------------------------------------------------------
if (OrderType()==OP_BUY) // Îðäåð Buy
{
b =1; // Åñòü òàêîé îðäåð
Close_B(OrderTicket(),OrderLots()); // Çàêðûòü îðäåð (íàäî ëè ðåøèò ô-èÿ)
}
//--------------------------------------------------------------------------------------------
if (OrderType()==OP_SELL) // Îðäåð Sell
{
s =1; // Åñòü òàêîé îðäåð
Close_S(OrderTicket(),OrderLots()); // Çàêðûòü îðäåð (åñëè íàäî)
}
//--------------------------------------------------------------------------------------------
if (OrderType()==OP_BUYLIMIT) // Îðäåð BuyLimit
{
OP_bl=NormalizeDouble(OrderOpenPrice(),Digits);//OpenPrice BuyLimit(àáñ. ïóíêòîâ)
Nom_bl=OrderTicket();
bl=1; // Åñòü òàêîé îðäåð
}
//--------------------------------------------------------------------------------------------
if (OrderType()==OP_SELLLIMIT) // ÎðäåðSellLimit
{
OP_sl=NormalizeDouble(OrderOpenPrice(),Digits);//OpenPrice SellLimit(àáñ.ïóíêòîâ)
Nom_sl=OrderTicket();
sl=1; // Åñòü òàêîé îðäåð
}
//--------------------------------------------------------------------------------------------
}
}
//--------------------------------------------------------------------------------------------
MA = iMA(NULL,0, period_MA, 0,MODE_LWMA, PRICE_TYPICAL, 0);// Òåêóùåå çíà÷åíèå ÌÀ
Modify_order(); // Àêòèâèçèðóåì ìîäèôèêàöèþ
Open_order() ; // Àêòèâèçèðóåì îòêðûòèå
//============================================================================================
return;
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
void Close_B(int Nomber, double lots) // Çàêðûòèå îðäåðîâ Buy
{
//============================================================================================
if (NormalizeDouble(Bid-OrderOpenPrice(),Digits)>=cls)// Åñëè äîñòèãíóò çàäàííûé ïðîôèò
{
OrderClose( Nomber, lots, Bid, 1, Yellow); // Çàêðûâàåìñÿ
b = 0; // È áîëüøå íåò áàÿ
}
//============================================================================================
return;
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
void Close_S(int Nomber, double lots) // Çàêðûòèå îðäåðîâ Sell
{
//============================================================================================
if (NormalizeDouble(OrderOpenPrice()-Ask,Digits)>=cls)// Åñëè äîñòèãíóò çàäàííûé ïðîôèò
{
OrderClose( Nomber, lots, Ask, 1, Yellow); // Çàêðûâàåìñÿ
s = 0; // È áîëüøå íåò ñåëëà
}
//============================================================================================
return;
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
void Modify_order() // Ìîäèôèêàöèÿ îðäåðîâ
{
//============================================================================================
if (bl==1) // Åñëè åñòü ÁàéËèìèò
{
OP=MA-dist; // Îí äîëæåí ñòîÿòü çäåñü
if (MathAbs(OP_bl-OP)>0.5*Point) // À åñëè îí çäåñü íå ñòîèò
{
OrderModify(Nom_bl,OP,OP-SL,OP+TP,0,DeepSkyBlue);// Ìîäèôèêàöèÿ îðäåðà
}
}
//--------------------------------------------------------------------------------------------
if (sl==1) // Åñëè åñòü ÑåëëËèìèò
{
OP=MA+spred+dist; // Îí äîëæåí ñòîÿòü çäåñü
if (MathAbs(OP_sl-OP)>0.5*Point) // À åñëè îí çäåñü íå ñòîèò
{
OrderModify( Nom_sl, OP, OP+SL, OP-TP, 0, Pink);// Ìîäèôèêàöèÿ îðäåðà
}
}
//============================================================================================
return;
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
void Open_order() // Îòêðûâàþùàÿ ôóíêöèÿ
{
// int Tek_Time=TimeHour(CurTime()); // Äëÿ òåñòèðîâàíèÿ ïî âðåìåíè
// if (Tek_Time>Time_2 && Tek_Time<Time_1) return; // Äëÿ òåñòèðîâàíèÿ ïî âðåìåíè
//============================================================================================
if (b==0 && bl==0) // Íåò íèêàêèõ áà¸â, îòêðûâàåì bl
{
OP=MA-dist; // Êóðñ îòêðûòèÿ îðäåðà bl
if(OP>Ask-Level) OP=Ask-Level; // Óòî÷íåíèå ÎÐ â ñîîòâ. ñ äîïóñêîì
OP=NormalizeDouble(OP,Digits); // Íîðìàëèçàöèÿ (ÌÀ äà¸ò 5é çíàê)
OrderSend(Symbol(),OP_BUYLIMIT, Lots(),OP,3,OP-SL,OP+TP,"",0,0,Blue);// Îòêðûâàåìñÿ
bl=1; // Òåïåðü åñòü áàé
}
//--------------------------------------------------------------------------------------------
if (s==0 && sl==0) // Íåò íèêàêèõ ñåëîâ, îòêðûâàåì sl
{
OP=MA+spred+dist; // Êóðñ îòêðûòèÿ îðäåðà sl
if(OP<Bid+Level) OP=Bid+Level; // Óòî÷íåíèå ÎÐ â ñîîòâ. ñ äîïóñêîì
OP=NormalizeDouble(OP,Digits); // Íîðìàëèçàöèÿ (ÌÀ äà¸ò 5é çíàê)
OrderSend(Symbol(),OP_SELLLIMIT,Lots(),OP,3,OP+SL,OP-TP,"",0,0,Red);// Îòêðûâàåìñÿ
sl=1; // Òåïåðü åñòü sl
}
///============================================================================================
return;
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
double Lots() // Âû÷èñëåíèå ëîòîâ
{
//============================================================================================
Lot=NormalizeDouble(AccountEquity()*Prots/100/1000,1);// Âû÷èñëÿåì êîëè÷. ëîòîâ
double Min_Lot = MarketInfo(Symbol(), MODE_MINLOT); // Ìèíèìàëüíî äîïóñòèìàÿ ñòîèì. ëîòîâ
if (Lot == 0 ) Lot = Min_Lot; // Äëÿ òåñòà íà ïîñòîÿí. ìèíèì. ëîòàõ
//============================================================================================
return(Lot);
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
/*
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
---