Это краткосрочная торговая стратегия, которая использует увеличенный объем торгов в выходные дни Bitcoin с использованием 10-кратного рычага. Основная идея заключается в том, чтобы записать цену закрытия в пятницу, сравнить ежедневные цены закрытия в субботу и воскресенье с ценой закрытия в пятницу и пойти длинным или коротким, если порог превышен.
Стратегия сначала записывает цену закрытия в пятницу, а затем вычисляет количество дней с пятницы. В субботу и воскресенье, если ежедневная цена закрытия более чем на 4,5% выше цены закрытия в пятницу, перейдите на короткий; если ежедневная цена закрытия более чем на 4,5% ниже цены закрытия в пятницу, перейдите на длинный. Каждая сделка использует 10-кратный рычаг. Если прибыль достигает 10% от первоначального капитала, закрывайте все позиции. В понедельник закрывайте все позиции независимо.
В частности, стратегия получает цену закрытия пятницы, затем сравнивает текущую цену закрытия с пятницами в субботу и воскресенье.strategy.short
; если текущая цена закрытия более чем на 4,5% ниже, чем в пятницу,strategy.long
. Денежный рычаг установлен на 10x черезleverage
Если прибыль достигает 10% от начального капитала, закрыть все позиции черезstrategy.close_all()
В понедельник, закрыть все позиции черезstrategy.close_all()
.
Потенциальные улучшения для снижения рисков:
Стратегия может быть улучшена в следующих аспектах:
Добавьте другие индикаторы для улучшения сроков входа.
Оптимизировать стоп-лосс и стратегии получения прибыли. Использовать последующие остановки, поэтапное получение прибыли и т.д. для блокирования прибыли и контроля риска.
Внедрить динамическую корректировку рычага, снижая рычаг при снижении.
Добавьте другие криптовалюты. Торгуйте дополнительными криптовалютами с паттернами выходных для арбитража многоактивов.
Используйте машинное обучение для оптимизации параметров. Собирайте большие исторические наборы данных и используйте ML для автоматической оптимизации динамической корректировки параметров.
Это типичная краткосрочная торговая стратегия, использующая увеличенный объем биткойнов в выходные дни. Она использует объем в выходные дни, оценивая тенденции в субботу и воскресенье, идя длинным или коротким. Стратегия имеет преимущества, такие как усиление прибыли и контроль рисков, но также имеет некоторые риски. Следующими шагами являются оптимизация таких областей, как вход, стоп-лосс, управление рычагами, расширение активов и т. Д., Чтобы сделать стратегию более надежной и интеллектуальной.
/*backtest start: 2023-10-14 00:00:00 end: 2023-11-13 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //Copyright Boris Kozak strategy("XBT Weekend Trade Strategy", overlay=false) leverage = input(10,"Leverage") profitTakingPercentThreshold = input(0.10,"Profit Taking Percent Threshold") //****Code used for setting up backtesting.****/// testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(12, "Backtest Start Month") testStartDay = input(10, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2025, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FFFF : na bgcolor(testPeriodBackgroundColor, transp=50) testPeriod() => true //****END Code used for setting up backtesting.****/// //*** Main entry point is here***// // Figure out how many days since the Friday close days_since_friday = if dayofweek == 6 0 else if dayofweek == 7 1 else if dayofweek == 1 2 else if dayofweek == 2 3 else if dayofweek == 3 4 else if dayofweek == 4 5 else 6 // Grab the Friday close price fridaycloseprice = request.security(syminfo.tickerid,'D',close[days_since_friday]) plot(fridaycloseprice) strategy.initial_capital = 50000 // Only perform backtesting during the window specified if testPeriod() // If we've reached out profit threshold, exit all positions if ((strategy.openprofit/strategy.initial_capital) > profitTakingPercentThreshold) strategy.close_all() // Only execute this trade on saturday and sunday (UTC) if (dayofweek == 7.0 or dayofweek == 1.0) // Begin - Empty position (no active trades) if (strategy.position_size == 0) // If current close price > threshold, go short if ((close>fridaycloseprice*1.045)) strategy.entry("Short Entry", strategy.short, leverage) else // If current close price < threshold, go long if (close<(fridaycloseprice*0.955)) strategy.entry("Long Entry",strategy.long, leverage) // Begin - we already have a position if (abs(strategy.position_size) > 0) // We are short if (strategy.position_size < 0) if ((close>strategy.position_avg_price*1.045)) // Add to the position strategy.entry("Adding to Short Entry", strategy.short, leverage) else strategy.entry("Long Entry",strategy.long,leverage) // On Monday, if we have any open positions, close them if (dayofweek==2.0) strategy.close_all()