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

 

Т.е. будет примерно так:

// Простой параболик. Переворотная стратегия.
// В условиях, когда в терминале уже есть открытые позиции по другим инструментам.

input double TakeProfit    =2500;
input double StopLoss      =400;
input double Lots          =1;
input double TrailingStop  =100;

input double Parameter1    =0.02; // Параметры индикатора PSAR
input double Parameter2    =0.2;
   
static int ticket_sell     =0;

void OnTick()
{
 

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

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

 
Irina_:

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

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


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

 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));
} //+------------------------------------------------------------------+
 
Мерси, буду пробовать 
 
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.

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

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