0bps

Strategy vault / Trend following

Stochastics Crossover Trading Strategy

This strategy uses stochastics crossover between K and D lines to generate trading signals, a typical stochastics trading strategy.

Author
ChaoZhang
Complexity
Intermediate · 42 lines
Parameters
9
Backtest bar
2h · intraday
Tested on
BTC/USDT · futures

Overview

This strategy uses stochastics crossover between K and D lines to generate trading signals, a typical stochastics trading strategy.

Strategy Logic

  1. Calculate stochastics K and D lines over a given period.

  2. K line crossover above D line generates buy signals.

  3. K line crossover below D line generates sell signals.

  4. Can set backtest date range to test strategy effectiveness.

  5. Simple and clear rules trading stochastics crossover.

Advantages

  1. Stochastics sensitive to overbought and oversold levels.

  2. K and D lines form easy trading signals.

  3. Backtest verifies strategy performance.

  4. Stochastics easy to compute and implement.

  5. Concise code easy for further development.

Risks

  1. Crossovers may generate false signals.

  2. No stop loss or take profit in place.

  3. Fails to differentiate trends and ranges.

  4. Backtest carries look-ahead bias.

  5. Real trading performance may differ from backtest.

Enhancement

  1. Test parameters to find optimum values.

  2. Add trend filter for additional validation.

  3. Build in stop loss and take profit mechanisms.

  4. Incorporate other factors for signal confirmation.

  5. Handle backtest data to eliminate biases.

  6. Paper trade to optimize parameters for live trading.

Conclusion

This strategy trades simple stochastics crossovers, easy to implement but requires refinements for stability. Enhancing it via parameter tuning, risk controls etc can transform it into a robust quant trading system.

Parameters

NameDefaultWhat it controls
v_input_135K
v_input_221D
v_input_321Smooth
v_input_42020Start Year
v_input_5trueStart Month
v_input_6trueStart Day
v_input_72030End Year
v_input_812End Month
v_input_931End Day

Source Pine Script

/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 2h
basePeriod: 15m
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/
// © utanico

//@version=4
strategy(title="Stochastic", overlay=true, shorttitle="Stoch")
periodK = input(35, title="K", minval=1)
periodD = input(21, title="D", minval=1)
smoothK = input(21, title="Smooth", minval=1)
startYear = input(type=input.integer, title = "Start Year", defval = 2020)
startMonth = input(type=input.integer, title = "Start Month", defval = 1)
startDay = input(type=input.integer, title = "Start Day", defval = 1)
endYear = input(type=input.integer, title = "End Year", defval = 2030)
endMonth = input(type=input.integer, title = "End Month", defval = 12)
endDay = input(type=input.integer, title = "End Day", defval = 31)

//Start date and time
test_start = timestamp(startYear, startMonth, startDay, 00, 00)
//End date time
test_end   = timestamp(endYear, endMonth, endDay, 00, 00)
//テストPeriodのSpecify
is_test = true

k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)

if (is_test)
    if (k > d)
        strategy.entry("Stoch_LE", strategy.long, comment="Stoch_LE")
    //if (strategy.opentrades > 0 and k < d)
        //strategy.close("Stoch_LE",comment="CloseLONG")
    if (k < d)
        strategy.entry("Stoch_SE", strategy.short, comment="Stoch_SE")
    //if (strategy.opentrades < 0 and k > d)
        //strategy.close("Stoch_SE",comment="CloseShort")

Published by ChaoZhang on the FMZ strategy square · last modified 2023-09-20. 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.

in Claude Code, Cursor, Codex & 4 more
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/Stochastics-Crossover-Trading-Strategy.md
  1. npx agenkit install engineering-kit in your project
  2. Paste the command into your agent and approve each phase
  3. 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

esc

Try , , or .

↑↓ move↵ open