This script has more indicators than previous code. It uses:
1. Exponential Moving Average (EMA)
2. Relative Strength Index (RSI)
3. Average True Range (ATR)
4. Volume
EMA and RSI used to determine the trend, while ATR is used to determine TakeProfit or StopLoss levels. Volume (Vol) is to make sure that there will be significant movement and liquidity is available.
Strategy description: It places BUY order when price crosses up Fast EMA + Fast EMA must be above Slow EMA + RSI in between 55-70 + Vol above certain/preset amount.
The TP and SL depend on ATR value.
Recommended setting:
Pair: SUIUSDT (Binance)
Time frame: 5min
Min capital in wallet: 100 USDT
Pinescript as follows:
//@version=5
strategy("Code209[EMA,RSI,Vol,ATR]:SUI(Binance)tf5[capayam.com]", overlay=false, initial_capital=99, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=1, commission_type=strategy.commission.percent, commission_value=0.12)
// Parameters
ema_fast_len = input(9, title="Fast EMA Length")
ema_slow_len = input(21, title="Slow EMA Length")
rsi_len = input(15, title="RSI Length")
atr_len = input(15, title="ATR Length")
min_volume_multiplier = input.float(1.6, title="Volume Multiplier", step=0.1)
atrTP = input.float(2.7, title="ATR TP", step=0.1)
atrSL = input.float(1, title="ATR SL", step=0.1)
show_time = input(true, title="---Start Stop (Optional)---")
start_year = input(2024, title="Start Year")
start_month = input(1, title="Start Month (1-12)")
start_day = input(1, title="Start Day (1-31)")
stop_year = input(2025,title="Stop Year")
stop_month = input(12, title="Stop Month (1-12)")
stop_day = input(31, title="Stop Day (1-31)")
// Create timestamps from the input dates
start_trading_date = timestamp(start_year, start_month, start_day, 0, 0)
stop_trading_date = timestamp(stop_year, stop_month, stop_day, 23, 59)
// Indicators
ema_fast = ta.ema(close, ema_fast_len)
ema_slow = ta.ema(close, ema_slow_len)
rsi = ta.rsi(close, rsi_len)
atr = ta.atr(atr_len)
volume_avg = ta.sma(volume, 10)
// Conditions
BuySignal = ta.crossover(close, ema_fast) and ema_fast > ema_slow and rsi > 55 and rsi < 70 and volume > volume_avg * min_volume_multiplier and (time >= start_trading_date) and (time <= stop_trading_date)
/// Exit conditions
profit_target = strategy.position_avg_price + (atr*atrTP)
stop_loss = strategy.position_avg_price - (atr*atrSL)
// Position size with decimals (DONT FORGET TO ADJUST THIS!)
position_size = (math.ceil((strategy.equity / close) * 1))/1
// Strategy entry with stop loss and take profit
if (BuySignal)
strategy.entry("Buy", strategy.long, qty = position_size)
strategy.exit("Exit", "Buy", limit=profit_target, stop=stop_loss)
// Plotting
plot(ema_fast, color=color.blue, title="Fast EMA")
plot(ema_slow, color=color.red, title="Slow EMA")
hline(70, "RSI Overbought", color=color.red, linestyle=hline.style_dotted)
hline(30, "RSI Oversold", color=color.green, linestyle=hline.style_dotted)
Don't know how to set up your own bot? Read here, its easy!
Comments
Post a Comment