Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Увеличивай свой рейтинг. Выполняй заказы в сервисе Фриланс!
Vitaliy
65
Vitaliy 2011.06.20 18:17 
Проблема такая решил написать советника для себя побаловаться, а он не хороший такой берет и заставляет меня голову ломать, вроде все правильно но ставки он только закрывает, а новых не открывает вообще не каких, может я где напортачил смысл сбил или не недодал смыслу? Советник работает так - 1 бар открытый ниже ма но закрытый выше ма это повод для ставки на рост в 0 баре, как только цена пересечет в обратном направлении эта повод закрыть приведущию ставку и открыть новую по напровлению. Добавлю еще я открываю ставку, он ее тупа вовремя пересечения закрывает, но новую не открывает хотя советник написан так что даже если нет ставки все равно он должен открыть хотя бы одну по направлению. Помогите решить проблему, при много благодарен заранее всем помогающим.
Файлы:
Victor Nikolaev
Модератор
14085
Victor Nikolaev 2011.06.20 19:16  
xameleon:
Проблема такая решил написать советника для себя побаловаться, а он не хороший такой берет и заставляет меня голову ломать, вроде все правильно но ставки он только закрывает, а новых не открывает вообще не каких, может я где напортачил смысл сбил или не недодал смыслу? Советник работает так - 1 бар открытый ниже ма но закрытый выше ма это повод для ставки на рост в 0 баре, как только цена пересечет в обратном направлении эта повод закрыть приведущию ставку и открыть новую по напровлению. Добавлю еще я открываю ставку, он ее тупа вовремя пересечения закрывает, но новую не открывает хотя советник написан так что даже если нет ставки все равно он должен открыть хотя бы одну по направлению. Помогите решить проблему, при много благодарен заранее всем помогающим.

А логи где?
Vitaliy
65
Vitaliy 2011.06.21 05:45  
Сори логов нет, просто посмотрите по коду все там правельно или нет. Код не большой.
Victor Nikolaev
Модератор
14085
Victor Nikolaev 2011.06.21 05:58  
xameleon:
Сори логов нет, просто посмотрите по коду все там правельно или нет. Код не большой.

Надо бы ошибки в названии топика исправить, да и запятые не помешали бы
rlx
166
rlx 2011.06.21 06:06  
{buyTP=Ask+TakeProfit*Point;
   sellTP=Bid-TakeProfit*Point;}
if(StopLoss>0)
  {buySL=Ask-StopLoss*Point;
   sellSL=Bid+StopLoss*Point;}
   if(oBuy == 1)
   { 
   while(!IsTradeAllowed()) Sleep(100);
   OrderSend(Symbol(),OP_BUY,LotSelect(MaxRisk),Ask,3,buySL,buyTP,"лот открыт на покупку",0,0,CLR_NONE)
Цены не нормализованы -- как одна из причин
Avals
3159
Avals 2011.06.21 06:08  
xameleon:
Проблема такая решил написать советника для себя побаловаться, а он не хороший такой берет и заставляет меня голову ломать, вроде все правильно но ставки он только закрывает, а новых не открывает вообще не каких, может я где напортачил смысл сбил или не недодал смыслу? Советник работает так - 1 бар открытый ниже ма но закрытый выше ма это повод для ставки на рост в 0 баре, как только цена пересечет в обратном направлении эта повод закрыть приведущию ставку и открыть новую по напровлению. Добавлю еще я открываю ставку, он ее тупа вовремя пересечения закрывает, но новую не открывает хотя советник написан так что даже если нет ставки все равно он должен открыть хотя бы одну по направлению. Помогите решить проблему, при много благодарен заранее всем помогающим.


у вас функция ставка всё время с нулевыми параметрами вызывается (первые два).

Stavka(oBuy, oSell, TakeProfit, StopLoss);

oBuy, oSell инициализируются нулём, а затем в них заносится кол-во уже открытых позиций (а как их открыли то?)

Наверное нужно в первом случае (где бай) - Stavka(1, 0, TakeProfit, StopLoss); а где селл Stavka(0, 1, TakeProfit, StopLoss);

....
if(oBuy == 0 && Open[1]< ma && Close[1]> ma) 
{ 
   if (oSell == 1)
   {
      for(int j = OrdersTotal() - 1 ; j >= 0 ; j--)
      {
         if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES)) CloseOrder();
      }
    }
    Stavka(1, 0, TakeProfit, StopLoss);
}
if(oSell==0 && Open[1]>ma && Close[1]<ma)
{ 
   if (oBuy == 1)
   {
      for(int k = OrdersTotal()- 1 ; k>=0 ; k--)
      {
         if(OrderSelect(k,SELECT_BY_POS,MODE_TRADES)) CloseOrder();
      }
   }
   Stavka(0, 1, TakeProfit, StopLoss);
 }
.....
Vitaliy
65
Vitaliy 2011.06.21 06:54  
Avals:


у вас функция ставка всё время с нулевыми параметрами вызывается (первые два).

Stavka(oBuy, oSell, TakeProfit, StopLoss);

oBuy, oSell инициализируются нулём, а затем в них заносится кол-во уже открытых позиций (а как их открыли то?)

Наверное нужно где бай Stavka(1, 0, TakeProfit, StopLoss); а где селл Stavka(0, 1, TakeProfit, StopLoss);



спосибо большое! дествительно смысел был иммено тут потерян.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий