낮은 스캐너 스마트 추적 방법

저자:차오장, 날짜: 2023-11-01 16:12:00
태그:

img

전반적인 설명

로우 스캐너 스마트 추적 방법 (Low Scanner Smart Tracking Method) 은 재색하지 않는 외환 거래 전략이다. 로우 스캐너를 사용하여 낮은 지점을 찾아내고 무역 신호 판단을 위해 헐 이동 평균과 결합하여 높은 승률을 달성 할 수 있습니다.

원칙 분석

첫째, 전략은 낮은 스캐너를 사용하여 낮은 지점을 찾습니다. 낮은 스캐너는 가격과 볼륨의 RSI 값을 계산하고 WMA 곡선과 비교하여 RSI가 WMA보다 낮을 때 낮은 지점을 결정합니다.

둘째, 전략은 무역 신호 판단을 위해 허스 이동 평균을 사용합니다. 그것은 다른 기간을 가진 두 개의 허스 MA를 계산하고, 짧은 기간이 더 긴 기간을 넘을 때 길고, 밑을 넘을 때 짧습니다.

마지막으로, 전략은 낮은 포인트 스캔 신호와 허ల్ MA 신호를 결합하고, 낮은 스캐너가 낮은 포인트 신호를 내면 Hull MA 신호를 유발하여 엔트리 전략을 형성합니다.

이렇게 하면 시장의 낮은 지점을 먼저 파악하고 추세를 추적함으로써 잘못된 입시 시기를 효과적으로 피할 수 있고 거래 시스템의 승률을 향상시킬 수 있습니다.

이점 분석

저 스캐너 스마트 추적 방법의 주요 장점은 다음과 같습니다.

  1. 낮은 스캐너를 사용하여 시장의 낮은 지점을 정확하게 식별하고 높은 지점에서 구매를 피할 수 있습니다.

  2. Hull MA는 큰 트렌드를 파악할 수 있는 훌륭한 트렌드 추적 지표입니다.

  3. 낮은 스캐너와 헬스 MA를 결합하면 서로 확인되고 많은 잡음과 잘못된 신호를 필터링합니다.

  4. 점진적인 스톱 로스 출구 메커니즘을 채택하면 수익을 극대화하고 인하를 피할 수 있습니다.

  5. 이 전략은 지표에 기반한 논리를 사용하며, 신뢰할 수 있는 역사적 데이터를 조작하지 않습니다.

위험 분석

이 전략의 주요 위험은 다음과 같습니다.

  1. 낮은 스캐너는 낮은 지점을 놓치고 거래 기회를 잃을 수 있습니다. 스캐닝 범위를 확장하기 위해 매개 변수를 조정할 수 있습니다.

  2. 시장은 급격히 역전될 수 있으며, 스톱 로스가 발생하게 될 수 있습니다. 스톱 로스 범위는 합리적으로 느려지고 포지션 크기를 제어 할 수 있습니다.

  3. 부적절한 매개 변수 설정은 너무 많은 또는 너무 적은 거래 신호를 생성 할 수 있습니다. 가장 좋은 조합을 찾기 위해 매개 변수를 반복적으로 최적화해야합니다.

  4. 이 전략은 명백한 트렌드를 가진 외환 쌍에만 적용되며, 범위 제한 또는 오스실레이션 시장에는 적합하지 않습니다.

최적화 방향

이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 낮은 지점을 더 정확하게 식별하기 위해 낮은 스캐너의 매개 변수를 최적화하십시오.

  2. 추세를 더 정확하게 추적하기 위해 Hull MA의 매개 변수를 최적화합니다.

  3. 신호 신뢰성을 높이기 위해 MACD, KDJ와 같은 다른 지표 필터를 추가하십시오.

  4. 거래 신호 판단을 돕기 위해 기계 학습 모델 예측을 추가합니다.

  5. 스톱 로스 메커니즘을 최적화하여 시장 변동성에 따라 동적으로 조정합니다.

  6. 화폐 관리 규칙에 따라 역동적으로 포지션 크기를 조정하기 위해 포지션 사이즈 전략을 최적화하십시오.

결론

낮은 스캐너 스마트 추적 방법 (Low Scanner Smart Tracking Method) 은 높은 승률이없는 재화화하지 않는 외환 거래 전략이다. 트렌드가 명확할 때 시장의 낮은 지점을 정확하게 식별하고 트렌드에 진입하여 점진적인 스톱 로스로 수익을 올릴 수 있다. 이 전략은 최적화할 수 있는 많은 공간이 있으며 강력한 자동화 거래 시스템으로 발전할 수 있다.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-25 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © theCrypster 2020

//@version=4
// strategy(title = "Low Scanner Forex strategy", overlay = false, pyramiding=1,initial_capital = 1000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
leng=1
p1=close[1]
min=input(1440)
len55 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   min / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7
//taken from https://www.tradingview.com/script/Ql1FjjfX-security-free-MTF-example-JD/
tf3 = input("W", type=input.resolution)
ti = change( time(tf3) ) != 0
T_c = fixnan( ti ? close : na )

vrsi = rsi(cum(change(T_c) * volume), leng)
pp=wma(vrsi,len55)

d=(vrsi[1]-pp[1])
min1 =input(60)
len100 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   min1 / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7
x=ema(d,len100)
//
zx=x/-1
col=zx > 0? color.lime : color.orange
plot(zx,color=col,linewidth=1)
//

tf10 = input("W", title = "Timeframe", type = input.resolution, options = ["1", "5", "15", "30", "60","120", "240","360","720", "D", "W"])

length = input(24, title = "Period", type = input.integer)
shift = input(1, title = "Shift", type = input.integer)

hma(_src, _length)=>
    wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))
    
hma3(_src, _length)=>
    p = length/2
    wma(wma(close,p/3)*3 - wma(close,p/2) - wma(close,p),p)


a = security(syminfo.tickerid, tf10, hma(close, length))
b =security(syminfo.tickerid, tf10, hma3(close[1], length)[shift])
//plot(a,color=color.gray)
//plot(b,color=color.yellow)
close_price = close[0]
len = input(25)

linear_reg = linreg(close_price, len, 0)


//plot(linear_reg, color=color.blue, title="LR", linewidth=3)

buy=crossover(linear_reg, b) 
sell=crossunder(linear_reg, b) 
//
// Time period input
testStartYear = input(2016, "BACKTEST START YEAR", minval = 1980, maxval = 2222) 
testStartMonth = input(06, "BACKTEST START MONTH", minval = 1, maxval = 12)
testStartDay = input(01, "BACKTEST START DAY", minval = 1, maxval = 31)
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2222, "BACKTEST STOP YEAR", minval=1980, maxval = 2222)
testStopMonth = input(12, "BACKTEST STOP MONTH", minval=1, maxval=12)
testStopDay = input(31, "BACKTEST STOP DAY", minval=1, maxval=31)
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriod = time >= testPeriodStart and time <= testPeriodStop ? true : false
l = crossover(zx,0) or buy
        
if l and testPeriod
    strategy.entry("buy", strategy.long)

per(pcnt) =>
    strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=25, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=0.5, minval=0.01)
tp2=input(title=" Take profit2", defval=1, minval=0.01)
tp3=input(title=" Take profit3", defval=1.5, minval=0.01)
tp4=input(title=" Take profit4", defval=2, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)


더 많은