Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 318
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Доброго дня. Есть советник, в тестере стратегий работает нормально (ордера открывает и всё такое). Но когда просто накидываю его на график - ничего не происходит. Советник не работает. И ещё что заметил - рядом с названием советника на графике крестик отображается. Как это исправить?
при накидывании советника на график открывается окно с параметрами, там есть разные вкладки - в первой "Общее" надо поставить галочку напротив "разрешить советнику торговать"
если же советник уже на кинут и отображается крестиком - на панели инструментов нажмите кнопочку "советники" (кубик желтого цвета в шляпе с красным кругом и белым квадратом внутри этого круга).
Добрый день. Помогите разобраться со странной проблемой.
Суть в чем: пишу мультитаймовый индикатор, т.е. индикатор, который, будучи открытым на одном любом тайме, будет вести расчеты и давать сигналы так же и по всем остальным таймам.
Основа индикатора - RSI.
В init() при переключении тайма в соответствие линии индикатора ставится отдельный массив. И каждый из них отображается линией, когда находишься на том или ином тайме, но при этом расчеты по другим таймам не идут (функция iRSI тупо гонит нули при расчете). Т.е. текущий тайм рассчитывается, а остальные нет.
Привожу код:
Что интересно: если оставить только один массив для линии индикатора и на любом тайме рассчитывать только например W1, то все корректно считается и рисуется на любом(!) тайме.
В чем же фишка? Нельзя при инициализации в зависимости от тайма брать для линии индикатора разные массивы?
Добрый день. Помогите разобраться со странной проблемой.
Суть в чем: пишу мультитаймовый индикатор, т.е. индикатор, который, будучи открытым на одном любом тайме, будет вести расчеты и давать сигналы так же и по всем остальным таймам.
Основа индикатора - RSI.
В init() при переключении тайма в соответствие линии индикатора ставится отдельный массив. И каждый из них отображается линией, когда находишься на том или ином тайме, но при этом расчеты по другим таймам не идут (функция iRSI тупо гонит нули при расчете). Т.е. текущий тайм рассчитывается, а остальные нет.
Привожу код:
Что интересно: если оставить только один массив для линии индикатора и на любом тайме рассчитывать только например W1, то все корректно считается и рисуется на любом(!) тайме.
В чем же фишка? Нельзя при инициализации в зависимости от тайма брать для линии индикатора разные массивы?
Считывается только W1 и D1! Что же хотите? Допишите для остальных!
Дело не в этом. Привел расчеты только для D1 и W1, чтобы код не был слишком длинным. Обратите внимание: на каждом тике на любом тайме распечатываются расчетные значения W1. Так вот если открыт любой тайм кроме W1, печатаются нули. Если будет работать для W1 - будет и для остальных.
Дело не в этом. Привел расчеты только для D1 и W1, чтобы код не был слишком длинным. Обратите внимание: на каждом тике на любом тайме распечатываются расчетные значения W1. Так вот если открыт любой тайм кроме W1, печатаются нули. Если будет работать для W1 - будет и для остальных.
Правильно! Чтобы показывать на других графиках, нужно открыть и недельный график!
Если честно, этого высказывания я не понял.
А показывать ничего другого и не надо. Запустите мой код, и увидите, что уже сейчас показывается все, что надо: на Д1 показывается график RSI D1, а на W1 - график RSI W1, но при этом, если открыт D1, то расчеты RSI по W1 все нулевые, а если открыт W1, то расчеты по D1 нулевые. Вопрос в том, почему так, и как это исправить.
Проблема в том, что индексный массив сам инициализируется и ресайзится под нужный размер.
А в init() в switch изменил так:Поэтому когда открываю D1 - RSI_D1[] становится индексным, и с ним все гуд, а остальные массивы остаются в зачаточном состоянии.
Попробовал так: объявил все массивы так:
Однако на ArrayResize GetLastError дает ошибку:
EURUSD,Daily: cannot resize the array
EURUSD,Daily: some array error
Все таки кто подскажет, как решить проблему?
Проблема в том, что индексный массив сам инициализируется и ресайзится под нужный размер.
А в init() в switch изменил так:Поэтому когда открываю D1 - RSI_D1[] становится индексным, и с ним все гуд, а остальные массивы остаются в зачаточном состоянии.
Попробовал так: объявил все массивы так:
Однако на ArrayResize GetLastError дает ошибку:
EURUSD,Daily: cannot resize the array
EURUSD,Daily: some array error
Все таки кто подскажет, как решить проблему?
Если массив динамический, то обязательно при записи в него значений увеличивайте размер массива под новые данные. ArrayResize()
Однако на ArrayResize GetLastError дает ошибку:
EURUSD,Daily: cannot resize the array
EURUSD,Daily: some array error
Об этом я выше и написал:
Однако на ArrayResize GetLastError дает ошибку:
EURUSD,Daily: cannot resize the array
EURUSD,Daily: some array error
Если честно, этого высказывания я не понял.
А показывать ничего другого и не надо. Запустите мой код, и увидите, что уже сейчас показывается все, что надо: на Д1 показывается график RSI D1, а на W1 - график RSI W1, но при этом, если открыт D1, то расчеты RSI по W1 все нулевые, а если открыт W1, то расчеты по D1 нулевые. Вопрос в том, почему так, и как это исправить.
Потому что буфер один и показывает по очереди по вашему вызову!