[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 420

 

объяви переменную

bool ret;

перед циклом

 

snowman647, да-а?)

с компиляцией всё впорядке, что то не так в алгоритме.

 
Summer писал(а) >>

snowman647, да-а?)

с компиляцией всё впорядке, что то не так в алгоритме.

Наверно надо смотреть как открываются новые позиции

 
Народ, кто может подсказать. Вчера делал советника по уровням Мюррея. Там смысл такой, что от уровней 8/0 и 0/8 надо продавать/покупать, а TP на пивот. Я использовал ObjectGet() чтобы получить линии, т.к. другого способа не нашел. Проблема в том, что если снижается волатильность, то уровни перерисовываются, и что самое главное автоматически меняется и TP. А менятся по ТС не должен. А вот как сделать чтоб TP не менялся? Заранее благодарен за помощь.
 
Vinin >>:

Наверно надо смотреть как открываются новые позиции

оно то открывает, а закрывать не хочет)

с алгоритмом закрытия что то не то, наверно.

код простейший, неужели никто из опытных прогеров не может понять в чём дело?)

 
Доброго всем дня! Я тестирую на демоаккаунте эксперта в реальном времени(терминал работает 24 часа в сутки). У меня вопрос! метатрейдер в состоянии выдать статистику по реально работающему советнику на основании тех операций которых он делал(естественно я не имею ввиду тут back test)??? как тогда это сделать??? ВСЕМ СПАСИБО!
 
Summer писал(а) >>

оно то открывает, а закрывать не хочет)

с алгоритмом закрытия что то не то, наверно.

код простейший, неужели никто из опытных прогеров не может понять в чём дело?)

Если при открытии не используется Магик, то как можно закрывать по Магику. Потому и вопрос появляется.

 

Vinin, уважаемый) магик то стоит))

extern double Lots=0.1;

int start()
  {

bool ret;

double Ind11=iMA(NULL,0,12,0,0,0,0);
double Ind12=iMA(NULL,0,12,0,0,0,1);

 if(Ind11>Ind12)
  {
   
  OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",16384,0,Green);
   
  }

 if(Ind11<Ind12)
  {
   


for(ic=OrdersTotal()-1;ic>=0;ic--)
  {
  if(OrderSelect(ic,SELECT_BY_POS,MODE_TRADES)==false) continue;
  if (OrderSymbol()==Symbol() && OrderMagicNumber()==16384)
  {
  if (OrderType()==OP_BUY)
  OrderClose(OrderTicket(),OrderLots(),Bid,5,CLR_NONE);
   
  if (OrderType()==OP_SELL)
  OrderClose(OrderTicket(),OrderLots(),Ask,5,CLR_NONE);
  }}
   


  }

  return(0);
  
  }

 
Necron >>:
Народ, кто может подсказать. Вчера делал советника по уровням Мюррея. Там смысл такой, что от уровней 8/0 и 0/8 надо продавать/покупать, а TP на пивот. Я использовал ObjectGet() чтобы получить линии, т.к. другого способа не нашел. Проблема в том, что если снижается волатильность, то уровни перерисовываются, и что самое главное автоматически меняется и TP. А менятся по ТС не должен. А вот как сделать чтоб TP не менялся? Заранее благодарен за помощь.

исправить алгоритм расчёта линий и пивота

 
Summer >>:

Vinin, уважаемый) магик то стоит))

extern double Lots=0.1;

int start()
{

bool ret;

double Ind11=iMA(NULL,0,12,0,0,0,0);
double Ind12=iMA(NULL,0,12,0,0,0,1);

if(Ind11>Ind12)
{

OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",16384,0,Green);

}

if(Ind11<Ind12)
{



for(ic=OrdersTotal()-1;ic>=0;ic--)
{
if(OrderSelect(ic,SELECT_BY_POS,MODE_TRADES)==false) continue;
if (OrderSymbol()==Symbol() && OrderMagicNumber()==16384)
{
if (OrderType()==OP_BUY)
OrderClose(OrderTicket(),OrderLots(),Bid,5,CLR_NONE);

if (OrderType()==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),Ask,5,CLR_NONE);
}}



}

return(0);

}

нормализуйте цену закрытия вместо Ask дайте NormalizeDouble(Ask, Digits), вместо Bid - NormalizeDouble(Bid, Digits),и всё получится

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