Еженедельная стратегия торговли перемещающейся средней

Автор:Чао Чжан, Дата: 2024-01-18 11:47:25
Тэги:

img

Обзор

Эта стратегия торгуется на основе еженедельной цены закрытия Биткоина и 8-недельной простой скользящей средней. Она длится, когда еженедельная цена закрытия превышает 8-недельную линию и закрывает позицию, когда еженедельная цена закрытия превышает 8-недельную линию. Она также устанавливает коэффициенты стоп-лосса и прибыли для контроля рисков.

Логика стратегии

Эта стратегия анализирует еженедельное движение цены Биткоина и 8-недельную простую скользящую среднюю, чтобы судить, находится ли рынок в восходящем или нисходящем тренде. Когда недельная цена закрытия превышает 8-недельную линию, это сигнализирует о том, что рынок вошел в канал восходящего тренда и длинная позиция может принести прибыль. Когда недельная цена закрытия превышает 8-недельную линию, это сигнализирует о том, что еженедельный график Биткоина вошел в канал нисходящего тренда и существующие длинные позиции должны быть остановлены.

В частности, в стратегии определены следующие условия торговли:

buy_condition = crossover(btc,ma) #weekly closing price breaks above 8-week line, go long
sell_condition = crossunder(btc,ma) #weekly closing price breaks below 8-week line, close position

Когда условие покупки выполняется, стратегия идет на длинный срок. Когда условие продажи запускается, стратегия выходит с либо прибылью, либо остановкой потери.

Кроме того, установлены коэффициенты стоп-лосса и прибыли:

loss_ratio=input(defval=1,title="LOSS RATIO", group="STRATEGY")
reward_ratio=input(defval=3,title="REWARD RATIO", group="STRATEGY") 

Соотношение стоп-лосса по умолчанию составляет 1, а соотношение прибыли по умолчанию составляет 3. Это означает, что при выходе сигнала, если в настоящее время прибыльный, выход с 3 раза прибыль. Если в настоящее время убыток, выход с 1 раза убыток.

Анализ преимуществ

Преимущества этой стратегии включают:

  1. Еженедельный график, меньше использования, подходящий для долгосрочного хранения
  2. 8-недельный MA отфильтровывает шум и выявляет основные тенденции
  3. Стойкость потери и контроль прибыли

Анализ рисков

Существуют также некоторые риски:

  1. Невозможность корректировки позиции на основе краткосрочного ценового движения
  2. Сигналы прорыва могут иметь ложные сигналы
  3. Стоп-лосс/приобретение прибыли могут не сработать при экстремальных рыночных событиях

Контрмеры:

  1. Комбинировать с другими краткосрочными показателями, чтобы поймать краткосрочные возможности
  2. Добавьте фильтры, чтобы избежать ложных сигналов
  3. Корректировка коэффициентов стоп-лосс/прибыль на основе рыночных условий с целью ограничения потерь

Руководство по оптимизации

Некоторые способы улучшения этой стратегии:

  1. Добавить дополнительные фильтры для обеспечения действительных сигналов прорыва
  2. Оптимизировать коэффициенты стоп-лосса и прибыли
  3. Включение краткосрочных показателей для анализа в несколько временных рамок
  4. Использование машинного обучения для автоматической оптимизации параметров

Заключение

В общем, это простая и простая стратегия, которая оценивает тренд на основе еженедельных прорывов и скользящей средней. Она также контролирует риск с помощью стоп-лосса и прибыли. Она может служить справочной системой для долгосрочных акций Биткоина. Но есть некоторые ограничения, которые могут быть улучшены в качестве сигнала, настройке параметров, многочасовом анализе и т. Д.


/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © taberandwords
//developer: taberandwords
//author: taberandwords
//@version=4

strategy("WEEKLY BTC TRADING SCRYPT","WBTS",overlay=false,default_qty_type=strategy.fixed)

source=input(defval=close,title="source",group="STRATEGY")

btc=security('BTCUSDT','1W', source)
ma=sma(btc,8)

buy_condition= crossover(btc,ma) 
sell_condition= crossunder(btc,ma)

ma_color=input(defval=#FF3232,title="COLOR",group="MA")
ma_linewidth=input(defval=2,title="LINE WIDTH",group="MA")
graphic_color=input(defval=#6666FF,title="COLOR",group="GRAPHIC")
graphic_linewidth=input(defval=2,title="LINE WIDTH",group="GRAPHIC")

start_date=input(defval=2020,title="YEAR",group="STRATEGY EXECUTION YEAR")

loss_ratio=input(defval=1,title="LOSS RATIO", group="STRATEGY")
reward_ratio=input(defval=3,title="REWARD RATIO", group="STRATEGY")

if(year>=start_date)
    strategy.entry('BUY',long=true,when=buy_condition,alert_message='Price came to buying value!')

    if(strategy.long)
        alert('BTC buy order trigerred!',alert.freq_once_per_bar)
    strategy.exit(id="SELL",loss=loss_ratio,profit=reward_ratio,when=sell_condition,alert_message='Price came to position closing value!')
    if(sell_condition)
        alert('BTC sell order trigerred!',alert.freq_once_per_bar)
plot(series=source,title="WEEKLY CLOSE",color=graphic_color,linewidth=graphic_linewidth)
plot(ma,title="SMA8 WEEKLY",color=ma_color,linewidth=ma_linewidth)
plot(strategy.equity,display=0)


Больше