När hela det nedre exponentiella bandet ligger över 200 SMA är trenden upp, och strategin köper den första stängningen vid eller under 20 SMA. Den tar bara en long per upptrend, och shorts speglar logiken. Ett equity-kurvfilter pausar entryer när strategin ligger under sitt eget medelvärde över 250 barer.
Bästa körningen av 6. Gold, 10 min, spread 0.6, från körning sweeps:2026-09-23-GOLD-10m-opt.tsv:4.
| Period | Till och med 2026-09-23 |
| Instrument | Gold, 10 minuter |
| Spread | 0.6 punkter |
| Kontrakt | 1 |
| Startkapital | 1,000,000 |
| Kostnader | Endast spread. Courtage och overnight-finansiering ingår inte. |
| Barer | Upp till 200,000 barer, färre där instrumentet har kortare historik |
| Senast testad | 2026-09-23 |
| positionSize Kontrakt per affär | 1 |
| startCapital Start-equity som används av equity-kurvfiltret | 10000 |
| equityCurvePeriod SMA-längd för equity-kurvan | 250 |
| fastPeriod SMA-längd för entry och slutlig exit | 20 |
| midPeriod SMA-längd som aktiverar exiten | 50 |
| trendPeriod Trend-SMA-längd | 200 |
| bandPeriod Längd på de exponentiella log-prisbanden | 42 |
| bandWidth Bandbredd i standardavvikelser | 2.4 |
| seedPeriod SMA-längd som initierar banden på tidiga barer | 3 |
| stopLossMoney Skyddsstopp i kontovaluta | 40 |
| takeProfitMoney Vinstmål i kontovaluta | 130 |
Varje körning
| Marknad | Tidsram | PF | Affärer | Träff % | Netto | Max DD |
|---|---|---|---|---|---|---|
| GuldBästa körning | 10 min | n/a | 696 | 46.55 | 432 EUR | -387 |
| EUR/USD | Dag | n/a | 52 | 42.31 | 1,660 USD | -240 |
| FTSE 100 | 4 timmar | n/a | 96 | 41.67 | 762 EUR | -362 |
| S&P 500 | Dag | n/a | 54 | 46.30 | 593 EUR | -223 |
| Nasdaq 100 | 4 timmar | n/a | 118 | 43.22 | 462 EUR | -424 |
| FTSE 100 | Dag | n/a | 37 | 32.43 | 434 EUR | -344 |
Diagram
Koden
// ============================================================ // Bollinger Trend Catcher // ProRealAlgos Strategy Library | prorealalgos.com // Type: Trend // Direction: Long & short // Timeframe tested: 10 minutes // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade startCapital = 10000 // starting equity for the equity curve filter equityCurvePeriod = 250 // SMA length of the equity curve fastPeriod = 20 // entry and final exit average midPeriod = 50 // average that arms the exit trendPeriod = 200 // trend average the bands are compared with bandPeriod = 42 // length of the log-price exponential bands bandWidth = 2.4 // band width in standard deviations seedPeriod = 3 // SMA used to seed the bands on early bars stopLossMoney = 40 // protective stop in account currency takeProfitMoney = 130 // profit target in account currency // State: one trade per trend, and a staged exit. ONCE longTrendUsed = 0 ONCE shortTrendUsed = 0 ONCE longExitStage = 0 ONCE shortExitStage = 0 ONCE logEma = 0 ONCE logVariance = 0 // --- Indicators --- // Only trade while equity is at or above its own moving average. equity = startCapital + StrategyProfit equityCurve = Average[equityCurvePeriod, 0](equity) equityOk = BarIndex < equityCurvePeriod OR (BarIndex > equityCurvePeriod AND equity >= equityCurve) fastMA = Average[fastPeriod](close) midMA = Average[midPeriod](close) trendMA = Average[trendPeriod](close) // Exponential bands on log price. logPrice = LOG(CustomClose) emaAlpha = 2 / (bandPeriod + 1) IF BarIndex < bandPeriod THEN logEma = Average[seedPeriod](logPrice) ELSE logEma = emaAlpha * logPrice + (1 - emaAlpha) * logEma ENDIF logError = logPrice - logEma errorSquared = SQUARE(logError) IF BarIndex < bandPeriod + 1 THEN logVariance = errorSquared ELSE logVariance = emaAlpha * errorSquared + (1 - emaAlpha) * logVariance ENDIF logStdDev = SQRT(logVariance) upperBand = EXP(logEma + (bandWidth * logStdDev)) lowerBand = EXP(logEma - (bandWidth * logStdDev))
44 rader till: entry- och exitreglerna.
Uppsättning
Frågor
Ja, den är skriven som ett ProOrder-system. Koden skrevs om och är ännu inte kompileringskontrollerad, så kör en backtest innan du går live.
Gold, EUR/USD, FTSE 100, S&P 500 och Nasdaq 100. Varje listad körning gav en liten vinst, den största USD 1,660 på EUR/USD Dag från 52 affärer.
Vid 1 kontrakt hade den bästa körningen en max drawdown på EUR 387.3. Varje affär riskerar stoppet på 40 i pengar, före spread.
Regeln om en affär per trend innebär att en ny long bara kommer efter att bandet har dykt under 200 SMA och återhämtat sig. På dagsbarer händer det sällan, till exempel 37 affärer på FTSE 100 på dagschart.
Relaterat
ProRealAlgos-communityn får de fullständiga reglerna, den kompletta koden och den automatiserade portföljen.