Strategy · Pine Script v6 · On the chart

PF_WS01_REV

by pineforge-4pass· code credited to PineForge contributors 2026

This strategy uses two exponential moving averages (fast period 5, slow period 13) to detect trend changes via crossover signals on the price chart.

View on GitHub

GitHub stars1on the repository
Pine versionv6current
Lines of code53
Settings2inputs
LicenceApache-2.0
Last update5 days ago23 Oct 2026

Add It to Your TradingView Chart

  1. 1Copy the scriptPress Copy script above, or the copy button on the code below.
  2. 2Open the Pine EditorOpen a TradingView chart and choose Pine Editor at the bottom of the screen.
  3. 3Paste over the templateCreate a new strategy, select all of the template text and paste. Press Save and give it a name.
  4. 4Add it to the chartPress Add to chart. The trades and results appear in the Strategy Tester tab; adjust the settings with the gear icon.

Source Code

53 lines of Pine Script v6 from validation/composite-wunderscalper-explicit-reverse-01/strategy.pine, published under Apache-2.0. Keep the author's credit and licence lines when you reuse it.

strategy.pine
// This Pine Script® code is licensed under Apache-2.0
// SPDX-License-Identifier: Apache-2.0
// © PineForge contributors 2026
//
// PF probe wunder-scalper-probe-01-reverse-on-signal — explicit close-then-entry reverse logic
// Clean-room: written from validation goal, not from source.
//
// Purpose: isolates the explicit reverse-position pattern used by
// WunderTrading-style scalp bots. On a long signal, if the position is
// currently short, the script first calls `strategy.close_all()` and then
// `strategy.entry("L", strategy.long)` — same bar, two distinct orders
// rather than the single auto-reversing `strategy.entry`. The engine
// surface under test is the same-bar `close_all → entry` ordering: TV
// generates a closing trade for the short followed by an opening trade
// for the long, both at the next-bar open by default. Any disagreement
// in trade list length or fill price points to engine reverse-handling
// drift.
//
// Validation goal: bit-exact trade list against TradingView's broker emulator
// on the reference 15-minute ETH-USDT-USDT feed. Each reversal must show as
// two trades (close + open), not a single auto-reverse trade.
//
// TV setup: 15m chart, ETH-USDT-USDT (Binance USDT-M Perpetual). Full window
// matching corpus/data/ohlcv_ETH-USDT-USDT_15m.csv. Strategy properties:
// leave defaults from script header. Export "List of trades" → tv_trades.csv.
//@version=6
strategy("PF probe wunder-scalper-probe-01-reverse-on-signal", shorttitle="PF_WS01_REV",
     overlay=true, initial_capital=1000000,
     commission_type=strategy.commission.percent, commission_value=0,
     slippage=0, default_qty_type=strategy.fixed, default_qty_value=1,
     pyramiding=1, process_orders_on_close=false)

// ---- inputs --------------------------------------------------------
int i_fast = input.int(5,  "Fast EMA", minval=2, maxval=50)
int i_slow = input.int(13, "Slow EMA", minval=3, maxval=100)

// ---- direction signal ---------------------------------------------
float ema_fast = ta.ema(close, i_fast)
float ema_slow = ta.ema(close, i_slow)

bool long_signal  = ta.crossover(ema_fast,  ema_slow)
bool short_signal = ta.crossunder(ema_fast, ema_slow)

// ---- explicit reverse routing -------------------------------------
if long_signal
    if strategy.position_size < 0
        strategy.close_all(comment="reverse close short")
    strategy.entry("L", strategy.long, qty=1, comment="open long")

if short_signal
    if strategy.position_size > 0
        strategy.close_all(comment="reverse close long")
    strategy.entry("S", strategy.short, qty=1, comment="open short")

Overview

PF_WS01_REV enters long on fast EMA crossing above slow EMA and short on the reverse crossover. The script includes explicit reverse-position routing: when a signal arrives in the opposite direction while holding the opposite position, it first closes all existing trades then opens the new position on the same bar. Inputs control EMA lengths. No stop loss is applied by default. It draws signals and position status directly on the price chart.

Details

Published by

pineforge-4pass on GitHub

Code credit

PineForge contributors 2026, as written in the script's header

Type

Strategy, Pine Script v6

Draws

On the price chart

Category

Trend, Oscillators & momentum, Moving averages, Scalping

Markets

Any symbol

Timeframes

M1-M5, M15-H1

Risk Notes

  • The strategy can add several entries in the same direction
  • The strategy enters trades without a stop loss

Topics

algorithmic-tradingbacktestingparitypine-scriptpinescriptquantitative-financetest-corpustradingview

Settings

The inputs you can change from the gear icon on the chart. Defaults are the author's.

SettingTypeDefaultVariable
Fast EMAint5i_fast
Slow EMAint13i_slow
Third-party code. ForexR did not write, test or endorse this script, and the summary above was generated automatically from its code and README. Indicators describe the past, and a strategy's backtest can look better than live trading, especially when a script repaints. Check it in the Strategy Tester and on a demo account before you rely on it.

Similar Pine Scripts

This strategy generates trading signals on the 5-minute price chart using Williams Fractals for trend reversals, combined with EMA fast and slow trend filters and optional RSI confirmation. Long entries trigger on bullish fractals aligned with rising EMA and R

Strategy v5 TrendOscillators & momentum
Updated 2 years ago · GPL-3.0 GitHub repository of 5min Williams Fractals Scalping (3commas)
53 stars

This strategy trades EUR/USD on the price chart using a fast and slow exponential moving average crossover filtered by RSI. It enters long when the fast EMA crosses above the slow EMA while RSI is above 50 and below the overbought level, and enters short on th

Strategy v6 TrendMoving averages
Updated 2 months ago · MPL-2.0 GitHub repository of EUR/USD EMA9-21 + RSI Scalping Strategy
13 stars

This strategy plots on the price chart and enters from a moving-average filter, ADX and Gann colours. Price above a 200-period EMA allows only longs; price below allows only shorts. A Gann aqua colour with ADX above a key level opens a long, and a Gann brown c

Strategy v5 TrendOscillators & momentum
Updated 1 year ago · None stated GitHub repository of Ruckard TradingZone ADX Gann

Scalping 3EMA

by rodrigo-brito
9 stars

This long-only strategy calculates three exponential moving averages with lengths of 50, 100, and 150 periods, plotting them directly on the price chart. It also calculates a 14-period RSI and MACD. The strategy opens long positions when the moving averages al

Strategy v4 TrendOscillators & momentum
Updated 5 years ago · MIT GitHub repository of Scalping 3EMA
2 stars

This strategy executes trend-following scalping setups by combining fast and slow exponential moving averages with a smoothed Stochastic oscillator. It enters long positions when the fast EMA is above the slow EMA and the Stochastic is oversold, and short posi

Strategy v5 TrendOscillators & momentum Repaints
Updated 7 months ago · None stated GitHub repository of WINNER MNQ Strategy - Optimized 2026

More strategys

Trade Your Charts With a Regulated Broker

Compare brokers that connect to TradingView, with spreads, minimum deposits and leverage side by side.

Compare brokers