이 전략은 이동 평균의 교차 원칙을 적용하여 빠른 선과 느린 선의 교차로 트렌드 방향을 판단하여 구매 및 판매 신호를 발송합니다. 이 전략은 간단하고 신뢰할 수 있으며 안정적인 수익을 추구하는 투자자에게 적합합니다.
이 전략은 두 개의 이동 평균을 사용하며, 각각 7 일 평균을 빠른 라인으로, 5 월 평균을 느린 라인으로 사용한다. 빠른 라인은 가격 변화를 더 빨리 포착하고 느린 라인은 잡음을 제거하여 트렌드 방향을 판단한다. 빠른 라인이 아래쪽에서 느린 라인을 돌파하면 황소 시장 신호로 간주하고 더 많은 돈을 벌고 빠른 라인이 위쪽에서 내려가 느린 라인을 깨면 곰 시장 신호로 간주하고 공백을 만든다.
구체적으로, 전략은 7일 간단한 이동 평균과 5월 간단한 이동 평균을 계산하여 가격 그래프에 그려집니다. 7일선은 아래에서 5월선을 가로질러 상향으로 돌파할 때 구매 신호를 생성하고, 7일선은 위쪽에서 아래로 내려가 5월선을 돌파할 때 판매 신호를 생성합니다. 전략은 또한 신호를 생성하는 시기를 시각적으로 표시합니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이론적 근거는 간단하고 신뢰할 수 있으며, 널리 알려진 이동 평균의 교차 원칙에 기초한다.
두 개의 이동 평균만 사용해서, 파라미터를 선택하는 것은 간단하고, 실행하기 쉽다.
빠른 선과 느린 선이 함께 사용되어 트렌드를 효과적으로 식별하고 시장 소음을 필터링 할 수 있습니다.
다른 주기적 평균선을 사용해서 다른 시간 스케일의 트렌드 변화를 포착할 수 있다.
간단한 구현, 이해하기 쉬운 코드, 명확한 논리.
시각적 신호는 명확하고 직관적이며, 운영의 결정은 명확하다.
이 전략에는 몇 가지 위험도 있습니다.
평선 교차만 기반으로 하는 경우, 잘못된 트리거 신호가 발생하기 쉽다.
트렌드의 강도나 약도를 제대로 판단할 수 없고, 흔들림이 있을 때 자주 중단될 수 있다.
고정평균선주기는 시장변화에 적응할 수 없으며, 최적화해야 한다.
이 거래소에서 거래할 수 있는 지점을 판단할 수 없고, 시장에서 거래할 수 있는 위험도 있다.
더 간단한 이론적 근거로, 효과는 할인될 수 있고, 수익의 여지가 제한된다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
다른 지표들을 추가하여 매매 지점을 결정합니다. 예를 들어 KDJ 지표는 과매매를 판단합니다.
손실을 추적하는 것과 같은 손실을 막는 메커니즘을 추가합니다.
평균선 주기 변수를 최적화하여 다른 상황 주기에도 적용할 수 있도록 한다.
트래픽 필터링을 늘려서 가짜 돌파구를 피하십시오.
추세가 강하거나 약하다고 평가하는 방법, 예를 들어, 평균선 기울기를 계산하고, 다른 강도를 조작한다.
더 많은 시간 주기의 분석과 함께, 추세가 지속되는지 판단하기 위해.
이 전략은 이동 평균의 교차 원리에 기초하여, 간단하고 안정적으로 황금 수동 동향을 식별한다. 장점은 조작이 간단하며, 단점은 동향을 맹목적으로 따르는 위험이 있다. 매개 변수 최적화, 보조 지표의 추가와 같은 방법을 통해 전략의 효과를 높일 수 있다. 투자자는 자신의 위험 선호도에 따라 선택할 수 있다.
/*backtest
start: 2022-09-30 00:00:00
end: 2023-10-06 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/
// © dadashkadir
//@version=4
strategy("Mount MaV - Day MaV CrossOver Strgty", shorttitle="Yusram Str.", overlay=true)
src = input(title= "Kaynak", type=input.source, defval=close)
mav = input(title="Hareketli Ortlama Tipi", defval="SMA", options=["SMA", "EMA", "WMA"])
Gbar = input(title="Günlük Bar Sayısı", defval=7, minval=1, maxval=999)
Abar = input(title="Aylık Bar Sayısı", defval=5, minval=1, maxval=999)
//displacement = input(20, minval=1, title="Displacement")
getMA(src, length) =>
ma = 0.0
if mav == "SMA"
ma := sma(src, length)
ma
if mav == "EMA"
ma := ema(src, length)
ma
if mav == "WMA"
ma := wma(src, length)
ma
ma
long = "M" //Aylık
ln = security(syminfo.ticker, long, src)
lnma = getMA(ln, Abar)
gnma = getMA(src, Gbar)
col1= gnma>gnma[1]
col3= gnma<gnma[1]
colorM = col1 ? color.green : col3 ? color.navy : color.yellow
l1 = plot(lnma, title="MhO", trackprice = true, style=plot.style_line, color=color.red, linewidth=3)
l2 = plot(gnma, title="DhO", trackprice = true, style=plot.style_line, color=colorM, linewidth=3)
fill(l1, l2, color = lnma < gnma ? color.green : color.red, title="Gölgelendirme", transp=90)
zamanaralik = input (2020, title="Backtest Başlangıç Tarihi")
al = crossover (gnma, lnma) and zamanaralik <= year
sat = crossover (lnma, gnma) and zamanaralik <= year
plotshape(al, title = "Giriş", text = 'Al', style = shape.labelup, location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sat, title = "Çıkış", text = 'Sat', style = shape.labeldown, location = location.abovebar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny)
FromDay = input(defval = 1, title = "Str. Başlama Tarihi Gün", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "Str. Başlama Tarihi Ay", minval = 1, maxval = 12)
FromYear = input(defval = 2015, title = "Str. Başlama Tarihi Yıl", minval = 2005)
ToDay = input(defval = 1, title = "Str. Bitiş Tarihi Gün", minval = 1, maxval = 31)
ToMonth = input(defval = 1, title = "Str. Bitiş Tarihi Ay", minval = 1, maxval = 12)
ToYear = input(defval = 9999, title = "Str. Bitiş Tarihi Yıl", minval = 2006)
Start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
Finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
Timerange() =>
time >= Start and time <= Finish ? true : false
if al
strategy.entry("Al", strategy.long, when=Timerange())
if sat
strategy.entry("Sat", strategy.short, when=Timerange())