• Тинькофф Банк-лучшие банковские продукты еще выгоднее
    Выбирайте продукт от банка Тинькофф
  • Уважаемые форумчане, друзья и посетители!
    Поступило предложение ( ссылка на обсуждение ) на сбор средств поддержания форума в рабочем состоянии с 1 июня ( оплата хостинга, бэкап ежедневный на другой хостинг и тд), отчетность будет предоставляться ежемесячно. Пока на ЮMoney ( яндекс деньги), доступно картой перевод, далее добавлю другие способы. Сумму перевода указывайте на ваш выбор исходя из своих возможностей.
    Форум продолжает свою работу благодаря Вашим пожертвованиям.

NinjaTrader 8 Футпринты на 8-ю версию

OnRenderTargetChanged используется если у тебя происходит изменение кисти. То есть ты ее объявил синим цветом, и при каком-то условии она должна стать красной. У чувака в примере проблемы, потому что он инициализацию делает внутри цикла foreach. А я ее делаю внутри метода перед циклами. ))
 
OnRenderTargetChanged используется если у тебя происходит изменение кисти. То есть ты ее объявил синим цветом, и при каком-то условии она должна стать красной. У чувака в примере проблемы, потому что он инициализацию делает внутри цикла foreach. А я ее делаю внутри метода перед циклами. ))
У чувака возможно в этом и проблемы. Но я про другое. Ему советуют Объявление делать внутри OnRender или OnRenderTargetChanged.
Но не на уровне класса. Как это делаешь ты и делал я.
 
У чувака возможно в этом и проблемы. Но я про другое. Ему советуют Объявление делать внутри OnRender или OnRenderTargetChanged.
Но не на уровне класса. Как это делаешь ты и делал я.
Не важно где ты её объявил, важно где ты сделал инициализацию. Так как делаю я, это просто глобальная переменная в пределах класса. Но инициализация её происходит именно в методе OnRender. А OnRenderTargetChanged используют если должно происходить изменение одной и той же Кисти. У меня баги не лезут )))
 
Да ты можешь спорить сколько угодно, только не со мной. Есть саппорт, который дал ответ на твой же вопрос.
Про объявление и инициализацию. Все должно быть сделано в chart's UI thread.
ответ
 
Да ты можешь спорить сколько угодно, только не со мной. Есть саппорт, который дал ответ на твой же вопрос.
Про объявление и инициализацию. Все должно быть сделано в chart's UI thread.
ответ
Ты если будешь делать так как написано в хелпе и сапорте оно у тебя вообще не будет работать ))) НТ самая кривая прога. Там такие баги бывают, которых вообще быть не должно )))
 
Ты если будешь делать так как написано в хелпе и сапорте оно у тебя вообще не будет работать ))) НТ самая кривая прога. Там такие баги бывают, которых вообще быть не должно )))
Я бы скинул еще docs.microsoft.com про Device-Dependent ресурсы. Но если интересно, найдешь. Там все то же. Где и когда их создавать.
Ну и естественно, пенять на себя это не наш метод)) Все кривое, зато "мой" код идеален. У меня с NT8 проблем нет. Любые баги = мои ошибки и недочеты, обычно потом исправленные.
 
Я бы скинул еще docs.microsoft.com про Device-Dependent ресурсы. Но если интересно, найдешь. Там все то же. Где и когда их создавать.
Ну и естественно, пенять на себя это не наш метод)) Все кривое, зато "мой" код идеален. У меня с NT8 проблем нет. Любые баги = мои ошибки и недочеты, обычно потом исправленные.
Ну да куда же до вас ))) Люди с профильным образованием программиста и 10 годами практики, постоянно правят этот супер софт, потому что он такое выкидывает, чего вообще быть не должно.
 
Ну да куда же до вас ))) Люди с профильным образованием программиста и 10 годами практики, постоянно правят этот супер софт, потому что он такое выкидывает, чего вообще быть не должно.
Во первых, без разницы сколько лет опыта у программиста. Всем более менее серьезным продуктам подбирают тестировщиков. Что свидетельствует о человеческом факторе программистов любого уровня.
А во вторых, "правят" они не "супер софт" а свой собственный код. Поскольку править платформу они не могут. Код защищен и доступен лишь компании разработчику. Разве что, ты о знакомых разработчиках платформы и говоришь..
В этом случае, что сказать, мне неведомо, что платформа "выкидывает этакого". Нужны конкретные баги, что бы что то говорить.
 
Как часто возникает ошибка. И в каких случаях. Можете ошибку повторить вручную?
08.06.2021 20:42​
По умолчаниюИндикатор 'MRIndicator': Ошибка в вызове 'OnStateChange' метод: Процесс не может получить доступ к файлу "C:\Program Files (x86)\NinjaTrader 8\bin\RangeProfiles.xml", так как этот файл используется другим процессом.
Вчера опять эта ошибка вылезла при загрузки ниндзи и опять на 6а(ауди),5минут, слител индюк.
 
Да ты можешь спорить сколько угодно, только не со мной. Есть саппорт, который дал ответ на твой же вопрос.
Про объявление и инициализацию. Все должно быть сделано в chart's UI thread.
ответ
Ты не разобрался в вопросе и начел нагнетать жуть ))) Если ты откроешь мой код то ты увидишь что на уровне класса идут Кисти WPF System.Windows.Media.Brush poccolor; с инициализацией в Методе OnStateChange и Свойствами и Кисть SharpDX.Direct2D1.Brush POCColorDX инициализация которой, происходит в Методе OnRender POCColorDX = poccolor.ToDxBrush(RenderTarget); а точней преобразование Кисти WPF poccolor в Кисть SharpDX POCColorDX. Все как и написал сапорт ))
 
Ты не разобрался в вопросе и начел нагнетать жуть ))) Если ты откроешь мой код то ты увидишь что на уровне класса идут Кисти WPF System.Windows.Media.Brush poccolor; с инициализацией в Методе OnStateChange и Свойствами и Кисть SharpDX.Direct2D1.Brush POCColorDX инициализация которой, происходит в Методе OnRender POCColorDX = poccolor.ToDxBrush(RenderTarget); а точней преобразование Кисти WPF poccolor в Кисть SharpDX POCColorDX. Все как и написал сапорт ))
А ты не хочешь просто прочитать что написано )
Елки-палки, зафлудили ветку. Черным по белому.. Есть гугл переводчик же. Объявлять можно кисти wpf на уровне класса. А объявлять кисти SharpDX - советуют в методе OnRender. И инициализировать их там же.
Вот, было бы о чем спорить.. Просто, либо делай как советуют, либо нет. И что самое интересное, ведь не сложно пару слов заменить в коде. И это ни на что не повлияет у тебя. Но нет..
Я быть может, тоже с недоверием конкретно к этому отношусь. Но пока не нашел подтверждения противоположному. А наоборот.
 

Вложения

  • jt7eh53.png
    jt7eh53.png
    25,7 КБ · Просмотры: 34
  • rt83ndg.png
    rt83ndg.png
    424,6 КБ · Просмотры: 36
А ты не хочешь просто прочитать что написано )
Елки-палки, зафлудили ветку. Черным по белому.. Есть гугл переводчик же. Объявлять можно кисти wpf на уровне класса. А объявлять кисти SharpDX - советуют в методе OnRender. И инициализировать их там же.
Вот, было бы о чем спорить.. Просто, либо делай как советуют, либо нет. И что самое интересное, ведь не сложно пару слов заменить в коде. И это ни на что не повлияет у тебя. Но нет..
Я быть может, тоже с недоверием конкретно к этому отношусь. Но пока не нашел подтверждения противоположному. А наоборот.
Читай Рихтера, а не форумы ))) Ты объявляя в классе переменную SharpDX.Direct2D1.Brush выделяешь просто в памяти место, куда будет потом записано данные. И это никак не влияет на Рендеринг. Ты можешь её объявить где угодно. Другое дело где ты присвоишь ей значение. Это нужно делать в Методах OnRender или OnRenderTargetChanged.
 
Читай Рихтера, а не форумы ))) Ты объявляя в классе переменную SharpDX.Direct2D1.Brush выделяешь просто в памяти место, куда будет потом записано данные. И это никак не влияет на Рендеринг. Ты можешь её объявить где угодно. Другое дело где ты присвоишь ей значение. Это нужно делать в Методах OnRender или OnRenderTargetChanged.
Ну вот, так бы сразу. Зачем же доказывать что мол я не понял саппорт. Другое дело, верить ли ему.
Во первых, Рихтер если и писал про Device-dependent vs Device-independent resources, то читать нужно именно это. Обычные переменные - здесь не показатель и не пример.
Во вторых, он не писал платформу NT8 и не знает как в ней взаимодействуют потоки между собой.
В третьих, гайд NT8 подтверждается информацией с оф. сайта Microsoft. Они оттуда постят инфу и дают ссылки на источник.
Но, выход вроде есть для тебя и меня. Нашел.
Если обьявлять Device-dependent (кисть SharpDX) на уровне класса, то она должна быть воссоздана именно в методе OnRenderTargetChanged (не в методе OnRender!)
Ниже интересно, почитай.
Guide
 
08.06.2021 20:42​
По умолчаниюИндикатор 'MRIndicator': Ошибка в вызове 'OnStateChange' метод: Процесс не может получить доступ к файлу "C:\Program Files (x86)\NinjaTrader 8\bin\RangeProfiles.xml", так как этот файл используется другим процессом.
Вчера опять эта ошибка вылезла при загрузки ниндзи и опять на 6а(ауди),5минут, слител индюк.
Ну, слетел индюк, это громко сказано. Кнопка F5 восстановит вам чарт с индикатором.
Эта ошибка будет повторяться, покуда вы запускаете NT8 с несколькими чартами где есть MRPack.
И это уже исправлено, но выставлю позже.
 
" Другое дело, верить ли ему."... Об это Евгений по ходу диалога и написал.

Привет Евгений, рад видеть.

rare312, поддерживаю морально твой бескорыстный энтузиазм.

 
Добрый день всем! Ребята, вы конечно доброе дело делаете, но разборки по тематике программирования делайте пожалуйста по возможности в других ветках. Давайте в данной ветке ближе по ее теме диалоги вести, по существу. За ранее спасибо!

Новые возможности InChart SuperDom:

 
Уважаемые акулы программирования! Шикарный индюк сделал трейдер! Может вас заинтересует и вдохновит видео сделать для нинзи 8.
Вся идея в том, чтобы настраиваемые объемы( выдающиеся) в спреде стакана перенести на график. Отлично работает ! Это не Клауды и не кластер серч. Это лимитные заявки в спреде стакана, которые в моменте трудно увидеть.
 
Ну, слетел индюк, это громко сказано. Кнопка F5 восстановит вам чарт с индикатором.
Эта ошибка будет повторяться, покуда вы запускаете NT8 с несколькими чартами где есть MRPack.
И это уже исправлено, но выставлю позже.
2021-06-14 13:58:15:926 ERROR: Индикатор 'MRIndicator': Error on calling 'OnRender' method on bar 134: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.

На рендж графике поймал этот эйрор когда раздвигал график нажал ф5, когда всё обновилось попытался ещё раз раздвинуть график и ниндзя вылетела.
 
2021-06-14 13:58:15:926 ERROR: Индикатор 'MRIndicator': Error on calling 'OnRender' method on bar 134: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.

На рендж графике поймал этот эйрор когда раздвигал график нажал ф5, когда всё обновилось попытался ещё раз раздвинуть график и ниндзя вылетела.
Может стоить проверить свое железо на счет повреждения, протестировать оперативную память и жесткий диск?
 
2021-06-14 13:58:15:926 ERROR: Индикатор 'MRIndicator': Error on calling 'OnRender' method on bar 134: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.

На рендж графике поймал этот эйрор когда раздвигал график нажал ф5, когда всё обновилось попытался ещё раз раздвинуть график и ниндзя вылетела.
Вы процитировали мое сообщение, которое касалось совершенно другой ошибки.
А эта ошибка была раньше. И думалось, исправлена. Поэтому и спрашивал вас за версию индюка.
Также, в одном из предыдущих постов, просил открыть окно ninjaScript output. Будет ли в нем выведена эта же ошибка в момент появления ее в логах.
Если Женя все таки прав, и в вашем случае проблема в отсутствии блокировок (lock)
То, откройте в ninjaScript Editor, индикатор mrPack и добавьте 2 строки, ниже на скринах. Сохраните и скомпилируйте. Дальше перезагрузить чарт с индикатором и наблюдать появление этой ошибки в логах и в ninjaScript output. Идея в том что ошибка в логах не будет отображаться, но отобразится в ninjaScript output.

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

Вложения

  • mr1.png
    mr1.png
    45,2 КБ · Просмотры: 26
  • mr2.png
    mr2.png
    280,1 КБ · Просмотры: 27
Последнее редактирование:
Назад
Верх Низ