Orders Execution
Miscellaneous
0
Views
0
Downloads
0
Favorites
qo3ndke7
//+------------------------------------------------------------------+
//| Òðàï |
//| Áóøèí Èãîðü |
//| www.Zuzabush@yandex.ru |
//| |
//| |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright " Áóøèí Èãîðü-Ñàõàëèí"
#property link "www.Zuzabush@yandex.ru"
//------- Âíåøíèå ïàðàìåòðû ------------------------------------------
extern double Lots = 0.1; //Ëîò ìàòü åãî
extern int SE= 35; // Ïðèðîñò ñðåäñòâ è åãî ìàòü òîæå
extern bool AllPositions = False; // Óïðàâëÿòü âñåìè ïîçèöèÿìè
extern bool ProfitTrailing = True; // Òðàëèòü òîëüêî ïðîôèò
extern int TrailingStop = 10; // Ôèêñèðîâàííûé ðàçìåð òðàëà
extern int TrailingStep = 2; // Øàã òðàëà
extern int Otstup = 15;
extern bool UseSound = True; // Èñïîëüçîâàòü çâóêîâîé ñèãíàë
extern string NameFileSound = "expert.wav"; // Íàèìåíîâàíèå çâóêîâîãî ôàéëà
static datetime prevtime = 0;
double OT;
double VSL;
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
void start() {
if(OrdersTotal()<3) VSL=AccountBalance();
if(prevtime == Time[0]) return(0);
if ((OrdersTotal()<2)||(OrdersTotal()<OT))
{OrderSend(Symbol(),OP_BUY,Lots,Ask,5,0,0,"",5,0);
OrderSend(Symbol(),OP_SELL,Lots,Bid,5,0,0,"",5,0);}
prevtime = Time[0]; OT= OrdersTotal();
if(AccountEquity()>VSL+SE) CloseAll();
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (AllPositions || OrderSymbol()==Symbol()) {
TrailingPositions();
}
}
}
}
//+------------------------------------------------------------------+
//| Ñîïðîâîæäåíèå ïîçèöèè òðàëîì (ñëåçà îò óìèëåíèÿ) |
//+------------------------------------------------------------------+
void TrailingPositions() {
double pBid, pAsk, pp;
pp = MarketInfo(OrderSymbol(), MODE_POINT);
if (OrderType()==OP_BUY) {
pBid = MarketInfo(OrderSymbol(), MODE_BID);
if (!ProfitTrailing || (pBid-OrderOpenPrice())>TrailingStop*pp+Otstup*Point) {
if (OrderStopLoss()<pBid-((TrailingStop+Otstup*Point)+TrailingStep-1)*pp) {
ModifyStopLoss(pBid-TrailingStop*pp);
return;
}
}
}
if (OrderType()==OP_SELL) {
pAsk = MarketInfo(OrderSymbol(), MODE_ASK);
if (!ProfitTrailing || OrderOpenPrice()-pAsk>TrailingStop*pp+Otstup*Point) {
if (OrderStopLoss()>pAsk+((TrailingStop+Otstup*Point)+TrailingStep-1)*pp || OrderStopLoss()==0) {
ModifyStopLoss(pAsk+TrailingStop*pp);
return;
}
}
}
}
//+------------------------------------------------------------------+
//| Ïåðåíîñ óðîâíÿ StopLoss |
//| |
//| äåðæèòå ìåíÿ ÷åòâåðî |
//+------------------------------------------------------------------+
void ModifyStopLoss(double ldStopLoss) {
bool fm;
fm=OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,CLR_NONE);
if (fm && UseSound) PlaySound(NameFileSound);
}
//+------------------------------------------------------------------+
// Çàêðûâàåì âñå îðäåðà |
//+------------------------------------------------------------------+
void CloseAll()
{
int ticket, i;
while(OrdersTotal()>0) {
for(i=OrdersTotal()-1;i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<2){
if(OrderType()==OP_BUY) {
RefreshRates();
ticket=OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);
if(!ticket) Print(" Îøèáêà! ",GetLastError());
Sleep(1000); }
if(OrderType()==OP_SELL) {
RefreshRates();
ticket=OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);
if(!ticket) Print(" Îøèáêà! ",GetLastError());
Sleep(1000); }
}
}
}
}
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
---