[go: up one dir, main page]

0% found this document useful (0 votes)
496 views3 pages

Golden Trader AI (Strategy Version) - Perplexity

This document outlines a trading strategy called 'Golden Trader AI' implemented in Pine Script. It includes entry and exit logic based on price movements relative to previous highs and lows, as well as various technical indicators like EMA, SMA, and Supertrend. The strategy also incorporates user-defined inputs for sensitivity and optional features such as support and resistance levels, and generates alerts for trading signals.

Uploaded by

Moj Gan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
496 views3 pages

Golden Trader AI (Strategy Version) - Perplexity

This document outlines a trading strategy called 'Golden Trader AI' implemented in Pine Script. It includes entry and exit logic based on price movements relative to previous highs and lows, as well as various technical indicators like EMA, SMA, and Supertrend. The strategy also incorporates user-defined inputs for sensitivity and optional features such as support and resistance levels, and generates alerts for trading signals.

Uploaded by

Moj Gan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

//@version=5

strategy("Golden Trader AI (Strategy Version)", overlay=true, precision=0,


explicit_plot_zorder=true, max_labels_count=500)

// Entry logic from original code


if open > high[1]
strategy.entry("Open>PrevHigh", strategy.long, 1)
if open < low[1]
strategy.entry("Open<PrevLow", strategy.short, 1)

// User inputs
sensitivity = input.float(20, "Sensitivity (0.1 - 20)", 0.1, 20, step=0.1)
emaCloud = input.bool(false, "EMA Cloud")
suppRes = input.bool(false, "Support & Resistance")
breaks = input.bool(false, "Breaks")
usePsar = input.bool(false, "PSAR")
emaEnergy = input.bool(true, "EMA Energy")

// Supertrend function
supertrend(_src, factor, atrLen) =>
atr = ta.atr(atrLen)
upperBand = _src + factor * atr
lowerBand = _src - factor * atr
prevLowerBand = nz(lowerBand[1])
prevUpperBand = nz(upperBand[1])
lowerBand := (lowerBand > prevLowerBand or close[1] < prevLowerBand) ?
lowerBand : prevLowerBand
upperBand := (upperBand < prevUpperBand or close[1] > prevUpperBand) ?
upperBand : prevUpperBand
var int direction = na
var float superTrend = na
prevSuperTrend = superTrend[1]
if na(atr[1])
direction := 1
else if prevSuperTrend == prevUpperBand
direction := close > upperBand ? -1 : 1
else
direction := close < lowerBand ? 1 : -1
superTrend := direction == -1 ? lowerBand : upperBand
[superTrend, direction]

// Get Components
ocAvg = math.avg(open, close)
ema1 = ta.ema(high, 9)
ema2 = ta.ema(high, 12)
ema3 = ta.ema(high, 15)
ema4 = ta.ema(high, 18)
sma1 = ta.sma(close, 5)
sma2 = ta.sma(close, 6)
sma3 = ta.sma(close, 7)
sma4 = ta.sma(close, 8)
sma5 = ta.sma(close, 9)
sma6 = ta.sma(close, 10)
sma7 = ta.sma(close, 11)
sma8 = ta.sma(close, 12)
sma9 = ta.sma(close, 13)
sma10 = ta.sma(close, 14)
sma11 = ta.sma(close, 15)
sma12 = ta.sma(close, 16)
sma13 = ta.sma(close, 17)
sma14 = ta.sma(close, 18)
sma15 = ta.sma(close, 19)
sma16 = ta.sma(close, 20)
psar = ta.sar(0.02, 0.02, 0.2)
[supertrend, direction] = supertrend(close, sensitivity, 11)
barsL = 10
barsR = 10
pivotHigh = fixnan(ta.pivothigh(barsL, barsR)[1])
pivotLow = fixnan(ta.pivotlow(barsL, barsR)[1])

// Colors
green = #0290f6, green2 = #0290f6
red = #cf2dfc, red2 = #cf2dfc
emaCloudColor = emaCloud ? (close > supertrend ? #0290f6 : #cf2dfc) : na
emaEnergyColor(ma) => emaEnergy ? (close >= ma ? green : red) : na

// Plots
p1 = plot(ema1, "", na, editable=false)
p2 = plot(ema2, "", emaCloudColor, editable=false)
p3 = plot(ema3, "", emaCloudColor, editable=false)
p4 = plot(ema4, "", na, editable=false)
fill(p1, p2, emaCloud ? (ema2 > ema3 ? color.new(#cf2dfc, 80) : color.new(#0290f6,
80)) : na)
fill(p4, p3, emaCloud ? (ema2 < ema3 ? color.new(#cf2dfc, 80) : color.new(#0290f6,
80)) : na)
fill(p2, p3, emaCloud ? color.new(emaCloudColor, 35) : na)
plot(sma1, "", emaEnergyColor(sma1), editable=false)
plot(sma2, "", emaEnergyColor(sma2), editable=false)
plot(sma3, "", emaEnergyColor(sma3), editable=false)
plot(sma4, "", emaEnergyColor(sma4), editable=false)
plot(sma5, "", emaEnergyColor(sma5), editable=false)
plot(sma6, "", emaEnergyColor(sma6), editable=false)
plot(sma7, "", emaEnergyColor(sma7), editable=false)
plot(sma8, "", emaEnergyColor(sma8), editable=false)
plot(sma9, "", emaEnergyColor(sma9), editable=false)
plot(sma10, "", emaEnergyColor(sma10), editable=false)
plot(sma11, "", emaEnergyColor(sma11), editable=false)
plot(sma12, "", emaEnergyColor(sma12), editable=false)
plot(sma13, "", emaEnergyColor(sma13), editable=false)
plot(sma14, "", emaEnergyColor(sma14), editable=false)
plot(sma15, "", emaEnergyColor(sma15), editable=false)
plot(sma16, "", emaEnergyColor(sma16), editable=false)
barcolor(close > supertrend ? #0290f6 : red2)
p5 = plot(ocAvg, "", na, editable=false)
p6 = plot(psar, "PSAR", usePsar ? (psar < ocAvg ? green : red) : na, 1,
plot.style_circles, editable=false)
fill(p5, p6, usePsar ? (psar < ocAvg ? color.new(green, 90) : color.new(red, 90)) :
na, editable=false)

// Main strategy logic (converted from labels to trades)


y1 = low - (ta.atr(30) * 2)
y2 = high + (ta.atr(30) * 2)
bull = ta.crossover(close, supertrend) and close >= sma9
bear = ta.crossunder(close, supertrend) and close <= sma9

// Entry and exit signals


if bull
strategy.entry("Bull Buy", strategy.long)
if bear
strategy.entry("Bear Sell", strategy.short)

// Optionally, you can add exits (for example, close long on bear, close short on
bull)
if bear
strategy.close("Bull Buy")
if bull
strategy.close("Bear Sell")

// Visual buy/sell labels (for reference)


buy = bull ? label.new(bar_index, y1, "BUY", xloc.bar_index, yloc.price, #0290f6,
label.style_label_up, color.white, size.normal) : na
sell = bear ? label.new(bar_index, y2, "SELL", xloc.bar_index, yloc.price, red2,
label.style_label_down, color.white, size.normal) : na

// Support/Resistance and Breaks


plot(pivotHigh, "Resistance", not suppRes or ta.change(pivotHigh) ? na : red, 2,
offset=-(barsR + 1), editable=false)
plot(pivotLow, "Support", not suppRes or ta.change(pivotLow) ? na : green, 2,
offset=-(barsR + 1), editable=false)
plotshape(breaks and ta.crossover(close, pivotHigh), "Break", shape.labelup,
location.belowbar, green, 0, "B", color.white, false, size.small)
plotshape(breaks and ta.crossunder(close, pivotLow), "Break", shape.labeldown,
location.abovebar, red, 0, "B", color.white, false, size.small)

// Alerts (for reference, not used in strategy tester)


alertcondition(bull or bear or ta.crossover(close, pivotHigh) or
ta.crossunder(close, pivotLow), "Alert Any", "AI Signals Gold\nAlert Triggered on
{{ticker}} @ {{close}}")
alertcondition(bull, "Alert Buy", "AI Signals Gold\nBuy {{ticker}} @ {{close}}")
alertcondition(bear, "Alert Sell", "AI Signals Gold\nSell {{ticker}} @ {{close}}")
alertcondition(ta.crossover(close, pivotHigh), "Broke Resistance", "AI Signals
Gold\nBroke Resistance on {{ticker}} @ {{close}}")
alertcondition(ta.crossunder(close, pivotLow), "Broke Support", "AI Signals Gold\
nBroke Support on {{ticker}} @ {{close}}")

You might also like