Orders Execution
0
Views
0
Downloads
0
Favorites
Loza
int Slippage = 2;
double Lot = 0.07;
#define Per 0x1
int begin=0,OP_;
//-------------------------------------------------------------------------------------------------------// <<>>
// <<Êîìàíäíûé öåíòð>> //
// Óñëîâèÿ àêòèâàöèè ìîäåëè 1
// if ....................???
// Ìîäåëü ïîâåäåíèÿ 1
int Control_param = 55, // TralStop = Control_param*2, çíà÷åíèå ó÷àâñòâóåò â ðàñ÷åòå SL
Control_param_2 = 25, // Çíà÷åíèå ïðåðåäàåòñÿ â öèêë ìîäèôèêàöèè îðäåðîâ
Control_param_3 = 15, // Èñïîëüçóåòñÿ äëÿ âû÷èñëåíèÿ SL âñåõ îðäåðîâ
Control_param_4 = 40, // Îáîçíà÷àåò òó ïðèáûëü ïðè äîñòèæåíèè êîòîðîé ñðàáîòàåò "ðàçäàòêà" çíà÷åíèé Lot
//----------------------------------------------------------------------//
//------------Èçìåíÿòü òîëüêî ïðè èçìåíåíèè ñòàðòîâîãî áàëàíñà----------//
Control_param_5 = 50, // Ïåðâîå (íèæíåå) çíà÷åíèå áàëàíñà
Control_param_6 = 600; // Âòîðîå (âåðõíåå) çíà÷åíèå áàëàíñà
//----------------------------------------------------------------------//
// Óñëîâèÿ àêòèâàöèè ìîäåëè 2
// if ....................???
// Ìîäåëü ïîâåäåíèÿ 2
// int Control_param = ?, // TralStop = Control_param*2
// Control_param_2 = ?, // Çíà÷åíèå ïðåðåäàåòñÿ â öèêë ìîäèôèêàöèè îðäåðîâ
// Control_param_3 = ?, // Èñïîëüçóåòñÿ äëÿ âû÷èñëåíèÿ SL âñåõ îðäåðîâ
// Control_param_4 = ?, // Îáîçíà÷àåò òó ïðèáûëü ïðè äîñòèæåíèè êîòîðîé ñðàáîòàåò "ðàçäàòêà" çíà÷åíèé Lot
// Control_param_5 = ?, // Ïåðâîå (íèæíåå) çíà÷åíèå áàëàíñà
// Control_param_6 = ?; // Âòîðîå (âåðõíåå) çíà÷åíèå áàëàíñà
// Óñëîâèÿ àêòèâàöèè ìîäåëè 3
// if ....................???
// Ìîäåëü ïîâåäåíèÿ 3
// int Control_param = ?, // TralStop = Control_param*2
// Control_param_2 = ?, // Çíà÷åíèå ïðåðåäàåòñÿ â öèêë ìîäèôèêàöèè îðäåðîâ
// Control_param_3 = ?, // Èñïîëüçóåòñÿ äëÿ âû÷èñëåíèÿ SL âñåõ îðäåðîâ
// Control_param_4 = ?, // Îáîçíà÷àåò òó ïðèáûëü ïðè äîñòèæåíèè êîòîðîé ñðàáîòàåò "ðàçäàòêà" çíà÷åíèé Lot
// Control_param_5 = ?, // Ïåðâîå (íèæíåå) çíà÷åíèå áàëàíñà
// Control_param_6 = ?; // Âòîðîå (âåðõíåå) çíà÷åíèå áàëàíñà
//-------------------------------------------------------------------------------------------------------// >><<
//-------------------------------------------------------// <<>>
// çàêðûòèå ïîêóïîê
int ClOrder?(int MagicNumber)
{
for(int i = 0; i <= OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS) == false) continue;
return(1);
}
return(0);
}
//-------------------------------------------------------// >><<
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------// <<>>
// ïîêóïêà
void OpenBuy()
{
int tickbuy = OrderSend(Symbol (), OP_BUY, Lot, NormalizeDouble(Ask,Digits), Slippage, Ask-(Control_param-Control_param_3)*Point,0, NULL, Per, 0, Green);
OP_=OP_BUY;
}
// ïðîäàæà
void OpenSell()
{
int ticksell = OrderSend(Symbol (), OP_SELL, Lot, NormalizeDouble(Bid,Digits), Slippage, Bid+(Control_param-Control_param_3)*Point,0,NULL, Per, 0, Red);
OP_=OP_SELL;
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------// >><<
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------// <<>>
// Êîìïåíñàöèîííûå ïîçèöèè - Áëîê îòêëþ÷åí
// void OpenSell_Mod()
// {
// int ticksell = OrderSend(Symbol (), OP_SELL, 0.02, NormalizeDouble(Bid,Digits), Slippage,Bid+(Control_param-Control_param_3)*Point,0,NULL, Per, 0, Red);
// }
// void OpenBuy_Mod()
// {
// int tickbuy1 = OrderSend(Symbol (), OP_BUY, 0.02, NormalizeDouble(Ask,Digits), Slippage,Ask-(Control_param-Control_param_3)*Point,0,NULL, Per, 0, Green);
// }
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------// >><<
int start(){
if(begin==0)
OpenSell();
string Symb=Symbol();
for(int i=1; i<=OrdersTotal(); i++)
{
//-------------------------------------------------------------------------------// Ðàçäàòêà çíà÷åíèé Lot <<>>
double Prots = 0.10,
Min_Lot = MarketInfo(Symb,MODE_MINLOT),
Step = MarketInfo(Symb,MODE_LOTSTEP),
Balance = AccountFreeMargin(),
One_Lot = MarketInfo(Symb,MODE_MARGINREQUIRED),
Pr = OrderProfit(), Lot_mod;
int Type = OrderType(),
TS = (Control_param*2);
//---------------------------------------------------------------------- Áëîê óïðàâëåíèÿ áàëàíñîì <<>>
if (Pr>Control_param_4)
{
Lot_mod = 0.01;
}
else
{
int BalanceExcessIn100s1 = MathFloor( ( Balance - Control_param_5) / 100.01 );
Lot_mod = BalanceExcessIn100s1 * 0.01 + 0.01;
int BalanceExcessIn100s = MathFloor( ( Balance - Control_param_6) / 100.01 );
Lot_mod = BalanceExcessIn100s * 0.01 + 0.1;
}
//----------------------------------------------------------------------- Áëîê óïðàâëåíèÿ áàëàíñîì >><<
//Lot_mod = MathFloor(Free*Prots/One_Lot/Step)*Step;
//---------------//
Lot = Lot_mod;
//---------------//
//-------------------------------------------------------------------------------// Ðàçäàòêà çíà÷åíèé Lot >><<
//-----------------------------------------------------------------------------------------// Áëîê ìîäèôèêàöèè îðäåðîâ <<>>
if (OrderSelect(i-1,SELECT_BY_POS)==true)
{
int Tip=OrderType();
if(OrderSymbol()!=Symb||Tip>1)continue;
double SL=OrderStopLoss();
while(true)
{
bool Modify=false;
switch(Tip)
{
case 0 :
if (NormalizeDouble(SL,Digits) < NormalizeDouble(Bid-TS*Point,Digits))
{
SL=Bid-(Control_param-Control_param_2)*Point;
string Text="Buy ";
Modify=true;
}
break;
case 1 :
if (NormalizeDouble(SL,Digits) > NormalizeDouble(Ask+TS*Point,Digits)|| NormalizeDouble(SL,Digits)==0)
{
SL=Ask+(Control_param-Control_param_2)*Point;
Text="Sell ";
Modify=true;
}
break;
}
if (Modify==false)
break;
//------------------------------------------------------------- Âàðèàíò 1 <<>>
double Price =OrderOpenPrice();
int Ticket =OrderTicket();
Alert ("Ìîäèôèêàöèÿ ",Text,Ticket,". Æä¸ì îòâåò..");
bool Ans1 = OrderModify(Ticket,Price,SL,0,0);
if (Ans1==true)
{
Alert ("Îðäåð ",Text,Ticket," ìîäèôèöèðîâàí:)");
break;
}
//------------------------------------------------------------- Âàðèàíò 1 >><<
//--------------------------------------------------------------------------------------// Âàðèàíò 2 <<>>
// double Price =OrderOpenPrice();
// int Ticket =OrderTicket();
// bool Ans1=OrderModify(Ticket,Price,SL,0,0);
// if (Ans1==true)
// {
// int orderSell;
// if (orderSell < 1)
// {
// orderSell = OrderSend(Symbol(),OP_SELL, Lot,Bid,3,Ask+Try*Point,0);
// }
// else{continue;}
// break;
//} // Áëîê ñèñòåìû óïðàâëåíèÿ áàëàíñîì
//--------------------------------------------------------------------------------------// Âàðèàíò 2 >><<
break;
} // Êîíåö öèêëà ìîä.
} // Êîíåö àíàëèçà îðä.
} // Êîíåö ïåðåáîðà îðä.
//-----------------------------------------------------------------------------------------// Áëîê ìîäèôèêàöèè îðäåðîâ >><<
//--------------------------------------// Áëîê (ñòàíäàðò)
if(ClOrder?(Per)==0)
{
if(OP_==0)
{
OpenSell();
}
else
{
OpenBuy();
}
}
begin=1;
return(0);
}
//------------------------------// Áëîê ñ êîì. ïîçèöèÿìè. Áëîê îòêëþ÷åí
// if(ClOrder?(STUPID)==0){
// if(OP_==0)
// {
// OpenSell();
// if (Lot == 0.01)
// {
// OpenBuy_Mod();
// }}
// else
// {
// OpenBuy();
// if (Lot == 0.01)
// {
// OpenSell_Mod();
// }}}
// begin=1;
// return(0);
// }
//------------------------------//
//--------------------------------------//
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
---