볼린저 밴드를 기반으로 한 중장기 양적 트레이딩 전략


생성 날짜: 2023-09-14 20:09:13 마지막으로 수정됨: 2023-09-14 20:09:13
복사: 2 클릭수: 679
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이 글은 부린띠 지표를 적용하여 중기 및 장기간 양적 거래를 하는 전략에 대해 자세히 설명한다. 이 전략은 부린띠 판단을 통해 가격 돌파를 통해 거래 신호를 형성한다.

1 전략

이 전략은 주로 다음과 같은 브린 벨트 지표를 적용합니다.

  1. 특정 주기의 평균값을 기준선으로 계산합니다.

  2. 가격의 표준 차이를 계산하고, 그 범위를 곱합니다.

  3. 중도수 ± 범위는 부린띠의 오르내리는 궤도를 구성한다.

  4. 가격의 부린을 뚫고 하향 궤도에 올랐을 때 거래 신호가 형성된다.

구체적인 거래 논리는 다음과 같습니다.

부린을 뚫고 하락할 때, 구매 신호를 만들어서 다중 포지션을 한다.

가격이 브린을 뚫고 궤도에 올랐을 때, 팔기 신호가 만들어지고, 포지션이 비어진다.

그리고 Stop Loss Point의 비율을 설정하여 손실을 고정합니다.

전체적으로, 이 전략은 가격의 브루린을 뚫고 하향으로 가는 것을 판단하여 중·장선 추세를 점진적으로 잡습니다.

2 전략적 장점

이 전략의 주요 장점은 다음과 같습니다.

첫째, 브린띠는 가격 돌파와 반전 신호를 판단하고 중·장기적 추세를 파악할 수 있다.

둘째, 직접적이고 통제 가능한 스톱스토프 설정은 적극적인 자금 관리를 돕습니다.

마지막으로, 전략 규칙은 간단하고 명확하며, 실행 및 최적화하기 쉽습니다.

  1. 잠재적인 위험

그러나 우리는 다음과 같은 위험도 주의해야 합니다.

첫째, 브린 벨트 구간은 안정적인 신호를 만들기 위해 정밀 최적화가 필요합니다.

두 번째, 너무 작은 손실로 인해 수익이 부족할 수 있고, 너무 큰 손실로 인해 너무 큰 위험이 발생할 수 있습니다.

마지막으로, 너무 많은 거래가 발생하지 않도록 해야 합니다.

네 가지 내용

이 문서에서는 브린 띠 지표를 사용하여 트렌드 추적을 하는 중장기 양자 거래 전략에 대해 자세히 소개합니다. 이 전략은 가격의 중장기 트렌드를 순차적으로 포착할 수 있지만, 파라미터 간격과 스톱 손실 수준을 최적화해야 합니다.

전략 소스 코드
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//------------------------------------
//
// 『おすすめストラテジーSS1』
// 『BitMEX XBTUSD 30分足向け中長期用ストラテジー』
//  本番用ストラテジーファイル
//
//
//
//------------------------------------
//【説明】
// 『おすすめストラテジーSS1』のPineスクリプトです。
//------------------------------------
 
//@version=3
// strategy(title = "『おすすめストラテジーSS1』", shorttitle="Strategy1", initial_capital=1200000, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.05, overlay=true)
 
 
//------------------------------------
//
//ストラテジーロジック
//
//------------------------------------
 
 
source = close
 
length = input(51, minval = 1, title = "移動平均")
mult = input(3.01, minval = 0.001,step=0.01, maxval = 10, title = "マルチ")
 
Rikaku = input(14.2, minval = 0.1, step=0.1,maxval = 100, title = "利確(%)")
Songiri = input(99, minval = 0.1, maxval = 100, title = "損切(%)")
 
base = sma(source, length)
range = mult * stdev(source, length)
 
upper = base + range
lower = base - range
 
short_cond = crossover(source, lower)
long_cond = crossunder(source, upper)
 
 
cl = 0.0
cl := na(cl[1]) ? sma(source, length) : (cl[1] * (length - 1) + source) / length
 
plot(cl, color=black)
 
up_plot = plot(upper, color=blue)
low_plot = plot(lower, color=red)
 
fill(up_plot, low_plot,color=#009900)
 
//------------------------------------
//
//オーダー処理
//
//------------------------------------
 
 
if (long_cond)
 
	strategy.entry("Long_Entry", strategy.long, oca_name="BollingerBands", comment="Long")
 
	//BitFlyerのようなJPY建ての場合は以下のコードを使います。他の通貨ペアにする場合も1ティックが異なるため桁数の変更が必要です。
	//strategy.exit("LE Exit", "BBandLE", profit = close*(Rikaku/100)*100, loss = close*(Songiri/100)*100, comment="Close")
	strategy.exit("Long_Exit", "Long_Entry", profit = close*(Rikaku/100)*10, loss = close*(Songiri/100)*10, comment="LongClose")
 
if (short_cond)
 
	strategy.entry("Short_Entry", strategy.short, oca_name="BollingerBands",  comment="Short")
 
    //BitFlyerのようなJPY建ての場合は以下のコードを使います。他の通貨ペアにする場合も1ティックが異なるため桁数の変更が必要です。
    //strategy.exit("SE Exit", "BBandSE", profit = close*(Rikaku/100)*100, loss = close*(Songiri/100)*100, comment="Close")
    strategy.exit("Short_Exit", "Short_Entry", profit = close*(Rikaku/100)*10, loss = close*(Songiri/100)*10, comment="ShortClose")