Kase Dynamic Stop Loss Strategy
This strategy is based on Mr. Kase's dynamic stop loss approach, computing price's dynamic range to find optimal stop loss and take profit levels for balancing profits and losses. Strategy Logic: 1. Calculate price's…
This strategy is based on Mr. Kase's dynamic stop loss approach, computing price's dynamic range to find optimal stop loss and take profit levels for balancing profits and losses.
Strategy Logic:
Calculate price's dynamic range indices RWH and RWL.
Derive deviation level index Pk from RWH and RWL.
When Pk>0, compute stop loss based on deviation level. When Pk<0, compute take profit.
Deviation multiples generally range from 1-3 standard deviations.
Take opposing position when price hits stop loss/profit.
Advantages:
Dynamic stops/profits adapt to changing volatility.
Stops are neither too tight nor too loose.
Mathematical approach avoids emotional and subjective judgments.
Risks:
Stop calculations lag, potentially missing best stop timing.
Parameter tuning needed to balance stops and targets.
No limit on loss size, risks large losing trades.
In summary, this approach can intelligently optimize stops and targets to some extent but still requires robust backtesting. It also cannot fully eliminate subjective risks so prudent trading remains essential.
Parameters
| Name | Default | What it controls |
|---|---|---|
| v_input_1 | 30 | Length |
| v_input_2 | 0 | Trade From Level: 4 | 2 | 3 | 1 |
| v_input_3 | false | Trade reverse |
Source Pine Script
/*backtest
start: 2023-01-01 00:00:00
end: 2023-04-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 09/10/2019
// The Kase Dev Stops system finds the optimal statistical balance between letting profits run,
// while cutting losses. Kase DevStop seeks an ideal stop level by accounting for volatility (risk),
// the variance in volatility (the change in volatility from bar to bar), and volatility skew
// (the propensity for volatility to occasionally spike incorrectly).
//
// Kase Dev Stops are set at points at which there is an increasing probability of reversal against
// the trend being statistically significant based on the log normal shape of the range curve.
// Setting stops will help you take as much risk as necessary to stay in a good position, but not more.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Kase Dev Stops Backtest", overlay = true)
Length = input(30, minval=2, maxval = 100)
Level = input(title="Trade From Level", defval=4, options=[1, 2, 3, 4])
reverse = input(false, title="Trade reverse")
RWH = (high - low[Length]) / (atr(Length) * sqrt(Length))
RWL = (high[Length] - low) / (atr(Length) * sqrt(Length))
Pk = wma((RWH-RWL),3)
AVTR = sma(highest(high,2) - lowest(low,2), 20)
SD = stdev(highest(high,2) - lowest(low,2),20)
Val4 = iff(Pk>0, highest(high-AVTR-3*SD,20), lowest(low+AVTR+3*SD,20))
Val3 = iff(Pk>0, highest(high-AVTR-2*SD,20), lowest(low+AVTR+2*SD,20))
Val2 = iff(Pk>0, highest(high-AVTR-SD,20), lowest(low+AVTR+SD,20))
Val1 = iff(Pk>0, highest(high-AVTR,20), lowest(low+AVTR,20))
ResPrice = iff(Level == 4, Val4,
iff(Level == 3, Val3,
iff(Level == 2, Val2,
iff(Level == 1, Val1, Val4))))
pos = iff(close < ResPrice , -1, 1)
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1 , 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )Published by ChaoZhang on the FMZ strategy square · last modified 2023-09-13. Collected in the Quant Trading Vault. Unvalidated research: re-test with your own data and costs before trusting it.
Build this with AgenKit
A spec is not a trading system. Paste this into your coding agent and AgenKit runs a specialist team — architecture, test-first build, risk gates, review — with paper trading on by default.
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/Kase-Dynamic-Stop-Loss-Strategy.md- npx agenkit install engineering-kit in your project
- Paste the command into your agent and approve each phase
- Get tests, backtest, risk controls and a paper-trading switch
Understand it first
Before you run this, read the lesson behind the idea and how to backtest it honestly. Specs like this one are the survivors of an unknown number of trials; deflate their results accordingly.
Related specs
- Multi Indicator Volatility Trading RSI EMA ATR StrategyPine Script · Volatility · 3m
- ATR Trailing Stop Bands StrategyPine Script · Volatility · 1d
- Volatility Capture RSI Bollinger Band StrategyPine Script · Volatility · 15m
- Big Snapper Alerts R30 Chaiking Volatility condition TP RSIPine Script · Volatility · 2h
- Intraday Scalable Volatility Trading StrategyPine Script · Volatility · 1h
- Multi Indicator Dynamic Position Size Volatility Adaptive Quantitative Trading StrategyPine Script · Volatility · 1d