Страница 1 из 1

Вероятноя ошибка в SetCurrencyAndTimeFrame()

Добавлено: Чт ноя 18, 2010 12:32 pm
Sharx
Столкнулся с такой проблемой:

У меня два окна валют Sber и Sber5 с тайфреймами 1мин и 5мин соответсвенно. В процедуре GetSingleTick()

//Изменяем одну координату обекта, т.е. скрываем в 0
if j = 1 then
begin
SetCurrencyAndTimeFrame('Sber1', 1);
if not(ObjectExist('r1')) then
ObjectSet('r1', 0);
end
else
begin
SetCurrencyAndTimeFrame('Sber5', 5);
if not(ObjectExist('r5')) then
ObjectSet('r5', 0);
end;

//Опредкляем вылюту и фрейм т.к. расчет J ведется по этим данным
SetCurrencyAndTimeFrame('Sber1', 1);
//Определяем значение J
j := GetJ();

//Рисуем объект в одном из окон или изменяем его положение
if j = 1 then
begin
SetCurrencyAndTimeFrame('Sber1', 1);
if not(ObjectExist('r1')) then
ObjectCreate('r1', obj_Ray, 0, t1, r1, t2, r2);
else
ObjectSet('r1', r1);
end
else
begin
SetCurrencyAndTimeFrame('Sber5', 5);
if not(ObjectExist('r5')) then
ObjectCreate('r5', obj_Ray, 0, t1, r1, t2, r2);
else
ObjectSet('r5', r1);
end;

В итоге у меня рисует либо втом либо в первом либо во втором окне, мало того, после того как начинает рисовать в окне Sber5 все расчеты J идут ошибочнами и в журнале стратегии отписывается Error Strategy: Chanel, такое ощущение что SetCurrencyAndTimeFrame('Sber1', 1); перед строкой j := GetJ(); не отрабатывется. Или это может быть связано с функцией ObjectCreate('r1', obj_Ray, 0, t1, r1, t2, r2); где 0 нужно изменить на значение окна?

Есть ли возможность в программе определять объект видимум или не видимым в одном из таймфреймов, как это делается в МТ4 - это облегчело бы множество задач...

Заранее благодарен!

Вопрос снят

Добавлено: Пт ноя 19, 2010 4:13 pm
Sharx
Вопрос снят,
При использовании явного задания параметров все работает пока нормально, проблем только в том случае когда

SetCurrencyAndTimeFrame('Sber', 1); задается вот в таком виде SetCurrencyAndTimeFrame(Symbol, TimeFrame);, где
Symbol := 'Sber';
TimeFrame := 1;
такое ощущение что параметры Symbol и TimeFrame изменяются при вызове процедуры с такими параметрами
SetCurrencyAndTimeFrame('Sber5', 5);