[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 555
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Лот и магик никто не имеет права трогать, а к комментарию на хвост будет дописка брокера. Но свой комментарий всегда можно найти поиском подстроки.
Где-то на форуме прочел что в принципе комментарий может быть полностью заменен брокером. Т.е. в итоге Советник будет работать как надо с одним брокером и совершенно неправильно с другим. Все "неизменяемые" параметры нужны для генерирования магика. Поэтому хочется использовать только те что останутся нетронутыми наверняка.
Вы говорите, что у Вас сигнал тянется аж до самого разворота. Но и это можно обойти. Ордеров в рынке нет - проверяем наличие сигнала. Сигнал появился - открыли позу, сняли сигнальный флаг (обнулили переменную) и больше не проверяем наличие сигнала (например лонгового) до тех пор, пока ни возникнет противоположный сигнал (шортовый). Таким образом флаг наличия сигнала заданного типа будет вообще жить считанные секунды - флаг встал, ордер встал, флаг снят - ждём противоположного сигнала. Противоположный возник, флаг противоположного сигнала устанавливаем и устанавливаем флаг, дающий добро отслеживать сигналы, которые до этого отслеживать было запрещено.
Старт работы советника (не функция start(), а лишь начало работы):
- даём добро отслеживать и лонговые и шортовые сигналы.
Появился лонговый сигнал:
- даём добро отслеживать шортовые сигналы
- Ставим лонговый ордер и если этот ордер встал, то
- Снимаем флаг, дающий добро отслеживать лонговые сигналы.
Появился шортовый сигнал
- Если есть добро разворачивать ордера, то закрываем лонговый ордер и устанавливаем шортовый
- Устанавливаем флаг, дающий добро отслеживать лонговые сигналы и снимаем флаг, дающий добро отслеживать шортовые сигналы.
Вобщем, флаги - это выключатели. Можно так же сконструировать не выключатели, а переключатели. В этом случае советник начинает работать по принципам кибернетического автомата, который обладает памятью о том, в каком состоянии он находится. Этого можно достигнуть, например, объявив целочисленную переменную и присваивая ей номера состояний. Например в блоке инициализации пишем
Sostojanie=0;
А вот уже в старте советник знает, что в нулевом состоянии (if(Sostojanie==0){}) советнику разрешено делать только операции А, В и С. И в зависимости от того, каков будет результат одной или нескольких этих операций, советник выбирает в какое состояние нужно перейти (Sostojanie=1;// или 2, или 3 и так далее), или наоборот, остаться ли в текущем состоянии.
В каждом состоянии советник знает, что ему делать можно, а что нельзя, и при наступлении каких условий он должен перейти в иное состояние.
Удачи вам!
Если в тестере, то и не будет работать, а если в боевых условиях - ставьте Sleep() внутри цикла.
Надо смотреть код, иначе только гадание, я - не экстрасенс.
для тестера можно так
мне нужен именно цикл
Можно и не использовать break; Указал я на него только для того, чтоб Вы не забывали о возможности принудительного прерывания потока итераций цикла.