More screenshots
Works with the AI tools you already use
Pine Script Trading Strategy Debugger & Optimizer
The first objective is to understand the intended strategy behavior.
Secure checkout via Stripe
See it in action
You say
Project: Fictional TradingView strategy — MomentumRail v3.7
Pine Version: v5
Script Type: strategy
Instrument: MNQ1!
Timeframe: 3 minutes
Chart: Standard Candles
Session: 09:35–15:50 America/New_York
Expected Strategy:
LONG
Entry: Fast EMA crosses above Slow EMA AND RSI > 55 AND in session AND position is flat
Stop: 1.5 ATR below original entry
Target: 2R from original entry
Trailing: After price reaches +1R, trail 1 ATR below the highest price since activation.
Pyramiding: Disabled
Reentry: Allowed only after the previous position is fully closed and a new EMA crossover occurs.
SHORT
Symmetrical opposite logic.
Alerts: One BUY alert only when an actual confirmed long strategy entry is created. One SELL alert only when an actual confirmed short strategy entry is created. Separate EXIT alert when the position closes.
Commission: Already configured by user.
Slippage: Already configured by user.
Observed Problems:
- Multiple long entries occasionally appear even though pyramiding should be disabled.
- Stop-loss moves every bar before the trailing stop activates.
- Long trailing stop sometimes moves downward.
- Short take-profit is occasionally above the entry price.
- BUY alerts sometimes fire while already long.
- Strategy Tester entry marker appears one bar after the plotted BUY marker.
- On several historical trades the stop and target appear to be touched in the same candle.
- The strategy sometimes trades at 16:00 even though new entries should end at 15:50.
- Higher-timeframe 15-minute EMA filter appears suspiciously perfect historically.
- After a stopped trade, the next crossover sometimes does not open a position.
- User wants the strategy updated to the current supported Pine version if migration is safe.
- User wants cleaner architecture without materially changing strategy behavior.
Relevant Existing Logic Description:
- longSignal is true while fastEMA > slowEMA rather than only on crossover.
- session condition wraps both entry and exit logic.
- stop price is recalculated every bar using close - ATR × multiplier.
- trailing stop is calculated from current close.
- same persistent trail variable is reused for long and short trades.
- alertcondition uses longSignal, while strategy.entry uses longSignal AND inSession AND strategy.position_size == 0.
- 15-minute filter uses higher-timeframe data.
- strategy.exit references several order IDs.
Requested Work:
- diagnose all logical bugs;
- check repainting and lookahead;
- correct entries;
- correct SL/TP;
- repair trailing stop;
- verify pyramiding;
- fix session behavior;
- synchronize alerts;
- explain chart-signal vs Strategy Tester fill timing;
- review same-bar stop/target ambiguity;
- migrate Pine version if appropriate;
- refactor into clearer modules;
- provide regression tests;
- document every behavior-changing fix.
Special Constraint:
Do not redesign the underlying trading strategy. Preserve the original economic intent wherever possible.
Your agent does
=== PINE SCRIPT TRADING STRATEGY DEBUG AUDIT ===
Strategy: MomentumRail v3.7
Current Pine Version: v5
Target: Current supported Pine version, subject to migration verification
Primary Objective: Repair execution and state defects without redesigning the underlying EMA/RSI trend-following model.
=== EXECUTIVE DIAGNOSIS ===
The strategy contains several independent defects.
The most material are:
- Persistent long/short conditions are being treated as entry events.
- Fixed stops are being recalculated from the current close.
- Trailing stops are not monotonic.
- Long and short trailing states share persistent state.
- Short target direction contains a sign error.
- Alert logic is broader than actual strategy-entry logic.
- The session wrapper may be disabling protective exits.
- Session boundary behavior requires explicit timezone verification.
- The 15-minute higher-timeframe filter requires a repaint/lookahead review.
- Reentry state appears not to reset consistently after some stop exits.
- Same-bar stop/target events cannot be ordered confidently from standard 3-minute OHLC data alone.
- The plotted signal and strategy fill marker represent different stages of the order lifecycle.
Severity Summary:
Critical: Higher-timeframe lookahead must be ruled out.
High: Stop recalculation Trailing-stop regression Alert/order mismatch Session wrapper around exits Reentry state reset
Medium: Entry event architecture Short target sign Signal-vs-fill visualization
Platform Limitation: Same-bar stop/target ordering
=== ISSUE 1 — DUPLICATE / REPEATED ENTRY SIGNAL ===
Observed:
longSignal remains true for every bar where:
fastEMA > slowEMA
Expected:
A new trade should require a fresh crossover after the previous trade closes.
Root Cause:
The script is using a persistent regime condition as if it were a transition event.
Current conceptual condition:
fastEMA > slowEMA
Required transition:
Fast EMA crosses above Slow EMA.
Recommended architecture:
longCross
fresh bullish crossover event
longSetup
longCross AND RSI confirmation AND higher-timeframe confirmation
longEntryAllowed
longSetup AND inEntrySession AND position is flat AND cooldown/reentry state permits entry
Final executable entry:
longEntry
longEntryAllowed
Expected Effect:
One new long setup per genuine crossover cycle rather than repeated eligibility while the EMAs remain bullish.
=== ISSUE 2 — FIXED STOP MOVES BEFORE TRAILING ACTIVATION ===
Severity: HIGH
Expected:
Initial stop remains 1.5 ATR below the original entry until trailing activates.
Observed:
Stop is recalculated each bar using:
Current Close - Current ATR × Multiplier
Root Cause:
The script does not preserve the entry-time stop.
Correct Architecture:
When a new long position is confirmed:
Capture:
entryPrice entryATR initialStop
Conceptually:
initialStop = entryPrice - entryATR × 1.5
Persist the value.
Before trailing activation:
activeStop = initialStop
After trailing activation:
activeStop = max(initialStop, trailingStop)
Reset all stored values after returning flat.
Important:
If the strategy intends dynamic ATR before trail activation, this would be a strategy change.
Based on supplied requirements, the stop should be fixed from the original entry.
=== ISSUE 3 — LONG TRAILING STOP MOVES DOWNWARD ===
Severity: HIGH
Observed:
Long trailing stop can decline.
Expected:
Once activated, long trail can only tighten.
Root Cause:
Candidate stop is recalculated from current close without preserving the prior best stop.
Correct monotonic rule:
For long:
newTrail = max(previousTrail, candidateTrail)
For short:
newTrail = min(previousTrail, candidateTrail)
Reset after flat.
=== ISSUE 4 — SHARED LONG / SHORT TRAILING STATE ===
Severity: HIGH
Observed:
Same persistent variable is reused.
Risk:
A value from a previous long can contaminate a later short state or vice versa.
Recommended:
Separate state conceptually into:
longTrailActive longTrailPrice
shortTrailActive shortTrailPrice
or rigorously reset one shared state during every direction transition.
Separate state is easier to audit.
=== ISSUE 5 — SHORT TAKE-PROFIT DIRECTION ===
Severity: HIGH
Expected:
Short profit target must be below entry.
If percentage target:
Long: Entry × (1 + targetPct)
Short: Entry × (1 - targetPct)
If 2R target:
Risk: Absolute distance between Entry and Stop.
Short Target: Entry - Risk × 2
Any short target above entry is directionally incorrect for a standard profit-taking limit.
=== ISSUE 6 — BUY ALERT WHILE ALREADY LONG ===
Severity: HIGH
Current Alert:
longSignal
Actual Strategy Entry:
longSignal AND inSession AND positionFlat
Root Cause:
Alert logic represents setup intent, not executable entry.
If the desired BUY alert means:
"An actual confirmed strategy long entry is being generated"
then the alert should use the same final entry condition.
Recommended:
buyAlertEvent = finalLongEntryCondition
Also add:
Bar confirmation if required by strategy design.
One-shot protection if the execution model can evaluate multiple times on a realtime bar.
=== ISSUE 7 — SESSION WRAPPER BLOCKS EXITS ===
Severity: HIGH
Current Architecture:
if inSession entries exits
Problem:
Once the session closes, protective stop/target logic may no longer be updated/submitted as intended.
Recommended Separation:
ENTRY SESSION:
Controls: New Long Entry New Short Entry
PROTECTIVE EXIT LOGIC:
Remains active according to strategy risk rules.
Conceptual:
if inEntrySession evaluate new entries
if positionLong manage long stop / target / trail
if positionShort manage short stop / target / trail
This prevents session restrictions intended for entries from silently disabling risk management.
=== ISSUE 8 — ENTRY AT 16:00 ===
Status: REQUIRES TIMEZONE / BAR-TIMESTAMP VERIFICATION
Supplied intended end: 15:50 America/New_York
Check:
Session string Timezone argument Chart timezone Exchange timezone Bar open timestamp Bar close timestamp
Potential Explanation:
A bar may begin before the cutoff but close later.
The entry condition may be evaluated according to the bar's timestamp semantics rather than the visual time interpretation assumed by the user.
Required Test:
Plot:
inEntrySession bar time longEntry condition
around:
15:45 15:48 15:50 15:51 15:55 16:00
Do not modify the session until the exact timestamp behavior is reproduced.
=== ISSUE 9 — 15-MINUTE FILTER LOOKS HISTORICALLY PERFECT ===
Severity: CRITICAL UNTIL REVIEWED
Concern:
Higher-timeframe values can create misleading historical behavior if the completed 15-minute value is made available to earlier 3-minute bars.
Required Audit:
Inspect:
Requested Timeframe Requested Expression Lookahead Configuration Offsets Bar Confirmation Historical Mapping Realtime Mapping
Requirement:
A 3-minute decision must not use the final 15-minute value before that 15-minute bar was actually complete unless the strategy explicitly allows incomplete HTF data and accepts the realtime instability.
If future HTF values are confirmed:
Classification: Critical lookahead defect.
Expected Backtest Impact:
Potentially substantial.
=== ISSUE 10 — REENTRY SOMETIMES FAILS AFTER STOP ===
Severity: HIGH
Likely Cause:
Persistent state is not reset on all exit pathways.
Audit:
trailActive entryLock cooldown lastSignal tradeCycle stopState targetState
Flat reset should occur based on actual position transition rather than only one specific exit condition.
Recommended conceptual transition:
previousPosition != flat AND currentPosition == flat
Then reset trade-specific state.
However:
If one-trade-per-trend behavior is intended, do not reset the crossover-cycle lock until a new opposite/reset condition occurs.
This distinction must be preserved.
=== ISSUE 11 — PLOTTED BUY VS STRATEGY ENTRY ONE BAR LATER ===
Status: LIKELY EXPECTED EXECUTION TIMING
Possible sequence:
Bar N: Long condition becomes confirmed at close.
Bar N close: Order is created.
Bar N+1: Market order is filled according to strategy execution settings.
Plot marker: May currently be drawn on Bar N.
Strategy trade marker: May appear on Bar N+1.
Therefore:
Visual signal time and simulated fill time are not automatically identical.
Required:
Document separately:
Signal Bar Order Creation Order Fill Displayed Marker
Do not force same-bar execution merely to visually align the markers unless it matches the intended model.
=== ISSUE 12 — STOP AND TARGET TOUCHED IN SAME BAR ===
Status: BACKTEST-MODEL LIMITATION
Timeframe: 3 minutes
Problem:
OHLC confirms:
High Low
but does not necessarily reveal which was reached first.
If both protective stop and target fall inside the bar range, the result depends on intrabar sequencing.
Recommended Validation:
Use finer-resolution data / supported intrabar validation.
Or:
Adopt conservative assumptions for ambiguous bars.
Do not claim precise historical order when standard OHLC cannot prove it.
=== PYRAMIDING AUDIT ===
Intended: Disabled.
Required:
Verify strategy configuration.
Also ensure:
Position state is part of final entry condition.
Do not rely exclusively on the pyramiding setting to express the trading model.
Reason:
Unique order IDs, reversals, and persistent conditions can still create behavior that surprises users.
=== ORDER-ID ARCHITECTURE ===
Recommended:
Long Entry: L
Short Entry: S
Long Exit: L-EXIT
Short Exit: S-EXIT
If partial targets are introduced later:
L-TP1 L-TP2 S-TP1 S-TP2
Avoid unnecessary ID proliferation.
=== RECOMMENDED MODULE ARCHITECTURE ===
- Inputs
- Constants
- Entry Session
- Indicators
- Higher-Timeframe Data
- Long / Short Signal Events
- Position Transition Detection
- Entry-Time State Capture
- Stop / Target Calculation
- Trailing-State Management
- Orders
- Alerts
- Visuals
- Debug Diagnostics
=== PINE VERSION MIGRATION ===
Current: v5
Recommendation:
Migrate only after existing behavior has been stabilized and baseline results recorded.
Migration Sequence:
- Freeze current inputs.
- Record Strategy Tester baseline.
- Repair known logic defects.
- Record corrected baseline.
- Migrate syntax.
- Resolve compiler changes.
- Compare trade-by-trade behavior.
- Investigate every unexplained difference.
Compile success alone is not sufficient.
=== ALERT ARCHITECTURE ===
Required Events:
BUY: Actual final long-entry event.
SELL: Actual final short-entry event.
EXIT: Confirmed transition from non-flat to flat.
Recommended payload fields:
event symbol timeframe side price stop target strategy version timestamp
Exact webhook fields depend on the external integration and must not be invented.
=== RESET ARCHITECTURE ===
On new long:
Capture: entry price entry ATR long stop long target
Reset: short trail state
On new short:
Capture: entry price entry ATR short stop short target
Reset: long trail state
On flat transition:
Reset: active stop state target state trailing state breakeven state trade-specific flags
Preserve: signal-cycle state only when required by one-trade-per-trend rules.
=== REGRESSION TEST SUITE ===
TEST 1 — LONG ENTRY
Condition: Fresh bullish crossover + RSI confirmation + session + flat.
Expected: Exactly one long entry.
TEST 2 — PERSISTENT BULL CONDITION
Condition: fastEMA remains above slowEMA for 20 bars.
Expected: No additional long entry without a new qualifying crossover.
TEST 3 — INITIAL LONG STOP
Expected: 1.5 entry-time ATR below original entry.
Before trailing: Stop remains fixed.
TEST 4 — LONG TRAILING ACTIVATION
Condition: Price reaches +1R.
Expected: Trail activates once.
TEST 5 — LONG TRAILING RETRACEMENT
Condition: Candidate trail becomes lower than existing trail.
Expected: Existing trail is preserved.
TEST 6 — SHORT TARGET
Expected: Target below short entry.
TEST 7 — STOP EXIT
Expected: Position closes. Trade-specific state resets.
TEST 8 — NEW CROSSOVER AFTER STOP
Expected: New trade allowed when all fresh-entry requirements are satisfied.
TEST 9 — END OF ENTRY SESSION
Expected: No new trade after cutoff.
TEST 10 — PROTECTIVE EXIT OUTSIDE ENTRY WINDOW
Expected: Risk management remains active according to strategy specification.
TEST 11 — ALERT WHILE ALREADY LONG
Expected: No additional BUY entry alert.
TEST 12 — HTF CONFIRMATION
Expected: No historical use of unavailable 15-minute information.
TEST 13 — REALTIME BAR
Expected: No unintended duplicate alert caused by repeated intrabar recalculation.
TEST 14 — OPPOSITE SIGNAL
Expected: Behavior matches explicit ignore/close/reverse rule.
=== DEBUG TABLE RECOMMENDATION ===
Temporarily display:
Long Cross Short Cross RSI Long RSI Short HTF Long HTF Short Entry Session Position Entry Price Initial Stop Current Stop Target Trail Active Trail Candidate Final Trail Cooldown / Cycle Lock
This will make state errors visible directly on the chart.
=== CHANGE PRIORITY ===
P0 — CRITICAL
Audit 15-Minute HTF Lookahead
P1 — HIGH
Fix Fixed-Stop Architecture Fix Trailing Monotonicity Separate Long / Short Trail State Correct Short Target Synchronize Alerts Separate Entry Session from Protective Exits Fix Flat-State Reset
P2 — MEDIUM
Convert Persistent EMA Condition to Explicit Crossover Event Clarify Signal-vs-Fill Visualization Validate Session Boundary
P3 — REFACTOR
Reorganize Modules Improve Naming Add Debug Table Add Regression Harness Migrate Pine Version
=== FINAL ENGINEERING DIRECTION ===
Primary Debugging Principle: Preserve strategy intent while correcting implementation behavior.
Primary Entry Principle: Use explicit transition events for transition-based strategies.
Primary Stop Principle: A fixed entry stop should not move unless the strategy explicitly says it should.
Primary Trailing Principle: Trailing state must activate, tighten, and reset predictably.
Primary Repainting Principle: Never use future information to improve historical appearance.
Primary Session Principle: Restrict new entries independently from protective position management.
Primary Alert Principle: Entry alerts should use the same final executable conditions as strategy entries when the alert represents an actual trade event.
Primary Migration Principle: Compare behavior, not merely compilation.
Primary Backtest Principle: A visually perfect chart is less important than historically honest execution.
Status: Ready for Source-Level Repair, Pine Migration, Regression Testing, and TradingView Verification
What you get
About this skill
Pine Script Trading Strategy Debugger & Optimizer is a specialist TradingView engineering skill built exclusively for debugging, repairing, converting, refactoring, validating, and improving Pine Script indicators and strategies.
It is designed for traders, Pine Script developers, quantitative researchers, strategy creators, automation developers, agencies, educators, and TradingView users who need more than a generic code assistant.
The skill understands that Pine Script has a unique execution model and that a script can:
Compile Successfully Yet Trade Incorrectly
Plot Correct Signals Yet Place Orders on Different Bars
Backtest Profitably Yet Use Future Information
Display Correct Stops Yet Submit Incorrect Exit Orders
Fire Alerts Yet Never Trigger the Corresponding Strategy Entry
Work Historically Yet Behave Differently in Realtime
The skill therefore uses a structured engineering process:
Intent → Reproduce → Classify → Isolate → Trace → Explain → Correct → Verify → Regression Test → Document
It does not blindly rewrite code.
The first objective is to understand the intended strategy behavior.
The second objective is to determine what the existing script actually does.
The third objective is to identify the smallest safe change that reconciles those two behaviors.
The skill can diagnose:
Compiler Errors Runtime Errors Type Errors Scope Problems Invalid Function Calls Deprecated Syntax Namespace Errors Incorrect Arguments Logical Bugs State Bugs Entry Bugs Exit Bugs Stop-Loss Bugs Take-Profit Bugs Trailing-Stop Bugs Breakeven Bugs Pyramiding Bugs Reversal Bugs Session Bugs Timezone Bugs Date-Filter Bugs Alert Bugs Higher-Timeframe Bugs Intrabar Assumption Problems Historical/Realtime Divergence Backtest Mismatches
Compiler problems can be classified separately from behavioral defects.
Typical compiler issues include:
Unknown Identifier Wrong Function Signature Type Mismatch Invalid Argument Deprecated Construct Missing Parenthesis Scope Misuse Unsupported Syntax
The skill explains:
Where the problem occurs Why Pine rejects the construct What the correct pattern is Whether downstream changes are required
It avoids rewriting a complete script when a local correction is sufficient.
Logical debugging focuses on actual trading behavior.
The skill can trace:
Signal Generation Position State Entry Permission Entry Order Position Transition Exit Activation Stop Price Target Price Trailing State Session State Cooldown State Alert State
Complex bugs can be reduced to a state trace such as:
Bar Signal Session Position Before Order Position After Stop Target Alert
This is useful for:
Missed Entries Duplicate Entries Unexpected Reversals Incorrect Stop Movement Wrong Alert Timing State That Does Not Reset
The skill audits every entry using an explicit specification.
Potential entry fields include:
Entry ID Direction Signal Confirmation Position Requirement Session Requirement Cooldown Order Type Expected Timing
It checks whether:
The condition remains true across multiple bars. The same signal can trigger repeatedly. Position state is checked. Long and short signals can become true simultaneously. Pyramiding is intentional. A reversal is intentional. The signal uses confirmed information. A visual offset makes the historical signal appear earlier than it was actually known.
Duplicate-entry bugs are diagnosed carefully.
Common causes include:
Persistent Conditions Missing Flat-State Check Missing Transition Detection Incorrect Pyramiding Multiple strategy.entry() Calls Stale State Variables Reentry and Primary Entry Both Triggering Session State Not Resetting
Possible corrections include:
Position-State Checks Crossing Logic One-Shot Latches Entry Locks Cooldown Rules State Reset
The skill does not add restrictions unless they match the intended strategy.
It distinguishes:
fast > slow
from:
fast crosses above slow
because the first condition may remain true for many bars while the second represents a transition event.
The skill can define:
One Trade per Signal One Trade per Session One Trade per Trend Cooldown After Entry Cooldown After Exit Long-Only Mode Short-Only Mode
All reset behavior is made explicit.
Reversal behavior is also explicitly defined.
An opposite signal may:
Be Ignored Close the Current Position Reverse Immediately Wait Until Flat Wait Until the Next Bar Require Additional Confirmation
The skill prevents accidental reversal caused by implicit order behavior.
Exit logic receives a dedicated audit.
For every exit, the skill can identify:
Exit ID Linked Entry Exit Type Activation Exit Price Quantity Priority Expected Timing
It checks whether:
The exit references the correct entry ID. The exit remains active when expected. Multiple exits overwrite or compete with one another. Partial exit quantities are valid. The remaining position is managed correctly. A market exit collides with a protective stop or target. A reversal bypasses intended exit handling.
The skill creates clear order-ID architecture.
Possible conventions include:
L S
L-TP1
L-SL
L-TRAIL
S-TP1
S-SL
S-TRAIL
Every exit should have clear ownership.
The skill audits stop-loss architecture.
Supported stop types include:
Fixed Price Percentage Points Ticks
ATR
Structure-Based Breakeven Trailing
Every stop can define:
Reference Price Distance Calculation Time Direction Update Rule Gap Behavior Intrabar Sensitivity
Common stop bugs include:
Long Stop Above Entry Short Stop Below Entry Fixed Stop Recalculated Every Bar Dynamic Stop Accidentally Frozen Stop Based on Current Close Instead of Entry Stop Reset After Scale-In Stop Linked to Wrong Entry Multiple Exits Overwriting Stop Stop Becoming NA Stop Activating Before Position Exists Stop Remaining Active After Position Closes
For a fixed stop, the skill can preserve the stop value from entry instead of recalculating it from changing market values.
ATR stops can explicitly distinguish:
Entry-Time ATR Dynamic ATR
because these produce materially different behavior.
The skill audits take-profit logic.
Supported targets include:
Fixed Price Percentage Points Ticks ATR Multiple R-Multiple Structure Target Partial Target Ladder
Common target bugs include:
Target Based on Current Close Instead of Entry Wrong Short-Side Sign Target Reset Every Bar Target Linked to Wrong Entry Partial Quantity Exceeding Remaining Position Unexpected Stop/Target Competition Misunderstood Same-Bar Fill
R-multiple targets can use:
Risk = Absolute Difference Between Entry and Stop
Long Target: Entry + Risk × R
Short Target: Entry - Risk × R
The skill makes directional price mathematics explicit.
Partial-exit systems can define:
Target Sequence Quantity Percentage Remaining Position Remaining Stop Breakeven Activation Final Exit
It verifies that requested exit quantities do not unintentionally exceed the position.
Breakeven behavior can define:
Activation Threshold Breakeven Price Offset One-Time Activation Interaction with Trailing Stop Reset Condition
The skill can detect breakeven states that oscillate on and off because activation was not latched.
Trailing-stop engineering is a major capability.
Supported approaches include:
Built-In Trailing Custom Trailing Price ATR Trail Percentage Trail Highest-High Trail Lowest-Low Trail Structure Trail Chandelier-Style Trail
Every trailing system can define:
Activation Trail Source Trail Distance Update Frequency Whether It May Loosen Reset Condition Long Behavior Short Behavior
For monotonic trailing behavior:
Long: The stop normally moves upward or stays unchanged.
Short: The stop normally moves downward or stays unchanged.
The skill detects:
Trailing Stop Moving Backward Repeated Activation Trail Resetting from Entry Every Bar Trail Activating Too Early Future Pivot Used for Trailing Trail Becoming NA Trail State Persisting After Exit Long and Short Trail State Contamination Built-In and Custom Trailing Logic Conflicts
The skill audits pyramiding.
It can review:
Strategy Pyramiding Setting Intended Maximum Entries Entry IDs Same-Direction Additions Scale-In Behavior Opposite-Direction Signals Average Position Price Stop Recalculation Target Recalculation
Common pyramiding problems include:
Pyramiding Enabled Accidentally Pyramiding Disabled When Scaling Is Intended Unique Entry IDs Producing Unexpected Position Additions Persistent Signal Adding Positions Exit Closing Only Part of What User Expected Average Position Price Changing Risk Levels
The skill can define scale-in systems.
Potential fields include:
Maximum Additions Add Condition Price Spacing Quantity Stop Update Target Update Exit Ownership
It can also define scale-out systems.
Potential fields include:
Target Ladder Quantity Percentages Remaining Stop Breakeven Transition Final Exit
The skill reviews position-state architecture.
Potential information sources include:
Position Size Average Position Price Entry Price Persistent Flags Last Signal Last Entry Bar Last Exit Bar Cooldown State
Redundant custom state is avoided where platform position state is sufficient.
Persistent variables are reserved for behavior that genuinely needs memory, such as:
One-Time Activation Breakeven Latch Trailing Latch Delayed Reentry Sequential Exit State One Trade per Session One Trade per Trend
Every persistent state should define:
Initialization Activation Update Reset Opposite-Direction Reset Session Reset Flat Reset
The skill audits NA handling.
It checks:
Initial Bars Conditional Assignments Entry Price Stop Variables Target Variables Trailing Variables Indicator Warmup Reset Logic
It audits historical references for:
Off-by-One Errors Insufficient History Wrong Prior-Bar Reference Incorrect State Referencing Using Previous Values After Reset
The skill includes dedicated repainting and lookahead auditing.
Repainting is divided into:
Benign Realtime Recalculation Signal Repainting Future Leakage Confirmation Delay Misrepresented as Earlier Knowledge
Potential sources include:
Unconfirmed Realtime Bars Higher-Timeframe Values Pivot Functions Future-Dependent Calculations Realtime-Only Branches Plot Offsets Incorrect Bar-State Logic
The skill can determine whether a visually perfect historical signal was actually known on that historical bar.
Higher-timeframe requests receive special scrutiny.
The skill can define:
Requested Timeframe Source Confirmation Policy Historical Alignment Realtime Behavior Whether the Current HTF Bar Can Change
The objective is always:
Use Only Information Available at the Decision Time
Material future leakage is treated as a critical defect.
Lower-timeframe data is reviewed for:
Historical Availability Intrabar Completeness Ordering Realtime Differences Strategy Tester Interpretation
The skill handles same-bar ambiguity.
If a historical candle touches both stop and target, OHLC history may not prove which occurred first.
The skill can recommend:
Lower-Timeframe Validation Bar Magnifier or Equivalent Platform Functionality Conservative Fill Assumptions Avoiding Dependence on Unresolved Same-Bar Sequencing
It can distinguish:
Signal Bar Order Creation Time Simulated Fill Time Displayed Strategy Marker
This is essential when users believe TradingView entered "one bar late."
A signal that becomes confirmed at Bar N close may correctly result in an order filled on Bar N+1 depending on the strategy settings and order model.
The skill audits TradingView strategy properties.
Potential areas include:
Initial Capital Default Quantity Type Default Quantity Pyramiding Commission Slippage Margin Currency Order Processing Calculation Behavior Overlay Execution-Related Settings
Differences between the Strategy Tester properties and code assumptions are flagged.
The skill audits transaction-cost assumptions.
Commission and slippage are not strategy logic bugs, but they can explain why backtest results differ from expected results.
The skill can inspect:
Commission Type Commission Value Slippage Order Frequency Scalping Sensitivity
It does not claim that a profitable result is realistic merely because the code is correct.
The skill includes deep session-filter engineering.
Every session can define:
Session Hours Timezone Trading Days Overnight Behavior Entry Permission Exit Permission Session Reset
Common bugs include:
Wrong Timezone Exchange Time vs User Time Confusion Overnight Session Split Incorrectly Friday/Sunday Handling Daylight-Saving Assumptions Entry Filters Accidentally Blocking Protective Exits Session State Not Reset New Session Starting with Stale State
A key rule is:
Entry Restrictions and Risk-Exit Restrictions Are Not Automatically the Same Thing.
If the strategy should stop opening new positions outside the session but still allow protective exits, the skill separates those behaviors.
Date filters can define:
Start Date End Date Inclusivity Timezone Behavior for Open Positions After the End Date
The skill can implement and audit:
One Trade per Session One Trade per Trend Bar-Based Cooldowns Minute-Based Cooldowns Session-Based Cooldowns
Cooldown logic can define:
Start Duration Unit Reset Reentry Condition
The skill includes comprehensive alert engineering.
Possible alert types include:
Setup Alert Confirmed Signal Actual Strategy Entry Exit Stop Target Trailing Update Position Closed State Change
A central distinction is:
Signal Intent
versus
Executed Strategy Event
These are not automatically identical.
Common alert defects include:
Alert Condition Broader Than Entry Condition Alert Firing Outside Session Alert Firing While Already in Position Alert on Unconfirmed Bar Alert Repeating Every Bar Exit Alert Using Stale State Long and Short Alerts Firing Together Alert and Strategy Using Different Session Conditions Incorrect Payload Price Alert Fired Before Stop/Target Values Are Finalized
The skill can synchronize alerts with the final executable strategy condition.
It can create alert-debouncing logic using:
Bar Confirmation One-Shot State Signal Transition Last Alert Bar Position Change
Alert payloads can include fields such as:
Event Symbol Timeframe Side Price Stop Target Strategy Version Timestamp
Broker-specific webhook requirements are never invented.
The skill performs indicator-to-strategy conversion.
The conversion workflow is:
Identify Signal Conditions → Identify Visual-Only Logic → Define Executable Entry Rules → Define Entry Timing → Define Exit Model → Define Risk → Define Pyramiding → Define Session → Define Costs → Verify Repainting → Compare Visual Signals with Executed Trades
The skill recognizes that some visual indicators cannot be backtested honestly without modification.
Examples include indicators whose signals:
Repaint Use Future Pivots Use Synthetic Chart Values Depend on Intrabar Behavior Unavailable Historically Use Plot Offsets to Move Confirmed Signals Backward
It does not fabricate an unrealistically perfect strategy conversion.
The skill also converts strategies into indicators.
It can preserve:
Signal Logic Trend Filters Session Logic Entry Markers Exit Markers Stop Levels Target Levels Trade-State Visualization Alerts
Strategy order functions can be replaced by explicit indicator state.
For example:
0 = Flat 1 = Long -1 = Short
The indicator state must reset correctly after exits.
The skill clearly states that an indicator emulating trade state is not equivalent to TradingView Strategy Tester execution.
The skill performs Pine version migration.
Migration is not limited to making the code compile.
It follows:
Compile Compatibility → Semantic Compatibility → Behavioral Compatibility → Backtest Comparison
Potential migration areas include:
Version Declaration Namespaces Renamed Functions Input Functions Type Rules Color Syntax Plotting Signatures Request Functions Timeframe Helpers Session Helpers Deprecated Constructs Stricter Compiler Requirements
The skill identifies whether a migrated script produces different trading behavior despite successful compilation.
The skill investigates Strategy Tester discrepancies.
When a user says:
"The backtest does not match what I see."
the skill checks:
Signal Bar vs Fill Bar Bar Close vs Next Bar Limit/Stop Semantics Strategy Execution Settings Pyramiding Reversal Chart Type Higher-Timeframe Confirmation Repainting Intrabar Ambiguity Commission Slippage Session Date Range Position Quantity Stop/Target Recalculation Visual Plot Offsets Partial Exits
It can create a reproducibility snapshot containing:
Script Version Pine Version Symbol Timeframe Chart Type Session Date Range Inputs Initial Capital Position Quantity Pyramiding Commission Slippage
This allows two backtests to be compared under identical conditions.
The skill can add temporary debugging instrumentation.
Potential diagnostic tools include:
plot plotshape plotchar Labels Background State Tables Entry Price Lines Stop Lines Target Lines Session Flags Condition Booleans Position State
A debugging table can show:
Long Signal Short Signal In Session Current Position Entry Price Stop Price Target Price Trailing Active Trailing Price Cooldown HTF Confirmation
Instrumentation should be removed or disabled from production code when no longer needed unless requested.
For difficult bugs, the skill can create a minimal reproduction containing only:
The Failing Input Relevant Calculation Relevant Order Logic Observed Failure
This isolates Pine behavior from unrelated script complexity.
The skill performs structured refactoring.
Refactoring goals include:
Clearer Variables Fewer Duplicated Conditions Better Logical Separation Consistent Naming Explicit State Fewer Hidden Dependencies Predictable Resets Reusable Helper Logic Better Testability
A recommended architecture is:
Inputs Constants Session / Date Filters Indicators / Features Signal Logic State Logic Entry Prices Risk Levels Orders Alerts Visuals Debugging
The skill favors meaningful names such as:
longSignal shortSignal longEntryAllowed shortEntryAllowed longStopPrice longTargetPrice trailActive inTradeSession
instead of vague variables such as:
x cond1 flag2 tmp
Complex logic can be broken into explicit booleans such as:
trendLong momentumLong sessionAllowed positionFlat longSignal
This makes strategy behavior easier to inspect.
The skill can optimize code architecture while preserving behavior.
Before and after refactoring, compare:
Entry Bars Exit Bars Trade Count Position Direction Stop Values Target Values Alert Events Strategy Tester Results
Optimization should never silently alter the trading model.
The skill also supports strategy optimization methodology.
Optimization should not mean:
Maximize Historical Net Profit at Any Cost
A safer workflow is:
Fix Bugs → Freeze Core Logic → Define Objective → Define Parameter Ranges → Separate Development and Holdout Data → Evaluate Parameter Neighborhoods → Avoid Isolated Optima → Stress Costs → Test Multiple Periods → Validate on Unseen Data
Potential optimization objectives include:
Expectancy Profit Factor Return / Drawdown Sharpe Sortino Stability Trade Count Out-of-Sample Retention
The skill does not blindly optimize one metric.
Each parameter can define:
Purpose Range Step Selected Value Nearby Behavior Interactions Risk
Large parameter spaces are flagged for overfitting risk.
The skill complements dedicated backtest-overfitting analysis and can recommend a separate robustness audit when optimization exposure becomes substantial.
The skill can build regression tests.
Example:
NORMAL LONG
Expected: One long entry. Stop initialized. Target initialized. No duplicate order.
NORMAL SHORT
Expected: One short entry. Correct short stop. Correct short target.
REPEATED SIGNAL
Expected: No duplicate entry when pyramiding is disabled.
STOP HIT
Expected: Position closes. Trade state resets. Trailing state resets.
TARGET HIT
Expected: Position closes or partially exits according to specification.
SESSION END
Expected: No new entries. Protective exits behave according to design.
OPPOSITE SIGNAL
Expected: Ignore, close, or reverse according to explicit strategy rules.
REALTIME BAR
Expected: No unintended repeated alert behavior.
The skill can provide a structured change log.
Each change can document:
Change Reason Behavioral Impact Backtest Impact Risk
It can provide before/after explanations:
Before Problem After Why Expected Effect
Supported operating modes include:
Compiler Error Debugger: Diagnoses and repairs Pine compiler errors with minimal safe edits.
Logical Strategy Debugger: Traces signals, state, entries, exits, risk levels, and reset behavior.
Repainting & Lookahead Auditor: Audits confirmation, higher-timeframe data, pivots, offsets, historical/realtime behavior, and future leakage.
Entry/Exit Architect: Rebuilds the strategy order lifecycle while preserving the intended trading model.
SL/TP & Trailing Stop Engineer: Implements and repairs fixed, percentage, ATR, R-multiple, breakeven, partial-exit, and trailing-stop architecture.
Session & Pyramiding Auditor: Handles sessions, timezone, one-trade rules, scaling, repeated entries, and reversal behavior.
Alerts Synchronization Engineer: Aligns alerts with confirmed executable strategy events.
Indicator-to-Strategy Converter: Transforms visual indicator logic into testable TradingView strategy logic.
Strategy-to-Indicator Converter: Transforms strategy logic into visual signal, state, risk-level, and alert architecture.
Pine Version Migration Engineer: Updates legacy scripts while preserving behavior.
Backtest Mismatch Investigator: Explains why TradingView Strategy Tester behavior differs from visual chart expectations.
Strategy Refactoring & Optimization Architect: Improves code clarity, maintainability, testability, parameter organization, and debugging visibility without silently changing strategy behavior.
The core commercial promise is: take a Pine Script that is broken, inconsistent, difficult to understand, repainting, logically fragile, or producing unexpected Strategy Tester results and turn it into a clearer, auditable, testable TradingView implementation with explicit entries, exits, state transitions, risk controls, sessions, alerts, platform assumptions, and validation procedures.
How to install
Drop the file into your AI Agent. Works with Claude, Cursor, ChatGPT, and 20+ more.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
30-day refund
Not a fit? Get your money back
Trust & safety
Security scanned
Verified clean today
- One-time purchase, yours forever