попробуйте объявить переменную PreviousBarSigna на глобальном уровне, то есть вне всех функций
Спасибо за совет, Slawa. Всё заработало.
Чисто профессиональный вопрос - а чем это лучше тупового вычисления двух баров? На первый взгляд, это намного проще.
Спасибо.
Спасибо.
Вопрос не тупой и я его предвидел и пытался ответить в своем первом сообщении. Если советник очень медленный, то лучше вычислять один бар, то есть при появлении нового бара, только новый бар разсчитывается а значение предыдущего бара уже должно быть вычислено и сохранено в памяти. Если разсчитывать два бара (новый и предыдущий), то советник будет в два раза медленнее т.к. предыдущий бар будет разсчитываться два раза: когда он был новым и когда он стал предыдущим.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
int PreviousBarSignal;
<Calculate PresentBarSignal>
if (PreviousBarSignal==1 && PresentBarSignal==1)
{"Buy";PreviousBarSignal=0;}
esle if (PreviousBarSignal==-1 && PresentBarSignal==-1)
{"Sell";PreviousBarSignal=0;}
esle {PreviousBarSignal=PresentBarSignal;}
return(0)
Значение PreviousBarSignal, рассчитанное для предыдущего бара, не сохраняется тестером. В результате чего, PreviousBarSignal всегда 0 в начале программы. Конечно можно записать значение PreviousBarSignal в файл и потом прочитать его, но хотелось бы иметь возможность передавать значение торгового сигнала от одного рана к другому без внешних файлов. Если такая возможность?