Ребят помогите ошибка '\end_of_program' - unbalanced left parenthesis не знаю что делать,не могу найти,эксперт та простенький.
1. https://www.mql5.com/ru/articles/1547
2. http://notepad-plus.sourceforge.net/ru/site.htm
где правил там //+++++++++++++++
//внешние переменные extern int period1=10; extern int period2=5; //-------------------------------------------------------------------- //Глобальные переменные bool sell=false; bool buy=false; datetime bar_time=0; //|+++++++++++++++++++ //+------------------------------------------------------------------+ int start() { //-------------------------------------------------------------------- //Определении нового бара if (bar_time==iTime(0,0,0)) //++++++++++++++сравнение вр.открытия текущего бара return(0); //т.е если сформировался новый бар то продолжаем bar_time=iTime(0,0,0); //-------------------------------------------------------------------- //Переменные double MA_1_1,MA_1_2,MA_2_1,MA_2_2; //Значение средней скользящей на разных барах //------------------------------------------------------------------- //Торговые критерии MA_1_1=iMA(NULL,0,period1,0,MODE_LWMA,PRICE_WEIGHTED,1); //Значение МА на 1 баре MA_2_1=iMA(NULL,0,period2,0,MODE_LWMA,PRICE_WEIGHTED,1); MA_2_1=iMA(NULL,0,period1,0,MODE_LWMA,PRICE_WEIGHTED,2);//Значение МА на 2 баре MA_2_2=iMA(NULL,0,period2,0,MODE_LWMA,PRICE_WEIGHTED,2); if ((MA_1_1<MA_1_2&&MA_2_1<MA_2_2)||(MA_1_1>MA_1_2&&MA_2_1>MA_2_2)) //Проверка пересечения средних скользящих return(0); if (MA_1_1>MA_1_2) //Выставление флагов или на покупку sell=true ;//++++++++++ или на продажу else buy=true; //------------------------------------------------------------------- //Блок анализа установленых ордеров int total=OrdersTotal(); //Количество всех ордеров int tip; string symb=Symbol(); double lot_buy,lot_sell; for (int pos=0;pos<total;pos++) { if (OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==false) //Если ордер открытый или отложенный то продолжаем continue; if (OrderSymbol()!=symb) //Если наш фин.инструмент то продолжаем continue; tip=OrderType();//++++++++++ if (tip==0) //Если ордер на покупку то суммируем открытые лоты на покупку lot_buy+=OrderLots(); if (tip==1) //Если ордер на продажу то суммируем отрытые лоты на продажу lot_sell+=OrderLots(); if (tip>1) //Если ордер отложенный то удаляем его OrderDelete(pos); } //-------------------------------------------------------------------- //Выставление рыночных ордеров double min_lot=MarketInfo(Symbol(),MODE_MINLOT); if (buy==true) OrderSend(Symbol(),0,min_lot+lot_sell,Ask,5,0,0,"",0,0,Green);//++++++++++++++++++ if (sell==true) OrderSend(Symbol(),1,min_lot+lot_buy,Bid,5,0,0,"",0,0,Red);//+++++++++++++++++ //-------------------------------------------------------------------- //Установление флагов в начальное положение sell=false; buy=false; lot_buy=0; lot_sell=0; //-------------------------------------------------------------------- return(0); }
Еще точки с запятой не хватает.
if (MA_1_1>MA_1_2) //Выставление флагов или на покупку sell=true; // или на продажу else buy=true;
Rattnik писал(а) >>
//внешние переменные
extern int period1=10;
extern int period2=5;
//--------------------------------------------------------------------
//Глобальные переменные
bool sell=false;
bool buy=false;
datetime bar_time=0; |
//+------------------------------------------------------------------+
int start()
{
//--------------------------------------------------------------------
//Определении нового бара
if (bar_time==iTime(0,0,0) ; //сравнение вр.открытия текущего бара
return(0); //т.е если сформировался новый бар то продолжаем
bar_time=iTime(0,0,0);
//--------------------------------------------------------------------
//Переменные
double MA_1_1,MA_1_2,MA_2_1,MA_2_2; //Значение средней скользящей на разных барах
//-------------------------------------------------------------------
//Торговые критерии
MA_1_1=iMA(NULL,0,period1,0,MODE_LWMA,PRICE_WEIGHTED,1); //Значение МА на 1 баре
MA_2_1=iMA(NULL,0,period2,0,MODE_LWMA,PRICE_WEIGHTED,1);
MA_2_1=iMA(NULL,0,period1,0,MODE_LWMA,PRICE_WEIGHTED,2);//Значение МА на 2 баре
MA_2_2=iMA(NULL,0,period2,0,MODE_LWMA,PRICE_WEIGHTED,2);
if ((MA_1_1<MA_1_2&&MA_2_1<MA_2_2)||(MA_1_1>MA_1_2&&MA_2_1>MA_2_2)) //Проверка пересечения средних скользящих
return(0);
if (MA_1_1>MA_1_2) //Выставление флагов или на покупку
sell=true // или на продажу
else buy=true;
//-------------------------------------------------------------------
//Блок анализа установленых ордеров
int total=OrdersTotal(); //Количество всех ордеров
string symb=Symbol();
double lot_buy,lot_sell;
for (int pos=0;pos<total;pos++)
{
if (OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==false) //Если ордер открытый или отложенный то продолжаем
continue;
if (OrderSymbol()!=symb) //Если наш фин.инструмент то продолжаем
continue;
int tip=OrderType();
if (tip==0) //Если ордер на покупку то суммируем открытые лоты на покупку
lot_buy+=OrderLots();
if (tip==1) //Если ордер на продажу то суммируем отрытые лоты на продажу
lot_sell+=OrderLots();
if (tip>1) //Если ордер отложенный то удаляем его
OrderDelete(pos);
}
//--------------------------------------------------------------------
//Выставление рыночных ордеров
double min_lot=MarketInfo(23);
if (buy==true)
OrderSend(Symbol(),0,min_lot+lot_sell,Ask,5,Green);
if (sell==true)
OrderSend(Symbol(),1,min_lot+lot_buy,Bid,5,Red);
//--------------------------------------------------------------------
//Установление флагов в начальное положение
sell=false;
buy=false;
lot_buy=0;
lot_sell=0;
//--------------------------------------------------------------------
return(0);
}
//внешние переменные
extern int period1=10;
extern int period2=5;
//--------------------------------------------------------------------
//Глобальные переменные
bool sell=false;
bool buy=false;
datetime bar_time=0; |
//+------------------------------------------------------------------+
int start()
{
//--------------------------------------------------------------------
//Определении нового бара
if (bar_time==iTime(0,0,0) ; //сравнение вр.открытия текущего бара
return(0); //т.е если сформировался новый бар то продолжаем
bar_time=iTime(0,0,0);
//--------------------------------------------------------------------
//Переменные
double MA_1_1,MA_1_2,MA_2_1,MA_2_2; //Значение средней скользящей на разных барах
//-------------------------------------------------------------------
//Торговые критерии
MA_1_1=iMA(NULL,0,period1,0,MODE_LWMA,PRICE_WEIGHTED,1); //Значение МА на 1 баре
MA_2_1=iMA(NULL,0,period2,0,MODE_LWMA,PRICE_WEIGHTED,1);
MA_2_1=iMA(NULL,0,period1,0,MODE_LWMA,PRICE_WEIGHTED,2);//Значение МА на 2 баре
MA_2_2=iMA(NULL,0,period2,0,MODE_LWMA,PRICE_WEIGHTED,2);
if ((MA_1_1<MA_1_2&&MA_2_1<MA_2_2)||(MA_1_1>MA_1_2&&MA_2_1>MA_2_2)) //Проверка пересечения средних скользящих
return(0);
if (MA_1_1>MA_1_2) //Выставление флагов или на покупку
sell=true // или на продажу
else buy=true;
//-------------------------------------------------------------------
//Блок анализа установленых ордеров
int total=OrdersTotal(); //Количество всех ордеров
string symb=Symbol();
double lot_buy,lot_sell;
for (int pos=0;pos<total;pos++)
{
if (OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==false) //Если ордер открытый или отложенный то продолжаем
continue;
if (OrderSymbol()!=symb) //Если наш фин.инструмент то продолжаем
continue;
int tip=OrderType();
if (tip==0) //Если ордер на покупку то суммируем открытые лоты на покупку
lot_buy+=OrderLots();
if (tip==1) //Если ордер на продажу то суммируем отрытые лоты на продажу
lot_sell+=OrderLots();
if (tip>1) //Если ордер отложенный то удаляем его
OrderDelete(pos);
}
//--------------------------------------------------------------------
//Выставление рыночных ордеров
double min_lot=MarketInfo(23);
if (buy==true)
OrderSend(Symbol(),0,min_lot+lot_sell,Ask,5,Green);
if (sell==true)
OrderSend(Symbol(),1,min_lot+lot_buy,Bid,5,Red);
//--------------------------------------------------------------------
//Установление флагов в начальное положение
sell=false;
buy=false;
lot_buy=0;
lot_sell=0;
//--------------------------------------------------------------------
return(0);
}
В торговой стратегии вторая строчка >> sell=true -здесь должна быть точка с запятой. Мне так ка-аца?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
extern int period1=10;
extern int period2=5;
//--------------------------------------------------------------------
//Глобальные переменные
bool sell=false;
bool buy=false;
datetime bar_time=0; |
//+------------------------------------------------------------------+
int start()
{
//--------------------------------------------------------------------
//Определении нового бара
if (bar_time==iTime(0,0,0) ; //сравнение вр.открытия текущего бара
return(0); //т.е если сформировался новый бар то продолжаем
bar_time=iTime(0,0,0);
//--------------------------------------------------------------------
//Переменные
double MA_1_1,MA_1_2,MA_2_1,MA_2_2; //Значение средней скользящей на разных барах
//-------------------------------------------------------------------
//Торговые критерии
MA_1_1=iMA(NULL,0,period1,0,MODE_LWMA,PRICE_WEIGHTED,1); //Значение МА на 1 баре
MA_2_1=iMA(NULL,0,period2,0,MODE_LWMA,PRICE_WEIGHTED,1);
MA_2_1=iMA(NULL,0,period1,0,MODE_LWMA,PRICE_WEIGHTED,2);//Значение МА на 2 баре
MA_2_2=iMA(NULL,0,period2,0,MODE_LWMA,PRICE_WEIGHTED,2);
if ((MA_1_1<MA_1_2&&MA_2_1<MA_2_2)||(MA_1_1>MA_1_2&&MA_2_1>MA_2_2)) //Проверка пересечения средних скользящих
return(0);
if (MA_1_1>MA_1_2) //Выставление флагов или на покупку
sell=true // или на продажу
else buy=true;
//-------------------------------------------------------------------
//Блок анализа установленых ордеров
int total=OrdersTotal(); //Количество всех ордеров
string symb=Symbol();
double lot_buy,lot_sell;
for (int pos=0;pos<total;pos++)
{
if (OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==false) //Если ордер открытый или отложенный то продолжаем
continue;
if (OrderSymbol()!=symb) //Если наш фин.инструмент то продолжаем
continue;
int tip=OrderType();
if (tip==0) //Если ордер на покупку то суммируем открытые лоты на покупку
lot_buy+=OrderLots();
if (tip==1) //Если ордер на продажу то суммируем отрытые лоты на продажу
lot_sell+=OrderLots();
if (tip>1) //Если ордер отложенный то удаляем его
OrderDelete(pos);
}
//--------------------------------------------------------------------
//Выставление рыночных ордеров
double min_lot=MarketInfo(23);
if (buy==true)
OrderSend(Symbol(),0,min_lot+lot_sell,Ask,5,Green);
if (sell==true)
OrderSend(Symbol(),1,min_lot+lot_buy,Bid,5,Red);
//--------------------------------------------------------------------
//Установление флагов в начальное положение
sell=false;
buy=false;
lot_buy=0;
lot_sell=0;
//--------------------------------------------------------------------
return(0);
}