
이 전략의 이름은 布林带量化交易策略이다. 이는 布林带通道 (布林带通道) 를 개선한 지수와 주식 거래 전략이다. 이 전략은 布林带参数 (布林带参数) 을 조정하여 장점과 단점의 동시에 최적화를 실현함으로써, 하락 시장에서 모두 이익을 얻을 수 있다.
이 전략의 핵심 논리는 브린 띠 통로를 기반으로 한다. 브린 띠는 중도, 상도, 하도로 구성되어 있으며, 중도로는 n일 종결 가격의 이동 평균이며, 상도, 하도 각각 중도에서 하향의 편차이다. 가격이 상도에 가까워지면, 시장이 너무 뜨거워질 수 있음을 나타내고, 공백 기회를 형성한다. 가격이 하도에 가까워지면, 시장이 과소 평가 될 수 있음을 나타내고, 다단 기회를 형성한다.
이 전략은 두 개의 브린 대역을 사용한다. 브린 대역 1은 더 많은 것을 할 수 있으며, 브린 대역 2는 공백을 할 수 있다. 브린 대역 1의 매개 변수는 길이가 25이고, 편차는 2.9배이며, 브린 대역 2의 매개 변수는 길이가 36이며, 편차는 3.2배이다.
전통적인 브린 벨트 전략에 비해, 이 전략은 다음과 같은 장점이 있습니다.
다공간 쌍방 거래가 가능합니다. 쌍방 시나리오에 적용되며, 시장의 다양한 단계의 거래 기회를 잡을 수 있습니다.
매개 변수는 최적화되었다. 두 개의 브린 띠의 매개 변수는 신중하게 테스트되어 거래 신호를 효과적으로 발송할 수 있다.
위험 통제 가능. 이동적 손해배상 방식을 채택하여 일방적인 위험을 효과적으로 제어할 수 있다.
이 전략에는 몇 가지 잠재적인 위험도 있습니다.
부린반도 위기: 부린반도 통로가 시장의 급격한 변동이 있을 때 부린반도 통로가 실패할 수 있다.
중지 손실은 보호 위험. 이동 중지 손실이 보호 될 수 있으므로 손실을 확대 할 수 있습니다. 적절하게 중지 손실을 허용하거나 신속하게 중지 손실을 피할 수 있습니다.
거래 빈도가 너무 높은 위험. 매개 변수가 너무 민감하게 설정되어 거래 빈도가 거래 비용을 증가시킬 수 있습니다.
이 전략에는 더 많은 최적화할 여지가 있습니다.
다른 지표 필터링 신호와 결합하여, 부린带失效时误交易을 피한다. K선 형태, 거래량 등.
동적으로 조정된 파라미터는 브린띠를 다른 주기의 시장 특성에 더 적합하게 만든다. 예를 들어, 적응형 브린띠를 채택한다.
손실을 최적화하는 방법, 추적 손실 또는 지수 이동 손실을 채택하여 위험을 효과적으로 제어하십시오.
기계 학습 알고리즘과 결합하여 매개 변수의 자동 최적화를 구현한다.
이 전략 overall는 쌍부린 띠 통로를 기반으로, 매개 변수 최적화를 통해, 장기 단기 양자 거래에 대한 최적화를 달성한다. 전통적인 부린 띠 전략에 비해, 다중 하위권, 위험 제어의 장점이 있으며, 시장의 다른 단계의 기회를 잡기 위해 적용되며, 실제적인 가치가 있다. 그러나 부린 띠의 실효성, 손해 막기 등이 존재하는 위험도 있다. 관련 상품화되기 전에 추가적인 최적화 및 검증이 필요하다.
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
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/
// © exlux99
//@version=4
strategy("BB NDX strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, calc_on_every_tick = true, commission_type = strategy.commission.percent, commission_value = 0.01)
source = close
length = input(25, minval=1, title="Length BB long")
mult = input(2.9, minval=0.001, maxval=50, step=0.1, title="MULT BB long")
length2 = input(36, minval=1, title="Length BB short")
mult2 = input(3.2, minval=0.001, maxval=50, step=0.1, title="MULT BB short")
basis = sma(source, length)
dev = mult * stdev(source, length)
dev2 = mult2 * stdev(source, length2)
upper = basis + dev2
lower = basis - dev
buyEntry = crossover(source, lower)
sellEntry = crossunder(source, upper)
longEntry=input(true)
shortEntry=input(true)
g(v, p) => round(v * (pow(10, p))) / pow(10, p)
risk = input(100)
leverage = input(1.0, step = 0.5)
c = g((strategy.equity * leverage / open) * (risk / 100), 4)
tplong=input(0.065, step=0.005, title="Take profit % for long")
sllong=input(0.04, step=0.005, title="Stop loss % for long")
tpshort=input(0.025, step=0.005, title="Take profit % for short")
slshort=input(0.04, step=0.005, title="Stop loss % for short")
if(longEntry)
strategy.entry("long",1,c,when=buyEntry)
strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT', alert_message = 'closeshort')
strategy.close("long",when=sellEntry)
if(shortEntry)
strategy.entry("short",0,c,when=sellEntry)
strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort')
strategy.close("short",when=buyEntry)