Допоможіть, не можу закрити ордер на
Поділитися
Дивіться функції часу. Задає час закриття-відкриття в параметрах, в коді даєте інтервал кілька хвилин і закриваєте.
Приклад:if ( TimeHour( TimeCurrent() ) == ExtCloseHour & & TimeMinute( TimeCurrent() ) > ExtCloseMinute ) < // час закриття . код для закриття.
Нюанси: 1. Закриття: якщо контракт малоліквідний та котирування не надходять, то тут навіть руками з терміналу закрити не можна – задовбають повідомленням "Немає ціни". Лише через техпідтримку. 2. Відкриття: на деяких контрактах можливі різкі рухи на відкритті (у перші хвилини), тому закриття ринку може дати сильне прослизання.
Поділитися
Поділитися
У найпростішому варіанті викликOrderClose(). Але раптом у Вас ще якісь умови є. Обробка помилок знову ж таки.
Які захочете. Наприклад, час закриття денної сесії для конкретного інструменту.
ЗмінніExtCloseHourтаExtCloseMinute(обізвати їх можете по-іншому) визначаються у шапці програми як зовнішні.
Приклад: скажімо, інструмент у ВасZCхх(кукурудза). Закриття денної сесії із зернових відбувається о 20:15 (час терміналу БроКо). Відповідно маємо:
extern int ExtCloseHour = 20 extern int ExtCloseMinute = 10
Тоді о 20:10 умова, яку я написав у попередньому пості, починає виконуватись. І виконується до 20:15, тобто. до закриття. 5 хвилин повинно вистачити для закриття ордера. :)