Основная идея этой стратегии заключается в том, чтобы составить график цены входа и цены безубыточности после открытия позиции, чтобы визуально отобразить уровень цены, где прорыв выше цены входа приведет к прибыли. Это может помочь трейдерам лучше управлять позициями и получать прибыль.
Код вводит длинный, когда происходит перекресток SMA, и вводит короткий на перекрестке SMA. Затем он вычисляет цену входа и цену безубыточности после сборов. Цена безубыточности рассчитывается так: для длинного, цена безубыточности = цена входа * (1 + сборы); для короткого, цена безубыточности = цена входа * (1 - сборы). Наконец, он наносит график линии входных цен и линии безубыточности, заполняя площадь между ними.
Таким образом, как только цена проходит через линию входных цен, это означает, что торговля теперь прибыльна.
Ключевыми компонентами кодекса являются:
С помощью простых проверок условий для входа, расчета цены безубыточности и составления графиков вспомогательных линий реализуется стратегия безубыточности цен.
Преимущества этой стратегии включают:
Интуитивное отображение прибыли/убытка, может быстро судить, достигла ли цена целевой прибыли.
Может использовать линию безубыточности для установки уровня получения прибыли/остановки убытков, чтобы избежать увеличения потерь.
Простой и понятный код, легкий в реализации и настройке.
Может быть включена в собственные торговые стратегии, используя линию безубыточности для управления позициями.
Легко изменить параметры сборов для разных бирж и продуктов.
Может оптимизировать вход путем корректировки периодов SMA.
Риски этой стратегии включают:
SMA имеет отстающий характер, может пропустить изменения цен.
Линия безубыточности не может полностью избежать потерь.
Нет механизма выхода, трейдеры должны контролировать P/L сами.
Неправильные настройки комиссионных могут привести к неправильному расчету безубыточности.
Сдвиг не учитывается.
Без стоп-лосса, это может привести к большим потерям.
Решения:
Рассмотрим более чувствительные индикаторы, такие как MACD.
Добавить индикатор тренда, чтобы избежать контратендных сделок.
Добавьте логику получения прибыли и остановки убытков для автоматического выхода.
Установите точные сборы на основе фактического обмена.
Добавьте фиксированное скольжение для оптимальных входов и выходов.
Добавьте стоп-потерю, чтобы ограничить максимальную потерю.
Некоторые способы оптимизации стратегии:
Заменить SMA более продвинутыми индикаторами, такими как MACD или KDJ.
Добавить трендовый фильтр, чтобы избежать контратендентных сделок.
Оптимизировать периоды SMA для лучшей точности входа.
Добавьте логику получения прибыли и остановки убытков для автоматического выхода.
Установите скольжение для обратного теста и торговли в реальном времени.
Оптимизируйте настройки платы, чтобы соответствовать реальности.
Добавьте стоп-потерю, чтобы ограничить максимальную потерю.
Используйте стратегию для диверсификации в разные периоды времени.
Включите изменения объема, чтобы улучшить вход.
Используйте машинное обучение для оптимизации параметров.
Эта стратегия интуитивно отображает уровень цены на безубыточность, где прорыв может привести к прибыли. Это простая и практичная вспомогательная стратегия с такими преимуществами, как простой код и легкая реализация. Но риски также должны быть решены. Мы можем оптимизировать ее со многих аспектов, чтобы сделать ее более надежной и прибыльной. В целом она является отличным примером, который стоит изучить и применить.
/*backtest start: 2022-11-15 00:00:00 end: 2023-11-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © NikitaDoronin //@version=4 strategy("Plot Break-even Price", overlay=true) /// Break-even calculation ep = 0.0 ep := na(ep[1]) ? na : ep[1] p = 0.0 p := na(p[1]) ? na : p[1] /// Fees Input fee_inp = input(0.25, title='Price Change in %', step=0.1)/100 /// Your Strategy calculation longCondition = crossover(sma(close, 14), sma(close, 28)) shortCondition = crossunder(sma(close, 14), sma(close, 28)) /// Stategy Entry if (longCondition) ep := close p := close * (1 + fee_inp) strategy.entry("My Long Entry Id", strategy.long) if (shortCondition) ep := close p := close * (1 - fee_inp) strategy.entry("My Short Entry Id", strategy.short) /// Plot Break-even Price p1 = plot(ep, color = color.red, transp = 85) p2 = plot(p, color = color.green) fill(p1, p2, color = color.red, transp = 85)