Initial commit: Touch & Turn Scalping Bot with fully automated execution, backtesting, and ISA screening

This commit is contained in:
pie
2026-04-22 21:19:33 +01:00
commit dc111abf8c
15 changed files with 1518 additions and 0 deletions
+155
View File
@@ -0,0 +1,155 @@
// Generated by ProRealAlgos.com
// Touch & Turn Scalper Opening Range Liquidity Reversal
// RECOMMENDED TIMEFRAME: 15-minute chart (strategy runs
on 15m only)
// Instrument example: Netflix (US stocks) session 09:3011:00
EST
// Entry logic based on first 15m candle of regular session
DEFPARAM CumulateOrders = False
DEFPARAM FlatBefore = 090000
DEFPARAM FlatAfter = 110000
// === USER PARAMETERS ===
riskPercentATR = 25 // % of daily ATR to qualify as liquidity
candle
rrRatio = 2 // Risk:Reward ratio (TP = 2x SL)
atrPeriod = 14
// === SESSION CONTROL (US STOCKS) ===
isNewSession = (Hour = 9 AND Minute = 30)
// === RESET VARIABLES EACH DAY ===
IF isNewSession THEN
rangeHigh = 0
rangeLow = 0
rangeSize = 0
fib38 = 0
direction = 0
validSetup = 0
ENDIF
// === CAPTURE FIRST 15m OPENING RANGE ===
IF Hour = 9 AND Minute = 45 THEN
rangeHigh = High
rangeLow = Low
rangeSize = rangeHigh - rangeLow
// --- DAILY ATR ---
dailyATR = AverageTrueRange[atrPeriod](Close)
// --- LIQUIDITY CANDLE FILTER ---
IF rangeSize >= dailyATR * riskPercentATR / 100 THEN
validSetup = 1
ELSE
validSetup = 0
ENDIF
// --- FIB 38.2 LEVEL ---
fib38 = rangeLow + (rangeHigh - rangeLow) * 0.382
// --- DIRECTION OF LIQUIDITY CANDLE ---
IF Close < Open THEN
direction = -1 // bearish candle → look for LONG
ELSE
direction = 1 // bullish candle → look for SHORT
ENDIF
ENDIF
// === TRADE EXECUTION (Touch & Turn) ===
IF validSetup = 1 AND NOT OnMarket AND Hour >= 9 AND Hour <
11 THEN
// === LONG SETUP ===
IF direction = -1 THEN
entryPrice = rangeLow
targetDistance = fib38 - entryPrice
stopDistance = targetDistance / rrRatio
BUY 1 SHARE AT entryPrice LIMIT
SET TARGET PRICE fib38
SET STOP LOSS stopDistance
ENDIF
// === SHORT SETUP ===
IF direction = 1 THEN
entryPrice = rangeHigh
targetDistance = entryPrice - fib38
stopDistance = targetDistance / rrRatio
SELLSHORT 1 SHARE AT entryPrice LIMIT
SET TARGET PRICE fib38
SET STOP LOSS stopDistance
ENDIF
ENDIF
// === FORCE EXIT AFTER 11:00 ===
IF Hour >= 11 AND OnMarket THEN
SELL AT MARKET
EXITSHORT AT MARKET
ENDIF
// === BACKTEST STATISTICS DISPLAY ===
GRAPH StrategyProfit AS "Net Profit"
GRAPH PositionPerf(1) AS "Last Trade %"