Автообновление скрипта, возможно?

 

Приветствую идейных бойцов за дензнаки!

Вопрос чайника, далекого от вдумчивого программирования. Есть вот такой скрипт расчета лота:

 

#property indicator_chart_window

input int StopLoss = 200;

input double Procent_Loss = 1;

double TickValue;

void start()

  {

  OnTick();

  }

void OnTick()

  {

TickValue = MarketInfo(_Symbol,MODE_TICKVALUE);

Comment(" ",StopLoss/10,"п  ",Procent_Loss,"%  ", AccountBalance()/100*Procent_Loss/StopLoss/TickValue);

  } 

 

Существует куча индикаторов, советников по манименеджменту, но они занимают много пространства на графике и содержат кучу не нужной мне информации. А этот скрипт меня полностью устраивает, но вот беда что бы он пересчитался необходимо произвести действия с графиком(сменить таймфрем)

Есть ли возможность заставить его пересчитываться периодически или регулярно?

 

Есть ли возможность заставить его пересчитываться периодически или регулярно?

Да, такая возможность есть. Для этого и существуют индикаторы. Они не обязательно должны отображаться в подокне. Могут также отображать только комментарий и обновлять его по тикам/по времени.
 
Может тогда кто подправит, если это не сложно. Заранее спасибо!
 
deni:
Может тогда кто подправит, если это не сложно. Заранее спасибо!

Файлы:
hz.mq4  2 kb
 
Alexey Kozitsyn:

Попробовал, поставил. Все равно самостоятельно не изменяется при изменении баланса
 
deni:
Попробовал, поставил. Все равно самостоятельно не изменяется при изменении баланса

У меня все самостоятельно изменилось.

 

 

 
deni:

Приветствую идейных бойцов за дензнаки!

Вопрос чайника, далекого от вдумчивого программирования. Есть вот такой скрипт расчета лота:

 

#property indicator_chart_window

input int StopLoss = 200;

input double Procent_Loss = 1;

double TickValue;

void start()

  {

  OnTick();

  }

void OnTick()

  {

TickValue = MarketInfo(_Symbol,MODE_TICKVALUE);

Comment(" ",StopLoss/10,"п  ",Procent_Loss,"%  ", AccountBalance()/100*Procent_Loss/StopLoss/TickValue);

  } 

 

Существует куча индикаторов, советников по манименеджменту, но они занимают много пространства на графике и содержат кучу не нужной мне информации. А этот скрипт меня полностью устраивает, но вот беда что бы он пересчитался необходимо произвести действия с графиком(сменить таймфрем)

Есть ли возможность заставить его пересчитываться периодически или регулярно?

Добавь пересчёт баланса по событиям на чарте :

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam
                  )

  {  OnTick();

  }

и функция у тебя неудачно названна :-) вместо OnTick() логичнее какой-нить "CheckBalance()"
 
Alexey Kozitsyn:

У меня все самостоятельно изменилось.

 

 У меня через раз, то обновляется , то нет)

 
Лучше в OnTimer.
 

deni:

Из документации: Функция OnCalculate() вызывается только в пользовательских индикаторах при необходимости произвести расчет значений индикатора по событию Calculate. Обычно это происходит при поступлении нового тика по символу, для которого рассчитывается индикатор.

Никаких через раз/два быть не может. Ценовые данные изменились - пришло событие - обновился индикатор (конечно, если по логике оно должно быть). 

 

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