Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 673

 
Irina_:

Здравствуйте. Кто нибудь может показать как правильно вставить в советник :    Comment(TimeToStr(TimeLocal(),TIME_SECONDS));

У меня получается или время (локальное ) обновляется только с новым тиком (интернет у нас плохой) , или время правильно ,а советник перестаёт работать 


В OnTimer() надо часы вписывать, чтобы от тиков не зависеть.
[Deleted]  

 OnTimer() не пользовалась никогда .Как это будет выглядеть? Я из начинающих.

Вот сейчас сделала так: 


int start()

{  здесь код сова

- - - - - - - - - - - - -  - - -

в конце вставила :

  while(!IsStopped())  

   {

    Comment(TimeToStr(TimeLocal(),TIME_SECONDS) +"      "+TimeToStr(TimeCurrent(),TIME_SECONDS) );

   }  

  return(0);

 }

Вроде стало показывать ,но не сразу комент появляется на графике через минут 15 когда советник уже открыл пару ордеров .Почему?

 

 
Irina_:

 OnTimer() не пользовалась никогда .Как это будет выглядеть? Я из начинающих.

Вот сейчас сделала так: 


int start()

{  здесь код сова

- - - - - - - - - - - - -  - - -

в конце вставила :

  while(!IsStopped())  

   {

    Comment(TimeToStr(TimeLocal(),TIME_SECONDS) +"      "+TimeToStr(TimeCurrent(),TIME_SECONDS) );

   }  

  return(0);

 }

Вроде стало показывать ,но не сразу комент появляется на графике через минут 15 когда советник уже открыл пару ордеров .Почему?

 


int OnInit()
{

EventSetTimer(нужное количество секунд);
   




   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   EventKillTimer();
   



}
//+------------------------------------------------------------------+
void OnTick()
{

   
}
//+------------------------------------------------------------------+
void OnTimer()
{


Comment(TimeToStr(TimeLocal(),TIME_SECONDS));
} //+------------------------------------------------------------------+
[Deleted]  
Мерси, буду пробовать 
[Удален]  
vadynik:

Что бы значение не терялось нужна глобальная переменная, вынеси ее объявление за пределы OnTick() или сделай ее статической
Выносить и делать глобальной как раз не надо, достаточно сделать статической. Внутри функции. Рядом с position_exists.
 
simpleton:
Выносить и делать глобальной как раз не надо, достаточно сделать статической. Внутри функции. Рядом с position_exists.

Так а я что написал? ИЛИ
 
rusa:
 Советники из метатрейдер 4  работают ли в терминале для android ? 
Нет. Там вообще не предусмотрена работа советников.
 
Mr.Profit:

Оказывается, SymbolSelect("AUDUSD", true) возвращает true только если AUDUSD нету в MarketWatch - т.е. при добавлении пары в MarketWatch. Как только пара оказывается в MarketWatch, последующие вызовы возвращают false.

Такое поведение совершенно не состыкуется с мануалом по этой функции. 

 

Пришлось извращаться через самописанную функцию, которая сканирует все SymbolName(i, true) для i=0..SymbolsTotal(true).

Всё стыкуется.

второй параметр в функции является переключателем.

1. Если посылаете true, значит нужно выбрать символ в Обзоре рынка.

1.1.Если его там ещё нет, то он будет выбран и функция вернёт true.

1.2. Если он там уже есть, то функция не отработает (выбирать нечего) и вернёт false.

2. Если посылаете false, значит нужно убрать символ из Обзора рынка.

2.1. Если он там есть и нет открытых графиков и(или) открытых позиций по этому символу, то символ будет удалён из обзора рынка и функция вернёт true.

2.2. Если он там есть, но есть открытые графики с этим символом и(или) есть открытые позиции с ним, то функция не отработает и вернёт false.

2.3. Если его там нет, то функция не отработает (убирать нечего) и вернёт false.

Вот как-то так...

 

 Вопрос к знающим . У  меня проблема  с ошибкой 129. Я разрабатывал систему как програмист с одним человекам как двигателем идей . Я не могу понять я и он торговлю ведем у двух разных брокерах на счетах с инстант исполнением.  уменя все время выскакивает ошибка 129. у него  все нормально или реквота или нормальный вход. У меня же все время 129 ошибка( неправильные цены). Как так может быть когда один и тот же советник У него  зарабатывает а у меня постоянно 129 ошибка.  Обидно блин я програмировал этого советника , а ордера не открываются у меня а у него прибыль идет. В чем проблема? Какой то нонсес получается.

PS:  Нормализация Цены  прм открытии ордера выполнена   ms=OrderSend(Symbol(),OP_BUY,NormalizeDouble(Lot,lotdigits),NormalizeDouble(Ask,Digits),NormalizeDouble(отклонение1-Бу_Start-delta_spred,0),0,0,"",Magic,0,Blue);

 

129 - неправильная цена. А зачем цену нормализовывать? Вы её рассчитываете? И что за странное проскальзывание

NormalizeDouble (отклонение1-Бу_Start-delta_spred,Digits) ???это значение должно быть int

Цену берите лучше как price=MarketInfo(NULL,MODE_ASK) и нормализовывать нет необходимости.