• Demo счет NinjaTrader, регистрируется в брокерской компании NinjaTrader Brokerage . NinjaTrader™, LLC
    Ссылка на демо счет NinjaTrader
    Фид на соединении Continuum/CQG.
    Для справки: Continuum - это брэнд CQG.
    Обратите внимание, что в настоящее время CQG не высылает логин и пароль на электронные адреса от mail.ru, bk.ru, list.ru, inbox.ru, поэтому необходимо повторить регистрацию с электронного адреса от другого домейна (yahoo, gmail, и тд).
  • NinjaTrader с зарекомендовавшим себя брокерским сервисом предоставляет наилучшие условия для фьючерсной торговли, включая:
    • Низкие комиссии: Экономьте на торгах через низкие и понятные комиссии
    • Низкая маржа: Всего $50 для микро контрактов
    • Низкие минимумы: Откройте счет от $400
    • Бесплатная платформа: Включает весь необходимый функционал для торговли в реале
  • Уважаемые посетители форума!
    При регистрации на форуме отправляется письмо подтверждения на ваш почтовый ящик, если письмо не пришло, просьба проверить папку "спам" вашего почтового ящика, возможно письмо попало туда.
  • Сколько я реально плачу комиссии?
    Подробнее по ссылке

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

NTTrade

Well-Known Member
NinjaTrader
OnRenderTargetChanged используется если у тебя происходит изменение кисти. То есть ты ее объявил синим цветом, и при каком-то условии она должна стать красной. У чувака в примере проблемы, потому что он инициализацию делает внутри цикла foreach. А я ее делаю внутри метода перед циклами. ))
 

rare312

Active Member
NinjaTrader
OnRenderTargetChanged используется если у тебя происходит изменение кисти. То есть ты ее объявил синим цветом, и при каком-то условии она должна стать красной. У чувака в примере проблемы, потому что он инициализацию делает внутри цикла foreach. А я ее делаю внутри метода перед циклами. ))
У чувака возможно в этом и проблемы. Но я про другое. Ему советуют Объявление делать внутри OnRender или OnRenderTargetChanged.
Но не на уровне класса. Как это делаешь ты и делал я.
 

NTTrade

Well-Known Member
NinjaTrader
У чувака возможно в этом и проблемы. Но я про другое. Ему советуют Объявление делать внутри OnRender или OnRenderTargetChanged.
Но не на уровне класса. Как это делаешь ты и делал я.
Не важно где ты её объявил, важно где ты сделал инициализацию. Так как делаю я, это просто глобальная переменная в пределах класса. Но инициализация её происходит именно в методе OnRender. А OnRenderTargetChanged используют если должно происходить изменение одной и той же Кисти. У меня баги не лезут )))
 

rare312

Active Member
NinjaTrader
Да ты можешь спорить сколько угодно, только не со мной. Есть саппорт, который дал ответ на твой же вопрос.
Про объявление и инициализацию. Все должно быть сделано в chart's UI thread.
ответ
 

NTTrade

Well-Known Member
NinjaTrader
Да ты можешь спорить сколько угодно, только не со мной. Есть саппорт, который дал ответ на твой же вопрос.
Про объявление и инициализацию. Все должно быть сделано в chart's UI thread.
ответ
Ты если будешь делать так как написано в хелпе и сапорте оно у тебя вообще не будет работать ))) НТ самая кривая прога. Там такие баги бывают, которых вообще быть не должно )))
 

rare312

Active Member
NinjaTrader
Ты если будешь делать так как написано в хелпе и сапорте оно у тебя вообще не будет работать ))) НТ самая кривая прога. Там такие баги бывают, которых вообще быть не должно )))
Я бы скинул еще docs.microsoft.com про Device-Dependent ресурсы. Но если интересно, найдешь. Там все то же. Где и когда их создавать.
Ну и естественно, пенять на себя это не наш метод)) Все кривое, зато "мой" код идеален. У меня с NT8 проблем нет. Любые баги = мои ошибки и недочеты, обычно потом исправленные.
 

NTTrade

Well-Known Member
NinjaTrader
Я бы скинул еще docs.microsoft.com про Device-Dependent ресурсы. Но если интересно, найдешь. Там все то же. Где и когда их создавать.
Ну и естественно, пенять на себя это не наш метод)) Все кривое, зато "мой" код идеален. У меня с NT8 проблем нет. Любые баги = мои ошибки и недочеты, обычно потом исправленные.
Ну да куда же до вас ))) Люди с профильным образованием программиста и 10 годами практики, постоянно правят этот супер софт, потому что он такое выкидывает, чего вообще быть не должно.
 

rare312

Active Member
NinjaTrader
Ну да куда же до вас ))) Люди с профильным образованием программиста и 10 годами практики, постоянно правят этот супер софт, потому что он такое выкидывает, чего вообще быть не должно.
Во первых, без разницы сколько лет опыта у программиста. Всем более менее серьезным продуктам подбирают тестировщиков. Что свидетельствует о человеческом факторе программистов любого уровня.
А во вторых, "правят" они не "супер софт" а свой собственный код. Поскольку править платформу они не могут. Код защищен и доступен лишь компании разработчику. Разве что, ты о знакомых разработчиках платформы и говоришь..
В этом случае, что сказать, мне неведомо, что платформа "выкидывает этакого". Нужны конкретные баги, что бы что то говорить.
 

MOCKBA3

New Member
NinjaTrader
Как часто возникает ошибка. И в каких случаях. Можете ошибку повторить вручную?
08.06.2021 20:42​
По умолчаниюИндикатор 'MRIndicator': Ошибка в вызове 'OnStateChange' метод: Процесс не может получить доступ к файлу "C:\Program Files (x86)\NinjaTrader 8\bin\RangeProfiles.xml", так как этот файл используется другим процессом.
Вчера опять эта ошибка вылезла при загрузки ниндзи и опять на 6а(ауди),5минут, слител индюк.
 

NTTrade

Well-Known Member
NinjaTrader
Да ты можешь спорить сколько угодно, только не со мной. Есть саппорт, который дал ответ на твой же вопрос.
Про объявление и инициализацию. Все должно быть сделано в chart's UI thread.
ответ
Ты не разобрался в вопросе и начел нагнетать жуть ))) Если ты откроешь мой код то ты увидишь что на уровне класса идут Кисти WPF System.Windows.Media.Brush poccolor; с инициализацией в Методе OnStateChange и Свойствами и Кисть SharpDX.Direct2D1.Brush POCColorDX инициализация которой, происходит в Методе OnRender POCColorDX = poccolor.ToDxBrush(RenderTarget); а точней преобразование Кисти WPF poccolor в Кисть SharpDX POCColorDX. Все как и написал сапорт ))
 

rare312

Active Member
NinjaTrader
Ты не разобрался в вопросе и начел нагнетать жуть ))) Если ты откроешь мой код то ты увидишь что на уровне класса идут Кисти 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 КБ · Просмотры: 12
  • rt83ndg.png
    rt83ndg.png
    424,6 КБ · Просмотры: 12

NTTrade

Well-Known Member
NinjaTrader
А ты не хочешь просто прочитать что написано )
Елки-палки, зафлудили ветку. Черным по белому.. Есть гугл переводчик же. Объявлять можно кисти wpf на уровне класса. А объявлять кисти SharpDX - советуют в методе OnRender. И инициализировать их там же.
Вот, было бы о чем спорить.. Просто, либо делай как советуют, либо нет. И что самое интересное, ведь не сложно пару слов заменить в коде. И это ни на что не повлияет у тебя. Но нет..
Я быть может, тоже с недоверием конкретно к этому отношусь. Но пока не нашел подтверждения противоположному. А наоборот.
Читай Рихтера, а не форумы ))) Ты объявляя в классе переменную SharpDX.Direct2D1.Brush выделяешь просто в памяти место, куда будет потом записано данные. И это никак не влияет на Рендеринг. Ты можешь её объявить где угодно. Другое дело где ты присвоишь ей значение. Это нужно делать в Методах OnRender или OnRenderTargetChanged.
 

rare312

Active Member
NinjaTrader
Читай Рихтера, а не форумы ))) Ты объявляя в классе переменную SharpDX.Direct2D1.Brush выделяешь просто в памяти место, куда будет потом записано данные. И это никак не влияет на Рендеринг. Ты можешь её объявить где угодно. Другое дело где ты присвоишь ей значение. Это нужно делать в Методах OnRender или OnRenderTargetChanged.
Ну вот, так бы сразу. Зачем же доказывать что мол я не понял саппорт. Другое дело, верить ли ему.
Во первых, Рихтер если и писал про Device-dependent vs Device-independent resources, то читать нужно именно это. Обычные переменные - здесь не показатель и не пример.
Во вторых, он не писал платформу NT8 и не знает как в ней взаимодействуют потоки между собой.
В третьих, гайд NT8 подтверждается информацией с оф. сайта Microsoft. Они оттуда постят инфу и дают ссылки на источник.
Но, выход вроде есть для тебя и меня. Нашел.
Если обьявлять Device-dependent (кисть SharpDX) на уровне класса, то она должна быть воссоздана именно в методе OnRenderTargetChanged (не в методе OnRender!)
Ниже интересно, почитай.
Guide
 

rare312

Active Member
NinjaTrader
08.06.2021 20:42​
По умолчаниюИндикатор 'MRIndicator': Ошибка в вызове 'OnStateChange' метод: Процесс не может получить доступ к файлу "C:\Program Files (x86)\NinjaTrader 8\bin\RangeProfiles.xml", так как этот файл используется другим процессом.
Вчера опять эта ошибка вылезла при загрузки ниндзи и опять на 6а(ауди),5минут, слител индюк.
Ну, слетел индюк, это громко сказано. Кнопка F5 восстановит вам чарт с индикатором.
Эта ошибка будет повторяться, покуда вы запускаете NT8 с несколькими чартами где есть MRPack.
И это уже исправлено, но выставлю позже.
 

profit76

Member
NinjaTrader
" Другое дело, верить ли ему."... Об это Евгений по ходу диалога и написал.

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

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

 

elsnere777

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

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

 

Olga-77

Member
NinjaTrader
Уважаемые акулы программирования! Шикарный индюк сделал трейдер! Может вас заинтересует и вдохновит видео сделать для нинзи 8.
Вся идея в том, чтобы настраиваемые объемы( выдающиеся) в спреде стакана перенести на график. Отлично работает ! Это не Клауды и не кластер серч. Это лимитные заявки в спреде стакана, которые в моменте трудно увидеть.
 

MOCKBA3

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

На рендж графике поймал этот эйрор когда раздвигал график нажал ф5, когда всё обновилось попытался ещё раз раздвинуть график и ниндзя вылетела.
 

Alexander

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

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

rare312

Active Member
NinjaTrader
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 КБ · Просмотры: 5
  • mr2.png
    mr2.png
    280,1 КБ · Просмотры: 5
Последнее редактирование:
Верх Низ