극한 단기 스칼핑 전략

저자:차오장, 날짜: 2024-01-17 12:06:39
태그:

img

전반적인 설명

극한 단기 스칼핑 전략은 가격이 지지선을 접근하거나 돌파할 때 단기 포지션을 설정하고 매우 작은 스톱 로스를 설정하고 높은 주파수 거래를 위해 수익 수준을 취하는 것을 시도합니다. 이 전략은 수익을 위해 시장 변동을 포착하기 위해 단기 가격 돌파를 이용합니다.

전략 논리

이 전략은 먼저 가격의 선형 회귀선을 계산한다. 실제 종료 가격이 예측 종료 가격보다 낮다면, 긴 포지션이 설정된다. 실제 종료 가격이 예측 종료 가격보다 높으면, 짧은 포지션이 설정된다. 스톱 손실과 이익 취득은 매우 적은 수의 피프로 설정된다. 이 전략은 단지 긴, 단 또는 모든 방향 거래를 선택할 수 있다.

주요 매개 변수는 다음과 같습니다.

  • 원본 가격: 종료 가격
  • 선형 회귀 선의 길이는: 14
  • 오프셋: 1
  • 거래 방향: 전부/만 구매/만 판매
  • 스톱 로스 및 수익을 피프로: 아주 작은 고정 피프 또는 최소 틱 피프

이 전략의 주요 아이디어는 이동 평균의 단기 가격 돌파구를 포착하는 것입니다. 가격이 지원 또는 저항선을 접근하거나 돌파 할 때, 적시에 포지션을 설정합니다. 그리고 수익을 실현하기 위해 매우 작은 스톱 로스를 설정하고 이익을 취하고 즉시 포지션을 닫고 프로세스를 반복합니다.

이점 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 높은 주파수 거래에 적합한 높은 주파수 거래는 더 많은 단기 가격 변동을 포착 할 수 있습니다.
  2. 매우 작은 스톱 로스 및 취득은 단일 손실을 제어하는 데 도움이됩니다.
  3. 다양한 시장 환경에 적응하기 위해 거래 방향을 유연하게 선택할 수 있습니다.
  4. 간단한 논리로 구현하기 쉽습니다.

위험 분석

또한 몇 가지 위험이 있습니다.

  1. 가격 격차는 손실을 확대시킬 수 있습니다.
  2. 높은 거래 비용
  3. 신호 오류가 발생할 수 있으며 신속한 주의와 최적화가 필요합니다.
  4. 지속적인 시장 모니터링이 필요합니다.

이에 대응하는 위험 관리 조치에는 다음이 포함됩니다.

  1. 오버나이트 거래를 비활성화
  2. 거래 비용의 영향을 줄이기 위해 스톱 로스를 최적화하고 수익을 취하십시오.
  3. 잘못된 신호를 줄이기 위해 매개 변수를 테스트하고 최적화합니다.
  4. 시장에 주의를 기울여

최적화 방향

추가 최적화 방향은 다음과 같습니다.

  1. 신호를 필터하는 다른 지표를 추가하고 잘못된 거래를 줄이십시오.
  2. 동적으로 스톱 로스를 조정하고 이윤을 취합니다.
  3. 과도한 장착을 줄이기 위해 매개 변수를 최적화
  4. 합리적인 스톱 로스 및 영리 구성을 위해 거래 비용 영향을 고려하십시오.
  5. 제품 및 시간 프레임에 걸쳐 테스트 안정성

요약

극한 단기 스칼핑 전략은 전형적인 고주파 거래 전략이다. 주요 가격 수준 주위에 포지션을 설정하고 매우 작은 스톱 로스를 설정하고 이익을 취함으로써 단기 가격 변동을 포착합니다. 높은 수익을 얻을 수 있지만 특정 위험도 있습니다. 지속적인 테스트와 최적화로 전략은 안정성과 수익성을 위해 더욱 향상 될 수 있습니다.


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Extreme Scalping", overlay=true )
src = input(close,title="Source")
len = input(defval=14, minval=1, title="Length")
offset = input(1)
out = linreg(src, len, offset)
plot(out)

gap_tick=input(100)
fixedTP=input(300)
fixedSL=input(100)
useFixedSLTP=input(true)
direction=input(defval="ALL",title="Direction of order",options=["ALL","BUY ONLY","SELL ONLY"])
gap=gap_tick*syminfo.mintick
plot(out+gap,color=color.red)
plot(out-gap,color=color.green)

tp=useFixedSLTP?fixedTP:gap_tick
sl=useFixedSLTP?fixedSL:gap_tick

longCondition = close<(out-gap) and (direction=="ALL" or direction=="BUY ONLY")
shortCondition = close>(out+gap) and (direction=="ALL" or direction=="SELL ONLY")

if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("exit long","Long",profit = tp,loss = sl)
    

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("exit short","Short",profit =tp,loss=sl)
    
// === Backtesting Dates === thanks to Trost

// testPeriodSwitch = input(true, "Custom Backtesting Dates")
// testStartYear = input(2019, "Backtest Start Year")
// testStartMonth = input(10, "Backtest Start Month")
// testStartDay = input(3, "Backtest Start Day")
// testStartHour = input(0, "Backtest Start Hour")
// testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0)
// testStopYear = input(2019, "Backtest Stop Year")
// testStopMonth = input(12, "Backtest Stop Month")
// testStopDay = input(31, "Backtest Stop Day")
// testStopHour = input(23, "Backtest Stop Hour")
// testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStopHour,0)
// testPeriod() =>
//     time >= testPeriodStart and time <= testPeriodStop ? true : false
// isPeriod = testPeriodSwitch == true ? testPeriod() : true
// // === /END

// if not isPeriod
//     strategy.cancel_all()
//     strategy.close_all()
        

더 많은