
এই কৌশলটি ইএমএ, এমএসিডি, ভিডাব্লুএপি এবং আরএসআই এর মতো একাধিক সূচককে একত্রিত করে যাতে উচ্চ সম্ভাব্যতার ব্যবসায়ের সুযোগ ধরা যায়। কৌশলটি ট্রেন্ডের দিকনির্দেশনা নির্ধারণের জন্য ইএমএ ব্যবহার করে, এমএসিডি গতিশীলতা নির্ধারণের জন্য, ভিডাব্লুএপি পরিমাণ নির্ধারণের জন্য, আরএসআই ওভার-বয় ওভার-বিক্রয় নির্ধারণের জন্য। কৌশলটি এই সূচকগুলির সংমিশ্রণের উপর ভিত্তি করে ক্রয় এবং বিক্রয় সংকেত তৈরি করে এবং মুনাফা সুরক্ষার জন্য চলমান স্টপ ব্যবহার করে।
এই কৌশলটি একাধিক সূচকের সমন্বয় করে বাজারের অবস্থা নির্ধারণ করে, ট্রেডিং সিগন্যাল তৈরি করে এবং মুনাফা সুরক্ষার জন্য চলমান স্টপ ব্যবহার করে। কৌশলটির প্যারামিটারগুলি ব্যবহারকারীর পছন্দ অনুসারে সামঞ্জস্য করা যেতে পারে, কৌশলটির নমনীয়তা বাড়ায়। তবে কৌশলটি অস্থির বাজারে খারাপ পারফরম্যান্স করতে পারে, প্রবণতা বিপরীত হওয়ার সময় আরও বড় প্রত্যাহারের মুখোমুখি হতে পারে, তাই বিভিন্ন বাজার এবং জাতের জন্য অপ্টিমাইজেশন এবং উন্নতি করা প্রয়োজন। ভবিষ্যতে আরও ফিল্টারিং শর্ত, গতিশীল স্টপিং পদ্ধতি, প্যারামিটার অপ্টিমাইজেশন এবং পজিশন ম্যানেজমেন্টের মতো অপ্টিমাইজেশন যুক্ত করার বিষয়টি বিবেচনা করা যেতে পারে, যাতে কৌশলটির স্থায়িত্ব এবং লাভজনকতা বাড়ানো যায়।
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Intraday Strategy", overlay=true)
// Input parameters
emaLength = input.int(50, title="EMA Length")
macdShort = input.int(12, title="MACD Short Period")
macdLong = input.int(26, title="MACD Long Period")
macdSignal = input.int(9, title="MACD Signal Period")
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
risk = input.float(1, title="Risk Percentage", minval=0.1, step=0.1)
trailOffset = input.float(0.5, title="Trailing Stop Offset", minval=0.1, step=0.1)
// Calculating indicators
ema = ta.ema(close, emaLength)
[macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal)
rsi = ta.rsi(close, rsiLength)
vwap = ta.vwap(close)
// Entry conditions
longCondition = ta.crossover(macdLine, signalLine) and close > ema and rsi < rsiOverbought and close > vwap
shortCondition = ta.crossunder(macdLine, signalLine) and close < ema and rsi > rsiOversold and close < vwap
// Exit conditions
longExitCondition = ta.crossunder(macdLine, signalLine) or close < ema
shortExitCondition = ta.crossover(macdLine, signalLine) or close > ema
// Position sizing based on risk percentage
capital = strategy.equity
positionSize = (capital * (risk / 100)) / close
// Executing trades
if (longCondition)
strategy.entry("Long", strategy.long, qty=1)
if (shortCondition)
strategy.entry("Short", strategy.short, qty=1)
if (longExitCondition)
strategy.close("Long")
if (shortExitCondition)
strategy.close("Short")
// Trailing stop loss
if (strategy.position_size > 0)
strategy.exit("Trailing Stop Long", from_entry="Long", trail_price=close, trail_offset=trailOffset)
if (strategy.position_size < 0)
strategy.exit("Trailing Stop Short", from_entry="Short", trail_price=close, trail_offset=trailOffset)
// Plotting indicators
plot(ema, title="EMA", color=color.blue)
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, title="RSI", color=color.purple)
plot(vwap, title="VWAP", color=color.orange)