Эта стратегия представляет собой следующую торговую стратегию, разработанную на основе принципа перекрестки движущихся средних линий биткоина. Стратегия использует перекресток быстро движущейся средней линии и медленно движущейся средней линии в качестве сигналов покупки и продажи. Когда быстро движущаяся средняя линия пересекает линию медленно движущегося среднего, она считается золотым крестом и идет на длинный; когда быстро движущаяся средняя линия пересекает линию медленно движущегося среднего, она считается смертельным крестом и идет на короткий.
Стратегия основывается на двух показателях:
Движущаяся средняя (MA): рассчитывает среднюю цену закрытия за определенный период для определения ценовых тенденций и сигналов реверсии.
Индекс относительной силы (RSI): рассчитывает скорость роста и падения цен в течение определенного периода, чтобы судить о перекупленных и перепроданных областях.
В частности, стратегия использует более короткую MA как быструю линию и более длинную MA как медленную линию. Когда быстрая линия пересекает поверх медленной линии, это указывает на то, что краткосрочный рост цен ускоряется и генерируется сигнал покупки; когда быстрая линия пересекает ниже медленной линии, это указывает на то, что краткосрочное падение цен ускоряется и генерируется сигнал продажи.
В то же время стратегия также устанавливает порог для RSI, генерируя сигналы покупки только тогда, когда RSI превышает 50, и сигналы продажи только тогда, когда RSI ниже 50, избегая безрассудного входа, когда цены сильно колеблются.
Стратегия имеет следующие преимущества:
Стратегия также сопряжена с некоторыми рисками:
Для смягчения рисков рекомендуется оптимизировать параметры скользящей средней продолжительности, корректировать позиции стоп-лосса и соответствующим образом сократить размеры позиций.
К основным направлениям оптимизации этой стратегии относятся:
Оптимизировать параметры скользящей средней продолжительности для поиска оптимальной комбинации параметров с помощью инкрементального поиска, генетических алгоритмов и т.д.
Увеличить другие технические показатели для фильтрации, такие как KDJ, MACD и т. д., чтобы улучшить качество торговых сигналов.
Наблюдать за колебаниями цен и корректировать позиции и стоп-потери соответственно.
Включить объем торговли, чтобы избежать ложных прорывов, выпуская сигналы только при увеличении объема торговли.
Разработка механизмов самоадаптирования параметров, позволяющих стратегиям автоматически корректировать значения параметров на основе различных рыночных условий.
В целом, это типичная стратегия, следующая за трендом. Основываясь на принципе пересечения скользящей средней, логика торговли проста и понятна, легко понять и реализовать. Включение индикатора RSI может избежать иррациональной торговли. Стратегия несет в себе как риски, так и выгоды, подходящие для инвесторов с некоторым опытом квантовой торговли, но потенциальные риски потери должны быть защищены. Если разработчики могут добавить больше фильтров, оптимизировать адаптивность параметров, это может еще больше улучшить устойчивую прибыльность стратегии.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //Trading Strategy Warning - Past performance may not equal future performance //Account Size Warning - Performance based upon default 10% risk per trade, of account size $100,000. Adjust before you trade to see your own drawdown. //Time Frame - D1 and H4, warning H4 has a lower profit factor (fake-outs, and account drawdown), D1 recommended //Trend Following System - Profitability of this system is dependent on a STRONG trend in Bitcoin, into the future strategy("Bitcoin - MA Crossover Strategy", overlay=true) // User Input usr_risk = input(title="Equity Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=10,confirm=false) sma_fast = input(title="Fast MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=20,confirm=false) sma_slow = input(title="Slow MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=40,confirm=false) rsi_valu = input(title="RSI (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=14,confirm=false) // Create Indicator's shortSMA = sma(close, sma_fast) longSMA = sma(close, sma_slow) rsi = rsi(close, rsi_valu) strategy.initial_capital = 50000 // Units to buy amount = usr_risk / 100 * (strategy.initial_capital + strategy.netprofit) units = floor(amount / close) // Specify entry conditions longEntry = crossover(shortSMA, longSMA) shortEntry = crossunder(shortSMA, longSMA) // Specify exit conditions longExit = crossunder(shortSMA, longSMA) shortExit = crossover(shortSMA, longSMA) // Execute long trade if (longEntry) strategy.entry("long", strategy.long, units, when = rsi > 50) // Exit long trade if(longExit and strategy.position_size > 0) strategy.order("exit long", strategy.short, abs(strategy.position_size)) // Execute short trade if (shortEntry) strategy.entry("short", strategy.short, units, when = rsi < 50) // Exit short trade if(shortExit and strategy.position_size < 0) strategy.order("exit short", strategy.long, abs(strategy.position_size)) // Plot Moving Average's to chart plot(shortSMA) plot(longSMA, color=color.black)