
이 전략은 쌍 Hull 이동 평균 지표, 용량 가중 이동 평균 지표, MACD 지표 및 실제 강도 지표의 조합을 사용하여 트렌드에 대한 정확한 판단을 달성합니다. 그것은 시장 환경의 변화에 자동으로 적응 할 수 있으며 강한 적응력을 가지고 있습니다.
이 전략의 핵심 지표는 이중 헐 이동 평균이며, 두 개의 변수인 케이 (keh) 와 테이 (teh) 를 제어하여 계산한다. 이 두 개의 변수는 각각 빠른 선과 느린 선의 주기율을 결정한다. 빠른 선과 느린 선은 금색 포크를 구성하며, 현재 추세를 판단한다.
보조 판단 지표는 용량 가중 이동 평균meh1 ᄂ. 가격이 meh1보다 높을 때, 낙점 상황; 가격이 meh1보다 낮을 때, 낙점 상황 ᄂ.
또 다른 보조 판단 지표는 MACD이다. 그것은 빠른 이동 평균을 빼고 느린 이동 평균을 얻어 MACD를 얻으며 MACD의 이동 평균을 사용하여 신호선을 얻는다. MACD가 신호선보다 높을 때 전망이다.
마지막 보조 판단 지표는 TSI이며, 가격 변화 비율의 두 배의 평형 계산을 통해 얻습니다. 그것의 절대 값 크기는 가격 변화의 동력을 나타냅니다. 구매 및 판매 조건에서 TSI의 신호선을 판단하여 엔트리스 및 엑시트의 타이밍을 제어합니다.
이러한 지표의 신호를 통합하면 트렌드를 정확하게 판단할 수 있으며, 시장과 동조되는 파라미터를 자동으로 조정할 수 있다.
이중 헐 이동 평균을 주요 판단 지표로 사용하여, 다른 여러 지표의 조합으로 보조하여, 판단 정확도를 높이고, 거짓 신호를 줄일 수 있다.
TSI 지표를 적용하여 상장 및 상장 시기를 판단하여 위험을 제어할 수 있습니다.
다양한 매개 변수가 스스로 조정될 수 있고, 적응력이 강하며, 시장 변화에 자동으로 적응할 수 있다.
지표 조합과 파라미터가 스스로 적응하는 사고방식을 채택하여 전략의 안정성이 좋고 지속적인 수익성이 강하다.
TSI 지표 판단 시기를 추가했음에도 불구하고, 알고리즘이 사용하는 지표는 트렌드 유형이며, 흔들리는 펌프 시장에 부딪히면 수익과 손실의 변동이 증가합니다.
잘못된 매개 변수 설정은 전략의 실패로 이어질 수 있으며, 자신의 경험에 따라 합리적으로 매개 변수를 설정해야 한다.
다중 지수 포트폴리오는 계산량을 증가시키고, 데이터량이 많은 주식과 시간대에 대해 오류가 발생할 가능성이 커지고, 데이터 범위를 제어해야 한다.
측정값의 계산효과를 감시하고, 비정상적인 데이터의 간섭을 방지해야 한다.
BOLL 지표와 같은 다른 보조 지표를 추가하여 신호를 더 정확하고 신뢰할 수 있도록 테스트 할 수 있습니다.
시장 진출 논리를 최적화하고, 스톱 스톱 조건을 설정하고, 단편 적자를 제어한다.
거래 품종의 매개 변수를 훈련하고 최적화하여 다른 품종에 더 잘 적응하도록 한다.
최근 거래의 효과에 따라 정책 파라미터를 자동으로 조정할 수 있도록 변수 적응 모듈을 추가합니다.
이 전략은 여러 지표의 장점을 통합하고, 지표의 조합을 사용하여 트렌드 방향을 판단하고, 위험을 제어하면서 판단의 정확도를 높인다. 매개 변수 최적화와 논리 최적화를 통해 전략은 시장 변화에 더 잘 적응할 수 있으며, 연속 손실을 줄임으로써 더 많은 수익을 얻을 수 있다. 이 전략은 안정성이 좋으며, 주식 및 암호화폐와 같은 품종에 장기적으로 적용할 수 있다.
/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
// Quad-HullMA-cross & VWMA & MacD & TSI combination <<<<< by SeaSide420 >>>>>>
strategy("MultiCross420", overlay=true, calc_on_order_fills= true, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0)
keh=input(title="Double HullMA 1",defval=7, minval=1)
teh=input(title="Double HullMA 2",defval=14, minval=1)
meh=input(title="VWMA",defval=1, minval=1)
meh1=vwma(close,round(meh))
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
n2ma3=2*wma(close,round(teh/2))
nma2=wma(close,teh)
diff2=n2ma3-nma2,sqn2=round(sqrt(teh))
n2ma4=2*wma(close[2],round(teh/2))
nma3=wma(close[2],teh)
diff3=n2ma4-nma3,sqn3=round(sqrt(teh))
n3=wma(diff2,sqn2)
n4=wma(diff3,sqn3)
fastLength = input(title="MacD fastLength", defval=7)
slowlength = input(title="MacD slowlength", defval=14)
MACDLength = input(title="MacD Length", defval=3)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
a1=plot(n1,color=c),a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = cross, color=b, linewidth = 3)
a3=plot(n3,color=c),a4=plot(n4,color=c)
plot(cross(n3, n4) ? n1 : na, style = cross, color=b, linewidth = 3)
//a5=plot(meh1,color=c)
long = input(title="TSI Long Length", defval=5)
short = input(title="TSI Short Length", defval=3)
signal = input(title="TSI Signal Length", defval=2)
linebuy = input(title="TSI Upper Line", defval=4)
linesell = input(title="TSI Lower Line", defval=-4)
price = close
double_smooth(src, long, short) =>
fist_smooth = ema(src, long)
ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
closelong = n1<n2 and n3<n4 and n1>meh1
if (closelong)
strategy.close("Long")
closeshort = n1>n2 and n3>n4 and n1<meh1
if (closeshort)
strategy.close("Short")
longCondition = strategy.opentrades<1 and n1>n2 and MACD>aMACD and n1<meh1 and n3>n4 and ema(tsi_value, signal)>linesell
if (longCondition)
strategy.entry("Long",strategy.long)
shortCondition = strategy.opentrades<1 and n1<n2 and MACD<aMACD and n1>meh1 and n3<n4 and ema(tsi_value, signal)<linebuy
if (shortCondition)
strategy.entry("Short",strategy.short)