극한 단기 스칼핑 전략은 가격이 지지선을 접근하거나 돌파할 때 단기 포지션을 설정하고 매우 작은 스톱 로스를 설정하고 높은 주파수 거래를 위해 수익 수준을 취하는 것을 시도합니다. 이 전략은 수익을 위해 시장 변동을 포착하기 위해 단기 가격 돌파를 이용합니다.
이 전략은 먼저 가격의 선형 회귀선을 계산한다. 실제 종료 가격이 예측 종료 가격보다 낮다면, 긴 포지션이 설정된다. 실제 종료 가격이 예측 종료 가격보다 높으면, 짧은 포지션이 설정된다. 스톱 손실과 이익 취득은 매우 적은 수의 피프로 설정된다. 이 전략은 단지 긴, 단 또는 모든 방향 거래를 선택할 수 있다.
주요 매개 변수는 다음과 같습니다.
이 전략의 주요 아이디어는 이동 평균의 단기 가격 돌파구를 포착하는 것입니다. 가격이 지원 또는 저항선을 접근하거나 돌파 할 때, 적시에 포지션을 설정합니다. 그리고 수익을 실현하기 위해 매우 작은 스톱 로스를 설정하고 이익을 취하고 즉시 포지션을 닫고 프로세스를 반복합니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
또한 몇 가지 위험이 있습니다.
이에 대응하는 위험 관리 조치에는 다음이 포함됩니다.
추가 최적화 방향은 다음과 같습니다.
극한 단기 스칼핑 전략은 전형적인 고주파 거래 전략이다. 주요 가격 수준 주위에 포지션을 설정하고 매우 작은 스톱 로스를 설정하고 이익을 취함으로써 단기 가격 변동을 포착합니다. 높은 수익을 얻을 수 있지만 특정 위험도 있습니다. 지속적인 테스트와 최적화로 전략은 안정성과 수익성을 위해 더욱 향상 될 수 있습니다.
/*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()