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

 
kokos4:
Подскажите пожалуйста кто может. Как закрыть сделку через  n (число например 5) свечей после ее открытия? Заранее время открытия сделки неизвестно.

Пересчитать n свечей в секунды, прибавить к времени открытия и сравнивать с текущим временем. Как только текущее время станет больше - приказ на закрытие.


////где-то в цикле перебора ордеров:
////
timer = OrderOpenTime()+PeriodSeconds()*n;

if(TimeCurrent()>timer) close(OrderTicket());
////////////////


 
kokos4:
Подскажите пожалуйста кто может. Как закрыть сделку через  n (число например 5) свечей после ее открытия? Заранее время открытия сделки неизвестно.

Количество свечей, прошедших с момента открытия ордера (не забываем его предварительно выделить):

iBarShift (_Symbol, _Period, OrderOpenTime());

дальше проще "пареной репы". ;)

[Deleted]  

Коллеги, у меня не работает (иначе не могу объяснить) функция NormalizeDouble. Выводит 16 цифр, хотя во втором параметре написал 5. Подскажите, пожалуйста, что не так в коде:

double i = 0.123456789112345;
void OnStart()
  {
         NormalizeDouble(i, 5);  
         Alert (i);
  }
 
JoinDoe: Коллеги, у меня не работает (иначе не могу объяснить) функция NormalizeDouble. 
double i = 0.123456789112345;
void OnStart()
  {
         Alert (NormalizeDouble (i, 5));
  }
[Deleted]  
TarasBY:
Спасибо! А теперь выдает 0.12346
 
JoinDoe:
Спасибо! А теперь выдает 0.12346
Правильно, с округлением до ближайшей!
[Deleted]  
Как бы сделать так, чтобы без округления?
 
JoinDoe:
Как бы сделать так, чтобы без округления?

Тогда она будет не нормализована и может вызвать ошибку! А почему Вас не устраивает более точная нормализованная цена?

Если Вам почему-то нужно, можно исходное число умножить на 100000, превратив в целое число, а потом умножить на _Point или на 0.00001:

double i = 0.123456789112345;
void OnStart()
  {
         Alert (NormalizeDouble (i*100000, 0)*_Point);
  }
[Deleted]  
borilunad:

Тогда она будет не нормализована и может вызвать ошибку! А почему Вас не устраивает более точная нормализованная цена?

Не знаю, выглядела как ошибка :)) Но если она более точна, тогда, конечно, лучше пользоваться этой, более точной ценой. Спасибо, помогли!
 
Есть функция WindowIsVisible(), показывающая состояние подокна - видимое или нет.
Как можно сделать подокно индикатора невидимым, желательно из кода? (если это вообще возможно)