В данном посте разбираемся с тем, как устроена механика работы отложенных приказов в OsEngine. В частности, будем разбираться с тем, как выставлять стопы и профиты для уже открытых позиций. Сначала посмотрим, как это можно делать из визуального интерфейса и в конце на то, как это бывает в исходном коде.
1. Закрытие позиции LONG (Buy) по стопу.
Мы имеем позицию Long, купили BtcUsdt по 52 тысячи долларов.
Естественно нам страшно, вдруг цена резко пойдёт на 40 тысяч. И так бывало ранее. Мы хотим обезопасить свою позицию на случай, если цена пойдёт вниз и пойти спать.
В таком случае нам нужно выставить стоп-ордер. Ордер, который закроет позицию, если цена пойдёт вниз.
Жмём правой кнопкой мыши на позицию, которую хотим обезопасить, и во всплывающем меню выбираем смену цены стоп-ордера:
Перед нами откроется окно закрытия позиции:
1. Выбираем цену активации стоп-ордера.
2. Выбираем цену ордера, который будет выставлен для закрытия позиции. Закладываем 100 долларов проскальзывания, чтобы точно сработало, и жмём «принять».
После чего на графике увидим уровень, по которому будет закрыта наша позиция. И в таблице позиций тоже увидим изменения:
Теперь, когда цена опуститься до 51200, в рынок будет выставлен ордер на продажу по цене 51150, и позиция закроется.
2. Закрытие позиции LONG(Buy) по профиту.
Мы – оптимист. Купили Биткойн по 52 тысячи и ждём повышения цены:
Конечно же нам нельзя идти спать, пока мы не убедимся, что наша прибыль будет зафиксирована, когда биток уйдёт на 53 тысячи.
Жмём по позиции правой кнопкой мыши, выбираем «Swap profit order»:
Перед нами откроется окно закрытия позиции по профиту:
1. Вводим цену активации.
2. Вводим цену ордера, который будет после активации выставлен.
3. Жмём кнопку «Close at profit».
Идём спать, а робот видит где нужно зафиксировать прибыль:
Теперь, когда цена поднимется до 53000, в рынок будет выставлен ордер на продажу по цене 52950. И позиция закроется.
3. Закрытие позиции SHORT(Sell) по стопу.
Мы – осторожный пессимист. Почти уверены, что Биткойн от 52 тысяч должен пойти вниз. Поэтому вшортили (рассчитываем заработать на понижении) его:
Но вдруг цена начнёт расти и обнулит наш депозит? Допустить этого нельзя. Поэтому на случай повышения мы решили поставить стоп-ордер за предыдущим хаем. По 52500. И если цена туда дойдёт, мы хотим, чтобы наша позиция закрылась с небольшим убытком.
Жмём правой кнопкой мыши на позицию:
Откроется окно закрытия позиции по стопу:
Вводим нужные цифры и принимаем:
Теперь, когда цена поднимется до 52500, в рынок будет выставлен ордер на покупку по цене 52550. И позиция закроется.
4. Закрытие позиции SHORT(Sell) по профиту.
Мы – самоуверенный пессимист. Точно знаем, что цена биткойна должна рухнуть от 52 тысяч. Полететь камнем вниз минимум до 49 тысяч. Поэтому продали 1 контракт по 52 тысячи и ждём прибыли. Когда цена уйдёт вниз:
При этом, мы хотим убедиться, что пока выгуливаем собаку с подружкой, наша прибыль зафиксируется на уровне 39 тысяч. Для этого нам понадобится выставить для данной шорт позиции стоп приказ.
Жмём правой кнопкой мыши на позиции:
Перед нами появится окно закрытия позиции по профиту:
1. Выставляем цену активации. Для шорт позиции цена профита должна быть внизу рынка.
2. Выставляем цену ордера, который будет выставлен после активации заявки. Этот ордер будет на покупку. Поэтому делаем его чуть выше, чем цена активации, чтобы он точно исполнился.
3. Нажимаем кнопку выставить.
Теперь, когда цена на рынке дойдёт до 49 тысяч, наша шортовая позиция закроется ордером, который будет с ценой 49200.
5. Все стоп-приказы в OsEngine внутренние.
На начало 2024 года все виды стоп-приказов в OsEngine внутренние. Т.е. на рынок в итоге уходят только ордера после достижения цен активации.
6. Из кода.
В качестве примера можете взять робота «PriceChannelBreak» из примеров, встроенных в OsEngine:
Здесь мы видим:
1. Робот подписан на событие открытия позиции.
2. Логика выставления стопов и профитов разделена на BUY и SELL. Как и нужно.
3. Выставление стоп и профит заявок с проскальзыванием в шагах цены инструмента.
Это общая практика торговых платформ для создания роботов. По крайней мере в Wealth-Lab тоже так.
Стопы и Профиты в тестере исполняются строго по цене активации без проскальзываний. И проскальзывание в тестере выставлять не надо… А если оно выставлено в коде, вы его всё равно не увидите в интерфейсе.
Это связано с тем, что исполнять такие ордера нужно по касанию в тестере. А если после касания активируется ордер с другой ценой, то его тоже обязательно надо исполнить. Что приводило к тому, что пользователи себе таким не хитрым способом «Рисовали» прибыль в тестере. Что и было пофикшено\ уже более года назад.
Поэтому, выставляя в тестере стопы и профиты, не пугайтесь, если в графе цена активации/цена ордера будут одни и те же значения. Это абсолютно нормально.
Если что-то не получилось, или остались вопросы, пишите в чат поддержки!
Общаемся здесь: Old School Algo Chat
Комментарии