Создание пользовательского символа не привязанного к времени

 
Здравствуйте. Интересует создание пользовательского символа не привязанного к времени, т.е. формирование нового бара происходит не по времени, а по другим критериям, например кол-во пройденных пунктов (прим. как в ренко). А время на графике символа выступает в виде тикового объема, количество секунд (миллисекунд) на формирование одного бара.
 
Импорт исходные данные есть, но при импорте баров все равно все пересчитывается на привязку к времени
 

нельзя это сделать

пользовательский символ это файл на диске с определенным форматом: 

- заголовок файла

- данные: это структура в которой должны быть обязательно заполнены поля время открытия бара, цена открытия/закрытия/максимальная/минимальная , обьем тиковый/реальный

если какие-либо  данные не внести, то терминал не будет читать этот файл - "скажет битый файл"


ЗЫ: в последних билдах МТ4/МТ5 - еще проблема со временем появилась - время между барами должно быть кратно минуте - если меньше минуты, то терминал пишет об ошибке данных в этом баре и не выводит его

 

Как вариант, есть мысль, пересчитывать время для каждого созданного бара, т.е. каждый новый бар имеет текущее время(минуту), а предыдущие сдвигаются(пересчитываются), но такой пересчет требует ресурсов и времени, и тестирование на таком символе придется проводить аж с 1811 года! )))

 
Igor Makanu:

нельзя это сделать

пользовательский символ это файл на диске с определенным форматом: 

- заголовок файла

- данные: это структура в которой должны быть обязательно заполнены поля время открытия бара, цена открытия/закрытия/максимальная/минимальная , обьем тиковый/реальный

если какие-либо  данные не внести, то терминал не будет читать этот файл - "скажет битый файл"

Битым он его не называет, но пересчитывает все на временную шкалу


 
Michael Dolgushin:

Битым он его не называет, но пересчитывает все на временную шкалу


называет - в журнале терминала должны быть записи

но сути это не меняет - решите каким образом будете привязывать очередность баров к времени открытия бара

да... если Ваша задача под МТ5 - там вообще вариантов нет, нужно формировать М1-бары, т.е. время между барами должно быть по одной минуте, хотя если не переключать ТФ (т.е. использовать М1) можно и пропуски баров

 
Igor Makanu:

называет - в журнале терминала должны быть записи

но сути это не меняет - решите каким образом будете привязывать очередность баров к времени открытия бара

да... если Ваша задача под МТ5 - там вообще вариантов нет, нужно формировать М1-бары, т.е. время между барами должно быть по одной минуте, хотя если не переключать ТФ (т.е. использовать М1) можно и пропуски баров

В выше описанном выше случае только на кол-во тиков матерится, т.к. эти данные не представлены (>0 должно быть).

" да... если Ваша задача под МТ5 - там вообще вариантов нет"....а жаль конечно, что на такой сильной платформе так ограничено представление/масштабирование данных.

P.S. В Java терминале  fxTrade Practice есть даже 5-ти секундный ТФ, но терминал ущербный он какой-то.

 
Michael Dolgushin:

....а жаль конечно, что на такой сильной платформе так ограничено представление/масштабирование данных.

полностью поддерживаю - несколько раз были интересные предложения по созданию нестандартных ТФ или написанию период-конвертера под МТ5, но увы не получится

ЗЫ: да и было время - интересовался Ренко-графиками, но под МТ5 не захотел даже делать - просто нарисовать чарт М1 могу, но смысла нет - уже посмотрел в МТ4, а хотелось бы протестировать в МТ5 и сопоставить с реальным чартом символа

 

Забивать в советника этот "костыль", пересчитывать все налету и править торговые индюки для расчетов по собственным данным. Только такие мысли....

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

 
Michael Dolgushin:

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

если кратко, что такое индикатор в МТ, то так:

индикатор это индикаторный буфер, который привязан по индексам к каждому номеру бара на чарте

буфер это просто массив double

терминал сам изменяет размеры этого буфера при поступлении нового бара - задача программиста просто присваивать значения определённому индексу этого массива

прочитать файл из индикатора и заполнить индикаторные буфера - не проблема


но Вам же тестер в итоге будет интересен? - там будет проблема - тестер не дает подглядывать в будущее, и Вы не сможете заполнить весь индикатор данными - не будет просто баров которые еще не открыл тестер, а если каждый раз читать файл по появлению нового бара, то смысла нет - долго и зачем тогда индикатор?

 
Igor Makanu:

если кратко, что такое индикатор в МТ, то так:

индикатор это индикаторный буфер, который привязан к каждому бару на чарте

буфер это просто массив double

терминал сам изменяет размеры этого буфера при поступлении нового бара - задача программиста просто присваивать значения определённому индексу этого массива

прочитать файл из индикатора и заполнить индикаторные буфера - не проблема


но Вам же тестер в итоге будет интересен? - там будет проблема - тестер не дает подглядывать в будущее, и Вы не сможете заполнить весь индикатор данными - не будет просто баров которые еще не открыл тестер, а если каждый раз читать файл по появлению нового бара, то смысла нет - долго и зачем тогда индикатор?

Читать из файла не обязательно, исходные данные в таком случае можно сгенерить налету.

Вот в тот же самый пресловутый "iMA("EURUSD", PERIOD_CURRENT, MAPeriod,0, MODE_SMA, PRICE_CLOSE)" вместо " "EURUSD",PERIOD_CURRENT" передать double буфер OHLC нужным для расчета размером (напр. MAPeriod+1) и получить результат. Этого достаточно будет.... но ведь для этого нужно перелопатить индюк и загонять уже через iCustom или подключаемым модулем, а сколько их разных может потребоваться в ТС, все перелопачивать. Времяемко.

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