Эта стратегия оценивает будущее движение цен, анализируя разницу между ценой закрытия двух дней подряд, с целью реализации краткосрочной торговли.
Основная логика этой стратегии заключается в сравнении сегодняшней цены закрытия с вчерашней.
Ключом здесь является установление разумного порога. Если порог слишком большой, он пропустит меньшие колебания цен. Если порог слишком мал, это вызовет чрезмерную иррациональную торговлю из-за нормальных колебаний. Стратегия принимает регулируемый дизайн порога с значениями по умолчанию 0,004 и шагом 0,001.
В целом, эта стратегия фиксирует изменения цен между двумя последовательными торговыми днями, оценивает возможные будущие тенденции цен, отфильтровывая нормальные колебания через пороги, и, таким образом, проводит краткосрочную торговлю.
Чтобы устранить эти риски, рассмотрим следующее:
Стратегия может быть оптимизирована в следующих аспектах:
Многочасовое обратное тестирование- Использовать различные временные рамки (ежедневные, 4-часовые, 1-часовые и т.д.) для обратного тестирования параметров и выбора оптимальных временных рамок и параметров.
Комбинированные показатели волатильности- Добавление показателей, учитывающих волатильность цен, таких как ATR, для лучшего установления динамических порогов.
Добавить логику остановки потери- Установите разумные точки остановки потери для контроля одиночных потерь.
Оптимизация управления позициями- оптимизировать размер начальных позиций и дополнительные правила для повышения прибыльности при одновременном обеспечении стоп-лосса.
Рассмотрим затраты на торговлю- Добавьте торговые издержки, такие как комиссии и сдвиг в обратном тестировании, чтобы быть ближе к живой торговле.
Внедрение машинного обучения- Применение алгоритмов машинного обучения для извлечения большего количества функций и создания более сильных торговых сигналов.
Эта стратегия оценивает будущие ценовые тенденции на основе ценовых различий, используя простой и интуитивный подход к разработке краткосрочных торговых стратегий. Стратегия проста в реализации и подходит для краткосрочных операций, но может иметь некоторые риски потери. Различные методы оптимизации могут улучшить стабильность и прибыльность стратегии.
/*backtest start: 2023-08-28 00:00:00 end: 2023-09-27 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Daily Close Comparison Strategy (by ChartArt) repainting results", shorttitle="CA_-_Daily_Close_Strat", overlay=false) // ChartArt's Daily Close Comparison Strategy // // Version 1.0 // Idea by ChartArt on February 28, 2016. // // This strategy is equal to the very // popular "ANN Strategy" coded by sirolf2009, // but without the Artificial Neural Network (ANN). // // Main difference besides stripping out the ANN // is that I use close prices instead of OHLC4 prices. // And the default threshold is set to 0 instead of 0.0014 // with a step of 0.001 instead of 0.0001. // // This strategy goes long if the close of the current day // is larger than the close price of the last day. // If the inverse logic is true, the strategy // goes short (last close larger current close). // // This simple strategy does not have any // stop loss or take profit money management logic. // // List of my work: // https://www.tradingview.com/u/ChartArt/ // // __ __ ___ __ ___ // / ` |__| /\ |__) | /\ |__) | // \__, | | /~~\ | \ | /~~\ | \ | // // threshold = input(title="Price Difference Threshold repainting results", type=float, defval=0.004, step=0.001) getDiff() => yesterday=security(syminfo.tickerid, 'D', close[1]) today=security(syminfo.tickerid, 'D', close) delta=today-yesterday percentage=delta/yesterday closeDiff = getDiff() buying = closeDiff > threshold ? true : closeDiff < -threshold ? false : buying[1] hline(0, title="zero line") bgcolor(buying ? green : red, transp=25) plot(closeDiff, color=silver, style=area, transp=75) plot(closeDiff, color=aqua, title="prediction") longCondition = buying if (longCondition) strategy.entry("Long", strategy.long) shortCondition = buying != true if (shortCondition) strategy.entry("Short", strategy.short)