
이 전략은 헐 이동 평균과 T3 이동 평균의 장점을 결합하여 시내 간 거래의 전략을 설계했습니다. 이 전략은 단선 거래와 중장선 트렌드 추적을 위해 사용할 수 있습니다. 주요 거래 신호 라인으로 헐 이동 평균과 T3 이동 평균의 평균을 계산하여 진입 및 출퇴근 시간을 판단합니다.
이 전략은 주로 헐 이동 평균과 T3 이동 평균의 계산에 기초한다.
헐 이동 평균 (Hull Moving Average, HMA) 은 가중된 이동 평균의 반복 계산 방법을 통해 시장 소음을 효과적으로 어내고, 가격 경향의 평평한 곡선을 나타낸다. 그것은 단순 이동 평균과 지수 이동 평균보다 가격 변화에 더 민감하며, 또한 가짜 돌파구를 효과적으로 억제한다.
T3 이동 평균은 지연 효과를 줄이는 동시에 특정 초변수 조정으로 이동 평균을 가격에 더 가깝게 만들 수 있습니다. 그것은 여러 번의 지수 계산을 부드럽게 함으로써 가격 변화에 더 빠르게 반응 할 수 있습니다.
이 전략은 두 가지의 평균값을 계산하여 주요 거래 지표로 사용한다. 그 평균값의 방향에 따라 진입 시기를 판단한다: 현재 주기 평균값이 이전 주기보다 높으면 다단계 진입 신호; 현재 주기 평균값이 이전 주기보다 낮으면 공백 진입 신호이다.
출장 규칙에 대해, 가격이 스톱로스 지점을 넘거나 스톱 지점에 도달하면 출장한다. 평균선 방향이 변하면 출장 동작도 수행한다.
이 전략은 헐 이동 평균과 T3 이동 평균의 장점을 결합하여 부드럽게 소음을 제거하고 가격 변화에 신속하게 반응하여 종합적인 지표를 생성합니다. 둘째, 이 전략은 단선 및 중장선 거래에 동시에 적용되며, 계산된 주기 변수를 조정하여 적합한 주기 거래를 유연하게 조정할 수 있습니다.
이 전략은 주로 평행선 지표에 의존하며, 흔들리는 추세에서 여러 번의 가짜 신호를 일으킬 수 있다. 또한, 평행선은 약간의 지연성을 가지고 있으며, 가격 변동의 최적의 입문 시점을 놓칠 수 있다. 스톱 스톱 포인트를 설정하는 것은 신중하게 해야 하며, 너무 느긋하거나 너무 긴급하지 않도록 한다. 마지막으로, 다른 통화와 거래 주기는 최적화 파라미터를 테스트해야 하며, 직접적으로 복사할 수 없다.
다른 보조 지표들, 예를 들어 강약 지표들, 변동률 지표들, 등을 추가하는 것을 고려할 수 있다. 이러한 지표들은 일률 신호를 검증하고, 거짓 신호를 필터링한다. 다양한 일률 조합과 가중 알고리즘을 테스트하여, 일률 신호의 효과를 최적화한다.
이 전략은 헐 이동 평균과 T3 이동 평균의 장점을 통합하여 트렌드 방향을 판단하는 통합 지표를 형성한다. 매개 변수를 최적화하면 이 전략은 다른 거래 주기에 유연하게 적용될 수 있다. 전략은 장점이 있지만, 후퇴, 가짜 신호 등의 문제가 있다. 다른 보조 지표, 최적화 매개 변수 및 동적 스톱포드와 같은 수단을 추가하면 지속적으로 최적화하여 더 나은 효과를 얻을 수 있다.
/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 1h
basePeriod: 15m
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(title="Swing HULL + T3 avg", shorttitle="Swing HULL T3 AVG", overlay=true)
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
////////////////////////////GENERAL INPUTS//////////////////////////////////////
length_Ma= input(defval=50, title="Length MAs", minval=1)
//==========HMA
getHULLMA(src, len) =>
hullma = wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len)))
hullma
//==========T3
getT3(src, len, vFactor) =>
ema1 = ema(src, len)
ema2 = ema(ema1,len)
ema3 = ema(ema2,len)
ema4 = ema(ema3,len)
ema5 = ema(ema4,len)
ema6 = ema(ema5,len)
c1 = -1 * pow(vFactor,3)
c2 = 3*pow(vFactor,2) + 3*pow(vFactor,3)
c3 = -6*pow(vFactor,2) - 3*vFactor - 3*pow(vFactor,3)
c4 = 1 + 3*vFactor + pow(vFactor,3) + 3*pow(vFactor,2)
T3 = c1*ema6 + c2*ema5 + c3*ema4 + c4*ema3
T3
hullma = getHULLMA(close,length_Ma)
t3 = getT3(close,length_Ma,0.7)
avg = (hullma+t3) /2
////////////////////////////PLOTTING////////////////////////////////////////////
colorado = avg > avg[1]? color.green : color.red
plot(avg , title="avg", color=colorado, linewidth = 4)
long=avg>avg[1]
short=avg<avg[1]
tplong=input(0.08, title="TP Long", step=0.01)
sllong=input(1.0, title="SL Long", step=0.01)
tpshort=input(0.03, title="TP Short", step=0.01)
slshort=input(0.06, title="SL Short", step=0.01)
if(time_cond)
strategy.entry("long",1,when=long)
strategy.exit("closelong", "long" , profit = close * tplong / syminfo.mintick, loss = close * sllong / syminfo.mintick, alert_message = "closelong")
strategy.entry("short",0,when=short)
strategy.exit("closeshort", "short" , profit = close * tpshort / syminfo.mintick, loss = close * slshort / syminfo.mintick, alert_message = "closeshort")