[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 517
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Люди, я тут уже спрашивал про то как сделать так чтобы ордер открывался только при появлении новой свечки. ТФ D1 использую.
Решил ставить отложки на определенных уровнях (buystop_lvl и sellstop_lvl), исходя из анализа предыдущих свечек.
Так вот, нужно чтобы в начале дня они поставились, а если наступает новая свечка то удалить их, и пофиг активировались отложки или нет, если сработали то рыночные ордера также закрыть надо. Максимум 2 ордера, buystop и sellstop.
Вот что я написал:
1. Вначале проверяю есть ли отложки или рыночные ордера, если есть то удаляю\закрываю их.
2. Потом ставлю отложки по рассчитанным уровням:
3. Функция нового бара (NewBar), которую мне тут подсказали:
В итоге имею то что с открытием свечки ордера выставляются и сразу удаляются. И так постоянно.
Когда закомментировал код из пункта (1), то вообще пипец, в тестере цена подходила к отложкам но они не открывались, т.е. не становились рыночными.
Вот, подскажите в чем дело может быть?
Эту функцию NewBar() нельзя использовать два раза подряд
Лучше что-нибудь так:
bool newBar = NewBar();
// и дальше по тексту заменяя NewBar() на newBar
И вообще выкидываете NewBar нафиг, смотрите время открытия последнего ордера и сравниваете с Time[0]. Если больше -- значит ваш случай, можно все удалять.
Да, видимо так и придется сделать. Спасибо и на этом :)
Блин, всё равно не понимаю как это сделать. Нужно чтобы код с удалением и закрытием ордеров сработал только на следующей свечке. Но на ней же еще и открыться другие должны будут. Значит прога опять залезет в удаление. Какой-то флаг нужен, но уже мозги вспотели чтобы понять как это соорудить :)
Почитайте внимательно про функцию OrderSend(). Для отложенных ордеров в ней имеется параметр:
Открывая отложенный ордер в начале текущих суток = iTime (Symbol(), PERIOD_D1, 0), добавляете к этому времени ещё одни сутки - 1440 * 60. И не сработавшие отложенные ордера сами удалятся в начале следующих суток.
P.S. Окончание текущего бара можно ещё контролировать через функцию iBarShift():
или по этому условию какие-то другие "телодвижения", отследив OrderTicket() последнего ордера.
Почитайте внимательно про функцию OrderSend(). Для отложенных ордеров в ней имеется параметр:
Открывая отложенный ордер в начале текущих суток = iTime (Symbol(), PERIOD_D1, 0), добавляете к этому времени ещё одни сутки - 1440 * 60. И не сработавшие отложенные ордера сами удалятся в начале следующих суток.
Читал, ДЦ походу не поддерживает.
Читал, ДЦ походу не поддерживает.
Ну видимо да, а может просто косяк какой-то с терминалом с моим. Я тут в соседней ветке уже говорил что у меня и отчеты из вкладки ИСТОРИЯ СЧЕТА не сохраняются...