Даже и мысли не возникало, что может быть целое... там-же диапазон от 1 до 3. И какой смысл в целочисленном представлении? Только что-бы быстрей работала?
Не знаю, думаю разработчики преследовали какуюто цель или не преследовали целей ...
Да, так я определяю новый бар и сейчас, на 509-м это работает стабильно.
Сегодня обновился на 537 и полезла ошибка при работе с массивом. Открыл доку новую, а там да, два варианта использования Bars.
Поэтому и спросил здесь. Если не затруднит, подскажите плиз еще рабочий вариант определения нового бара.
Спасибо..
void Fun_New_Bar() // Ф-ия обнаружения ..
{ // .. нового бараstaticdatetime New_Time=0; // Время текущего бара
New_Bar=false; // Нового бара нетif(New_Time!=Time[0]) // Сравниваем время
{
New_Time=Time[0]; // Теперь время такое
New_Bar=true; // Поймался новый бар
}
Но нужно понимать что при смене периода графика функция даст сбой ... Сейчас убегаю нет времени кодить, сбой правится через iTime()
Период у меня на лету не меняется, так что пока не актуально.. :-)
Я так понимаю эта функция на каждом тике будет работать, не будет медленнее, чем мой вариант?
Ваш вариант нельзя использовать, вы запрашиваете количество баров в истории и сравниваете, да по логике в этом есть смысл, но при том какую историю дают нам брокеры, такой подход нельзя использовать ... Он просто не будет правильно работать ..
В истории часто бывают дыры, у многих брокеров период истории разный, у кого то с 1970 года а у кого то с начала 2012, количество баров будет разное, вы смените таймфрейм на меньший или на больший количество баров так же изменится, терминал прокачает историю или закроются дыры количество так же измениться ....
Ваш вариант нельзя использовать, вы запрашиваете количество баров в истории и сравниваете, да по логике в этом есть смысл, но при том какую историю дают нам брокеры, такой подход нельзя использовать ... Он просто не будет правильно работать ..
В истории часто бывают дыры, у многих брокеров период истории разный, у кого то с 1970 года а у кого то с начала 2012, количество баров будет разное, вы смените таймфрейм на меньший или на больший количество баров так же изменится, терминал прокачает историю или закроются дыры количество так же измениться ....
какая разница сколько там баров с 1970 или с 2012 года? нам то надо определить появление новог бара. при смене таймфрейма, происходит переинициализация, ExpertBars=Bars; появился новый бар ExpertBars!=Bars так что код bool isNewBar=false;
if (ExpertBars!=Bars) { ExpertBars=Bars; isNewBar=true; } рабочий
какая разница сколько там баров с 1970 или с 2012 года? нам то надо определить появление новог бара. при смене таймфрейма, происходит переинициализация, ExpertBars=Bars; появился новый бар ExpertBars!=Bars так что код bool isNewBar=false;
if (ExpertBars!=Bars) { ExpertBars=Bars; isNewBar=true; } рабочий
Вот это новость! Так привык к пятерошной double:
Даже и мысли не возникало, что может быть целое... там-же диапазон от 1 до 3. И какой смысл в целочисленном представлении? Только что-бы быстрей работала?
Не знаю, думаю разработчики преследовали какуюто цель или не преследовали целей ...
Да, так я определяю новый бар и сейчас, на 509-м это работает стабильно.
Сегодня обновился на 537 и полезла ошибка при работе с массивом. Открыл доку новую, а там да, два варианта использования Bars.
Поэтому и спросил здесь. Если не затруднит, подскажите плиз еще рабочий вариант определения нового бара.
Спасибо..
Но нужно понимать что при смене периода графика функция даст сбой ... Сейчас убегаю нет времени кодить, сбой правится через iTime()
Можете описать установленные в тестере стратегий настройки, входные параметры, модель генерации тиков... + приложить тестируемого эксперта.
Все это заявкой в сервисдеск.
Заявка #882960
Разработчикам
Просьба реализовать REASON_TEMPLATE как причину деинициализации эксперта.
Конечно также хочется иметь "полный список" все возможных причин, не отличающийся от МТ5.
Но нужно понимать что при смене периода графика функция даст сбой ... Сейчас убегаю нет времени кодить, сбой правится через iTime()
Спасибо! Примерно все понятно..
Период у меня на лету не меняется, так что пока не актуально.. :-)
Я так понимаю эта функция на каждом тике будет работать, не будет медленнее, чем мой вариант?
Спасибо! Примерно все понятно..
Период у меня на лету не меняется, так что пока не актуально.. :-)
Я так понимаю эта функция на каждом тике будет работать, не будет медленнее, чем мой вариант?
Ваш вариант нельзя использовать, вы запрашиваете количество баров в истории и сравниваете, да по логике в этом есть смысл, но при том какую историю дают нам брокеры, такой подход нельзя использовать ... Он просто не будет правильно работать ..
В истории часто бывают дыры, у многих брокеров период истории разный, у кого то с 1970 года а у кого то с начала 2012, количество баров будет разное, вы смените таймфрейм на меньший или на больший количество баров так же изменится, терминал прокачает историю или закроются дыры количество так же измениться ....
Выпустили 538 билд с исправлениями.
В частности поправлена ошибка с iVolume
Ваш вариант нельзя использовать, вы запрашиваете количество баров в истории и сравниваете, да по логике в этом есть смысл, но при том какую историю дают нам брокеры, такой подход нельзя использовать ... Он просто не будет правильно работать ..
В истории часто бывают дыры, у многих брокеров период истории разный, у кого то с 1970 года а у кого то с начала 2012, количество баров будет разное, вы смените таймфрейм на меньший или на больший количество баров так же изменится, терминал прокачает историю или закроются дыры количество так же измениться ....
какая разница сколько там баров с 1970 или с 2012 года? нам то надо определить появление новог бара. при смене таймфрейма, происходит переинициализация, ExpertBars=Bars; появился новый бар ExpertBars!=Bars так что код
bool isNewBar=false;
if (ExpertBars!=Bars) {
ExpertBars=Bars;
isNewBar=true;
}
рабочий
какая разница сколько там баров с 1970 или с 2012 года? нам то надо определить появление новог бара. при смене таймфрейма, происходит переинициализация, ExpertBars=Bars; появился новый бар ExpertBars!=Bars так что код
bool isNewBar=false;
if (ExpertBars!=Bars) {
ExpertBars=Bars;
isNewBar=true;
}
рабочий
тогда удачи Вам ))))