Ребят помогите ошибка '\end_of_program' - unbalanced left parenthesis не знаю что делать,не могу найти,эксперт та простенький.

 
//внешние переменные
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);
}
 

1. https://www.mql5.com/ru/articles/1547

2. http://notepad-plus.sourceforge.net/ru/site.htm

 
rid >>:
Попробуй вот "это" удалить :

Спасибо, но не оно.......

попробуй себе в эдитор кинуть

 

где правил там //+++++++++++++++

//внешние переменные
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;
 
Korey >>:

Если верить глобусу, ты ж уже спишь давно..

 
Korey >>:

где правил там //+++++++++++++++

Спасибо...

Большое..Мужичела!!!!!!!

 
Rattnik писал(а) >>
Я насчитал 12 отличий от правильного кода. Кто больше ?
 
granit77 писал(а) >>

Если верить глобусу, ты ж уже спишь давно..

"Наступила ночь. В стране дураков началась работа"(С)))

 
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);
}

В торговой стратегии вторая строчка >> sell=true -здесь должна быть точка с запятой. Мне так ка-аца?

 
granit77 >>:

Еще точки с запятой не хватает.

Ага.

Причина обращения: