вопросик про FREEZELEVEL - страница 2

 
sergeev:

вы зачем то голову себе ломаете на ровном месте.

зачем вам знать чему он конкретно равен ?

для вас главное его проверить - на расстояние до стопа от цена. и ВСЁ! конкретный цифирь вам и даром не нужен. также как и стопуровень.

......

скажите, а как вы в эксперте узнаете значение фриза ?

Прошу простить, ну совершенно не на ровном. Тут как у Козьмы Пруткова:"Если на клетке с тигром ты увидел надпись мышь - не верь глазам своим".

А если конкретно, то на моих ДЦ FreezeLevel {== MarketInfo(Symbol(), MODE_FREEZELEVEL) } всегда равен нулю. И тогда "полоса FreezeLevel" - для советника, написанного на основе нулевого значения сжимается в точку значения цены, что не соответсвует реальной действительности (на тех же самых ДЦ).

Так что проблема есть.

 
kegegk:

А если конкретно, то на моих ДЦ FreezeLevel {== MarketInfo(Symbol(), MODE_FREEZELEVEL) } всегда равен нулю. И тогда "полоса FreezeLevel" - для советника, написанного на основе нулевого значения сжимается в точку значения цены, что не соответсвует реальной действительности (на тех же самых ДЦ).

Так что проблема есть.

проблемы нет.

если вы получаете фриз как написали, и затем проверяете расстояния при попытке модификации, то проблемы нет.

разве у вас и после проверки генерируется ошибка фриза ?

 
sergeev:

проблемы нет.

если вы получаете фриз как написали, и затем проверяете расстояния при попытке модификации, то проблемы нет.

разве у вас и после проверки генерируется ошибка фриза ?


В том то и дело. Поэтому и полез его копать и вывод наладил через Comment(),а в init() вставил

FreezeL = MarketInfo(Symbol(), MODE_FREEZELEVEL) ;

а в start()

if (FreezeL != MarketInfo(Symbol(), MODE_FREEZELEVEL) )
{
Alert (FreezeL, "<>", MarketInfo(Symbol(), MODE_FREEZELEVEL) );
}
---

И тишина....

 
kegegk:


В том то и дело.

..


И тишина....

на бога надейся, да сам не плошай !
 
kegegk:


В том то и дело. Поэтому и полез его копать и вывод наладил через Comment(),а в init() вставил

FreezeL = MarketInfo(Symbol(), MODE_FREEZELEVEL) ;

а в start()

if (FreezeL != MarketInfo(Symbol(), MODE_FREEZELEVEL) )
{
Alert (FreezeL, "<>", MarketInfo(Symbol(), MODE_FREEZELEVEL) );
}
---

И тишина....


Ну и верно. И будет молчание. Что вложили в код, то и получаете. Смотрите, схематически это можно отобразить так:

FreezeL=Формула1

if(FreezeL !=Формула1), то выбросить окно с алертом

Но поскольку формула 1 всегда возвращает одно и то же значение, то FreezeL всегда равен этому значению и поэтому алерт не выбрасывается на экран. Так в чём же проблема-то?

 
kegegk:


В том то и дело. Поэтому и полез его копать и вывод наладил через Comment(),а в init() вставил

какой номер ошибки при модификации появляется?

 
drknn:


Ну и верно. И будет молчание. Что вложили в код, то и получаете. Смотрите, схематически это можно отобразить так:

FreezeL=Формула1

if(FreezeL !=Формула1), то выбросить окно с алертом

Но поскольку формула 1 всегда возвращает одно и то же значение, то FreezeL всегда равен этому значению и поэтому алерт не выбрасывается на экран. Так в чём же проблема-то?

Если с течением времени уровень изменили не в нашу пользу ( я понимаю, что вы с этим, как и с олдтиком не встречались в бою :) - то логично завопить.

код пугает - но вопрос остался...

;)

 
drknn:


Ну и верно. И будет молчание. Что вложили в код, то и получаете. Смотрите, схематически это можно отобразить так:

FreezeL=Формула1

if(FreezeL !=Формула1), то выбросить окно с алертом

Но поскольку формула 1 всегда возвращает одно и то же значение, то FreezeL всегда равен этому значению и поэтому алерт не выбрасывается на экран. Так в чём же проблема-то?


Там первый уровень рассчитывается в ините эксперта, а сравнение происходит уже в старте. Т.е., допустим, эксперт закинут на график - фриз левел раз в ините посчитали, далее в старте, уже на каждом тике в течение времени происходит расчет и сравнение текущего и ранее посчитанного уровней - если они не равны - то алерт бросаем на график - так, что у топикстартера здесь все верно.
 
kegegk:


В том то и дело. Поэтому и полез его копать и вывод наладил через Comment(),а в init() вставил

FreezeL = MarketInfo(Symbol(), MODE_FREEZELEVEL) ;

а в start()

if (FreezeL != MarketInfo(Symbol(), MODE_FREEZELEVEL) )
{
Alert (FreezeL, "<>", MarketInfo(Symbol(), MODE_FREEZELEVEL) );
}
---

И тишина....


Все верно - она и должна быть тишина, ведь стоп-левел не меняется с течением времени у Ваших ДЦ... :-)))

 
kegegk:


Вы не находите, что в Вашем ответе содержится легкое пртиворечие. На мой взгляд " в динамике запрашивать перед каждой операцией" значение равное нулю смысла не имеет ("в некоторых ДЦ так же даже во время новостей он = 0").

Судя по тем двум ДЦ, на которых я в настоящий момент пасусь, там он равен нулю на постоянной основе. А объективно явление в виде "полосы FreezeLevel" существует, и не вредно его учесть при написании советника (и хотелось бы "инвариантно" к ДЦ).

нет не нахожу, жизнь очень разнообразна. Нет никакого противоречия

во время новостей этот параметр может быть = 0 а может быть не равен... в режиме покоя этот параметр может быть = 0

а может и не равен - какой дилинг как настроит свои сервера, так и будет

сие неизвестно когда как и почему - вопрос к дилингам. А они скорее всего на этот вопрос Вам не ответят.

каждый дилинг сам решает когда и как и на сколько менять этот параметр

я на практике не раз набллюдал как параметр плавает у разных дилингов по разному, и есть такие у которых не наблюдается в то время у другого наблюдается

и от чего это зависит неизвестно.

поскольку эксперт, грамотно написанный, должен работать в любом дилинге, то грамотно будет этот параметр обрабатывать в любом случае!

не зависимо от того = 0 он в вашем дилинге или не равен <> 0

сейчас он =0 а завтра возьмут и начнут менять в зависимости от своих внутренних соображений


Вы посмотрите на FrezeLevel в динамике особенно при выходе новостей а не тогда когда на рынке штиль

когда на рынке штиль, то и в ДЦ о котором я говорил он тоже = 0

но как только начинаются новости этот параметр могут включать!

а могут и не включать, критерий его включения определяет ДЦ по своим умозаключениям.

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