![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот кое что стилепал,но есть ошибки добрые люди исправте пожалуйста с коментами,да по понятней.
extern int OrderMax=10; //максимальное число ордеров
extern int SL=90; // Уровень стоп-лосса для ордеров на покупку
extern int TP=60;// Уровень тейк-профита для ордеров на покупку
extern double Lot=1; // Размер лота на покупку
int i,pldot_0;
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
void OpenOrd()
{
if(Close[0]>pldot_0)
{
OrderSend(Symbol(), OP_BUY, Lot, Ask, 2,SL, TP, 0, Period(), 0, Green); // Ask+TPB*Point Ask-SLB*Point Ask-ATR
return(0);
}
else if(Close[0]<pldot_0)
{
OrderSend(Symbol(), OP_SELL, Lot, Bid, 2,SL, TP, 0, Period(), 0, Aqua); //Bid-TP*Point
return(0);
}
//---------------------------------------------------------------
// Закрытие ордеров
void CloseOrd()---ВОТ ЗДЕСЬ ПИШЕТ ЧТО ОШИБКА '(' - function definition unexpected
{
bool Result;
double fClosePrice;
for (i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
RefreshRates();
if (Close[0]<pldot_0) fClosePrice = Bid;
if (Close[0]>pldot_0) fClosePrice = Ask;
}
}
int start()
{
OpenOrd();
if (OrdClose==true) CloseOrd();
return(0);
}
УВАЖАЕМЫЕ ПОДПРАВТЕ(ПОДСКАЖИТЕ КАК И ТЫКОНИТЕ ПАЛЬЦЕМ ГДЕ ОШИБКА)в ЭТОМ КОДЕ 2 ПРОБЛЕМЫ----НЕ ЗАКРЫВАЕТ ОРДЕРА ПО ПРОТИВОПОЛОЖНОМУ СИГНАЛУ И ОТКРЫВАЕТ ОРДЕР НА КАЖДОМ БАРЕ ОТКУДА ПОСТУПАЕТ СИГНАЛ.Я ЧИТАЛ ИНСТРУКЦИИ И СТАТЬИ НО ТАК И НЕ РАЗОБРАЛСЯ В ЧЕМ ДЕЛО.
extern int SL=0; // Уровень стоп-лосса для ордеров на покупку
extern int TP=0;// Уровень тейк-профита для ордеров на покупку
extern double Lot=1; // Размер лота на покупку
int i,pldot_0;
bool buy=true; //запрет на покупку (true - покупка разрешена)
bool sell=true; //запрет на продажу (true - продажа разрешена)
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
void OpenOrd()
{
double SL,TP;
double pldot_0=iCustom(NULL,0,"PLdot",0,0);//берем значение с 0го бара
// BUY
if(Close[0]>pldot_0)
{
if (SL==0) SL=0;
else SL=Ask-SL*Point;
if (TP==0) TP=0;
else TP=Ask+TP*Point;
OrderSend(Symbol(), OP_BUY, Lot, Ask, 2,SL, TP, 0, Period(), 3, Green); // Ask+TPB*Point Ask-SLB*Point Ask-ATR
buy=false;
return(0);
}
// SELL
if(Close[0]<pldot_0)
{
if (SL==0) SL=0;
else SL=Bid+SL*Point;
if (TP==0) TP=0;
else TP=Bid-TP*Point;
OrderSend(Symbol(), OP_SELL, Lot, Bid, 2,SL, TP, 0, Period(), 3, Aqua); //Bid-TP*Point
sell=false;
return(0);
}
}
//---------------------------------------------------------------
// Закрытие ордеров
void CloseOrd()
{
double pldot_0=iCustom(NULL,0,"PLdot",0,0);//берем значение с 0го бара
for (i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ( OrderSymbol()==Symbol() && OrderType()==OP_BUY && (Close[0]<pldot_0)) OrderClose(OrderTicket(),OrderLots(),Bid,3,Aqua);
if ( OrderSymbol()==Symbol() && OrderType()==OP_SELL && (Close[0]>pldot_0))OrderClose(OrderTicket(),OrderLots(),Ask,3,Aqua);
}
}
int start()
{
OpenOrd();
if (OrdClose==true) CloseOrd();
return(0);
}