Помощь разработчикам. - страница 12

 
Реter Konow:


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

Если вы имели ввиду что то другое, поясните.

4. См. пункт 2. Требуется слишком много места. Файл будет расти как "на дрожжах". Его чтение будет тормозить всю программу. Только кольцевой буфер с небольшим текущим периодом.

5. Визуализация данных стакана внутри советника или индикатора возможна после построения вышеупомянутого буфера.


2. Не надо мыслить - надо просто записать.

Например, 4 байта время 4 байта цена 4 байта значение, глубина 10(20), 10раз в секунду новые данные - 200мб сутки, 1гб неделя, 1тб диск 1000 недель - 20лет(2года при обновлении 100раз в секунду), приемлемые для сегодня значения. (про кольцевой буфер бред - "кольцевой буфер" как тема популяризирующая программирование mql или пример для предмета информатики имеет место быть(исходя из статей тут), как решение - очень спорно)

4. "Запись истории" это не один файл, например результирующие файлы по часу, а временные файлы скидывать по минуте.

5. Не надо строить ни какие буфера, надо 1) корректно по файловым операциям записать историю, 2) визуализировать 1-н бар(минутный) 3)визуализировать  историю. 

Т.е. взять готовые решения, обрезать, добавить, изменить и слепить. Раз всплыл стакан, а Вы уже подобным заморачивались(стаканом), Вам и карты в руки, тем более руки профессионала.

 
Реter Konow:

1. input в переводе с анг. "ввод".

 "trail" - это сокращение слова "trailing" - то есть Трейлинг стоп.

"hedge" - означает хеджинг. Ознакомьтесь более подробно с этим понятием в литературе по трейдингу.

2. Тейкпрофит грид я уже объяснял выше. Дословно - "Тейкпрофит сетки". Не знаю точно, что это значит. (см.выше).

Тейкпрофит хедж - это тейкпрофит хеджинговой позиции.

3. "Сlose at stop" это закрытие по стопу. "Сlose" - просто закрытие.

3. "Сlose at stop" это закрытие по стопу.Значит мне  не смогут пудрить мозги ,                   закрытия по тейку
 
Petr Doroshenko:

2. Не надо мыслить - надо просто записать.

Например, 4 байта время 4 байта цена 4 байта значение, глубина 10(20), 10раз в секунду новые данные - 200мб сутки, 1гб неделя, 1тб диск 1000 недель - 20лет(2года при обновлении 100раз в секунду), приемлемые для сегодня значения. (про кольцевой буфер бред - "кольцевой буфер" как тема популяризирующая программирование mql или пример для предмета информатики имеет место быть(исходя из статей тут), как решение - очень спорно)

4. "Запись истории" это не один файл, например результирующие файлы по часу, а временные файлы скидывать по минуте.

5. Не надо строить ни какие буфера, надо 1) корректно по файловым операциям записать историю, 2) визуализировать 1-н бар(минутный) 3)визуализировать  историю. 

Т.е. взять готовые решения, обрезать, добавить, изменить и слепить. Раз всплыл стакан, а Вы уже подобным заморачивались(стаканом), Вам и карты в руки, тем более руки профессионала.

Вы лучше меня знаете, что нужно делать. Делайте. Я только высказываю свое мнение и если могу, - помогаю найти решение.


Например, 4 байта время 4 байта цена 4 байта значение, глубина 10(20), 10раз в секунду новые данные - 200мб сутки, 1гб неделя, 1тб диск 1000 недель - 20лет(2года при обновлении 100раз в секунду), приемлемые для сегодня значения.

 "Запись истории" это не один файл, например результирующие файлы по часу, а временные файлы скидывать по минуте.


То есть, вы предлагаете построить гигантскую файловую систему, внутри которой будут постоянного появлятся новые файлы с записанной историей каждой минуты? Далее, построить функционал, который будет открывать нужный файл, считывать данные и визуализивать их? И все это вы предлагаете сделать мне? :)
 

Petr Doroshenko:


4. "Запись истории" это не один файл, например результирующие файлы по часу, а временные файлы скидывать по минуте.

5. Не надо строить ни какие буфера, надо 1) корректно по файловым операциям записать историю, 2) визуализировать 1-н бар(минутный) 3)визуализировать  историю. 

Т.е. взять готовые решения, обрезать, добавить, изменить и слепить. Раз всплыл стакан, а Вы уже подобным заморачивались(стаканом), Вам и карты в руки, тем более руки профессионала.

1. Что значит "корректно по файловым операциям записать историю"? Написать функционал записывающий историю стакана в файл?

2. Что значит " визуализировать 1-н бар(минутный) "? Как визуализировать?

3. Что имеется ввиду под визуализацией истории? Визуализировать историю изменения значений объемов лимитников в стакане считывая ее из файла? В каком виде ее визуализировать?. 

4. Метод "взять готовые решения, обрезать, добавить, изменить и слепить" никогда не использую. Ничего качественного не получается.


Мой стакан брал использовал "живые", а не записанные данные, которые получал от другой платформы. Он ничего не визуализировал и не записывал. 

 

Petr Doroshenko:

(про кольцевой буфер бред - "кольцевой буфер" как тема популяризирующая программирование mql или пример для предмета информатики имеет место быть(исходя из статей тут), как решение - очень спорно)


Поверьте, в вашем случае, кольцевой буфер построить намного проще, а использовать для визуализации куда удобнее.

 
Реter Konow:

Поверьте, в вашем случае, кольцевой буфер построить намного проще, а использовать для визуализации куда удобнее.

Если нужно визуализировать изменения в стакане за 1 минутный бар, то не нужно городить такой сложный огород с гигантской файловой системой и использванием гигабайт памяти. Сделайте кольцевой буфер с текущим периодом в минуту и визуализируйте данные на ходу, без обращения к файлу. Данные за больший период времени вы все равно проанализировать не сможете. Это будут бесконечные кривые в которых вы не найдете никакого смысла. (имхо).
 
Реter Konow:

1. Что значит "корректно по файловым операциям записать историю"? Написать функционал записывающий историю стакана в файл?

2. Что значит " визуализировать 1-н бар(минутный) "? Как визуализировать?

3. Что имеется ввиду под визуализацией истории? Визуализировать историю изменения значений объемов лимитников в стакане считывая ее из файла? В каком виде ее визуализировать?. 

4. Метод "взять готовые решения, обрезать, добавить, изменить и слепить" никогда не использую. Ничего качественного не получается.


Мой стакан брал использовал "живые", а не записанные данные, которые получал от другой платформы. Он ничего не визуализировал и не записывал. 


1. Например, снапшоты идут 4-е раза в секунду,берем 10-ть раз в секунду - 10раз в секунду дергать файловые операции не совсем корректно. Ok, запись данных в файл раз в минуту назовем функционалом. Ближайший аналог это штатный периодконвертер и различные реализации ренки. Можно в отдельном экране писать скринкастом стакан.

2. Например прочитать его в замедленном темпе, или вывести последовательно все снапшоты за минуту, или как полумера сразу рисовать онлайн по последнему бару как в подвальных ренках.

3. Вы уже что то рисовали - каким угодно удобным для вас образом. - Это не первая задача, а самая последняя, где для примера посмотреть указал - это приятная а не необходимая функция. 

4. Напишите заново виндоус, следуя Вашей логике, у Вас должно получиться качественнее.

Реter Konow:
Если нужно визуализировать изменения в стакане за 1 минутный бар, то не нужно городить такой сложный огород с гигантской файловой системой и использванием гигабайт памяти. Сделайте кольцевой буфер с текущим периодом в минуту и визуализируйте данные на ходу, без обращения к файлу. Данные за больший период времени вы все равно проанализировать не сможете. Это будут бесконечные кривые в которых вы не найдете никакого смысла. (имхо).

Еще раз, освещенная тут в статьях тема "кольцевой буфер" и что можно от него хотеть практически не представляет  интереса(кроме реализаций оппа), потому что, скопировать массив туда-обратно в/из временного массива со смещением в один элемент решает большинство прикладных задач(возможно даже все), которые возлагают на тему "кольцевой буфер". Если кому-то нравится другой ..... способ, пожалуйста.

При определенных условиях график цены не имеет смысла. 10 лет стакан хоть с какими нибудь объемами в mt4 не имел смысла, однако он появился приложением с dll, стакан с объемами только в mt5 на бирже.

Фактически необходимо несколько единичных минутных  баров за 10-12 часов . Очевидно, чтобы в конце дня посмотреть на эти минутные бары, надо записать все бары за день. Очевидно, чтобы в конце недели посмотреть несколько баров - необходимо записать все бары(дневных интервалов) за неделю, в конце месяца - записать за месяц. Очевидно, что мегабайты данных для последующей аналитики должны хранятся на энергонезависимой памяти - в большинстве случаев это жесткий диск. Гигабайты жесткого диска давно не являются признаком гигантизма.

 
Petr Doroshenko:

1. Например, снапшоты идут 4-е раза в секунду,берем 10-ть раз в секунду - 10раз в секунду дергать файловые операции не совсем корректно. Ok, запись данных в файл раз в минуту назовем функционалом. Ближайший аналог это штатный периодконвертер и различные реализации ренки. Можно в отдельном экране писать скринкастом стакан.

2. Например прочитать его в замедленном темпе, или вывести последовательно все снапшоты за минуту, или как полумера сразу рисовать онлайн по последнему бару как в подвальных ренках.

3. Вы уже что то рисовали - каким угодно удобным для вас образом. - Это не первая задача, а самая последняя, где для примера посмотреть указал - это приятная а не необходимая функция. 

4. Напишите заново виндоус, следуя Вашей логике, у Вас должно получиться качественнее.

Еще раз, освещенная тут в статьях тема "кольцевой буфер" и что можно от него хотеть практически не представляет  интереса(кроме реализаций оппа), потому что, скопировать массив туда-обратно в/из временного массива со смещением в один элемент решает большинство прикладных задач(возможно даже все), которые возлагают на тему "кольцевой буфер". Если кому-то нравится другой ..... способ, пожалуйста.

При определенных условиях график цены не имеет смысла. 10 лет стакан хоть с какими нибудь объемами в mt4 не имел смысла, однако он появился приложением с dll, стакан с объемами только в mt5 на бирже.

Фактически необходимо несколько единичных минутных  баров за 10-12 часов . Очевидно, чтобы в конце дня посмотреть на эти минутные бары, надо записать все бары за день. Очевидно, чтобы в конце недели посмотреть несколько баров - необходимо записать все бары(дневных интервалов) за неделю, в конце месяца - записать за месяц. Очевидно, что мегабайты данных для последующей аналитики должны хранятся на энергонезависимой памяти - в большинстве случаев это жесткий диск. Гигабайты жесткого диска давно не являются признаком гигантизма.

Если речь о написании функции записывающей данные стакана сначала в массив, а потом скидывающую их в файл, то здесь вам самому будет нетрудно. Над визуализацией придется потрудится.

План реализации:

1. Нужно написать функцию записи данных стакана в массив.

2. Написать функцию создающую новый файл раз в минуту, автоматически именующую его и записывающую данные из массива.

3. Написать функционал визуализирующий данные стакана из выбранного файла.

Первые две задачи несложные. Над третьей надо подумать...


 

Petr Doroshenko:

Фактически необходимо несколько единичных минутных  баров за 10-12 часов . Очевидно, чтобы в конце дня посмотреть на эти минутные бары, надо записать все бары за день.

Исходя из текущего понимания вашей задачи, я могу предложить два варианта визуализации исторических данных стакана:

1. Кривая линия изменения значений каждой ячейки стакана за минуту нарисованная с помощью библиотеки CGrafic. 20 ячеек - это двадцать линий. Линии рисовать разными цветами. Возможно, кривые можно построить через индикатор, но у меня нет опыта работы с индикаторами.

2. Наилучший вариант - нарисовать свой стакан и написать функционал "перематывающий" записанные в файле данные через его ячейки. Скорость перемотки должна регулироваться пользователем.

Можно совместить оба варианта. Сделать стакан с расширенными возможностями, способный загружать минутную историю из файла и перематывать ее с нужной скоростью. Парралельно в отдельном окне будут рисоваться кривые изменений значений в ячейках.

 
Реter Konow:

Исходя из текущего понимания вашей задачи, я могу предложить два варианта визуализации исторических данных стакана:

1. Кривая линия изменения значений каждой ячейки стакана за минуту нарисованная с помощью библиотеки CGrafic. 20 ячеек - это двадцать линий. Линии рисовать разными цветами. Возможно, кривые можно построить через индикатор, но у меня нет опыта работы с индикаторами.

2. Наилучший вариант - нарисовать свой стакан и написать функционал "перематывающий" записанные в файле данные через его ячейки. Скорость перемотки должна регулироваться пользователем.

Можно совместить оба варианта. Сделать стакан с расширенными возможностями, способный загружать минутную историю из файла и перематывать ее с нужной скоростью. Парралельно в отдельном окне будут рисоваться кривые изменений значений в ячейках.

Не совсем понятно - для чего это надо: тестировать стакан... или контролировать брокера...в чем фишка или секрет повторения работы стакана на истории???