Skip to main content
Latest Crypto Fear & Greed Index


New Pine Scipt: EMA RSI ATR Vol strategy

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

Popular posts from this blog

New Pine Scipt: Martingale Strategy

This script actually does not really involve any Technical Analysis (TA). It just a bot that runs on traditional martingale strategy. Martingale startegy is a risk management strategy that originated in 18th-century France. It is based on the principle of doubling down on losses to recover them in the next winning trade. Strategy description: It places BUY order and double down (according to the multiplier) when the price got lower. TP as per your setting. This strategy works best during bearish period with recovery pattern. Recommended setting: Pair: SUIUSDT (Binance) Time frame:  5min Min capital in wallet:  168 USDT   The code as follows:  **Please read the important instruction in the code. // @version= 5 strategy ( "SUI(Binance TF5)www.capayam.com" , overlay = false , initial_capital = 168 , default_qty_type = strategy.percent_of_equity , default_qty_value = 100 , pyramiding = 10 , commission_type = strategy.commission.percent , commission_value = 0....

New Pine Script: Spot Martingale Strategy

This is an improved version of previous Martingale strategy . We have fixed the Stop Loss function to be able to calculate drawdown of cumulative all positions.  Normally we do not use SL for BTC/USD trading, but for Altcoins, we strongly advise to use SL function.  This pine script is actually meant for Strategy Backtester , although you can use it with API bot + tradeadapter . Once you get the best setting, apply it into Binance , Kucoin, or Bitget bot.  Personally, i find Kucoin has the most user friendly bot. However, u can find the best Spot Martingale bots selection in BitGet . Strategy Description:  It places BUY order and double down (according to the multiplier) when the price got lower. TP and SL as per your setting. This strategy works best during bearish period with recovery pattern. Recommended Setting: Pair: BTCUSDT (Binance/Kucoin/Bitget) Time frame: 5min  *At the moment, I am using TradingView Premium version, so TF5min will automatically give ...

New Pine Script Published: EMA RSI Momentum Strategy

 This is a momentum strategy that strikes while its hot and exits before the momentum ended. It is actually quite by using only 2 indicators which Exponential Moving Average (EMA) and Relative Strength Index (RSI).  Strategy Technical Description: It place Buy order when price crosses up EMA line and RSI is above BUY threshold. It exits when the RSI reaches SELL threshold. Recommended setting: Pair: RNDR (Binance) Timeframe: 5 minutes Order Size: 100% equity Pyramiding: 1 order Commission: 0.1 % // @version= 5 strategy ( "EMA RSI Momentum Strategy TF5min [capayam.com]" , overlay = false , initial_capital = 10 , default_qty_type = strategy.percent_of_equity , default_qty_value = 100 , commission_type = strategy.commission.percent , commission_value = 0.1 ) //Desc: Buys when price crosses above long EMA line and above RSI Buy threshold. Exits when RSI above Sell threshold. //Recomended pair: RNDRUSDT TF5min (Binance) // Adjustable Inputs emaLength = input.int ( 450 ,...