
এই কৌশলটি একটি পরিমাণগত ট্রেডিং সিস্টেম যা দ্বৈত সমান্তরাল ক্রস সিগন্যালের উপর ভিত্তি করে, স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী চলমান গড়ের ক্রস দ্বারা বাজার প্রবণতার পরিবর্তনগুলি সনাক্ত করে এবং গতিশীল স্টপ লস ম্যানেজমেন্টের সাথে মিলিত হয়ে ঝুঁকি নিয়ন্ত্রণ করে। কৌশলটি বাজার মূল্যের একক ব্যবহার করে ট্রেড করে, যখন সংকেতটি ট্রিগার হয় তখন স্বয়ংক্রিয়ভাবে বিদ্যমান পজিশনগুলি বন্ধ করে এবং নতুন পজিশন খোলার জন্য, স্টপ লস পয়েন্ট সেট করে তহবিল সুরক্ষা।
কৌশলটি দুটি পৃথক পিরিয়ডের সহজ চলমান গড় (এসএমএ) ব্যবহার করে ট্রেডিং সিগন্যালের মূল ভিত্তি হিসাবে। যখন স্বল্পমেয়াদী গড় দীর্ঘমেয়াদী গড় অতিক্রম করে, সিস্টেমটি একাধিক সংকেত উত্পন্ন করে; যখন স্বল্পমেয়াদী গড়ের নীচে দীর্ঘমেয়াদী গড় অতিক্রম করে, সিস্টেমটি একটি শূন্য সংকেত উত্পন্ন করে। সিস্টেমটি সংকেত উত্পন্ন করার সময় বর্তমান অবস্থানের অবস্থা পরীক্ষা করে, যদি বিপরীত অবস্থানের অবস্থান থাকে তবে প্রথমে পজিশনটি বন্ধ করে দেয়, তারপরে সংকেতের দিকনির্দেশ অনুসারে একটি নতুন পজিশন খুলবে। প্রতিটি লেনদেনটি পূর্ব নির্ধারিত শতাংশের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে স্টপ লস পয়েন্ট সেট করে, ঝুঁকি-লাভ অনুপাতের গতিশীল ব্যবস্থাপনা উপলব্ধ করে।
এটি একটি কাঠামোগত, যুক্তিসঙ্গত এবং স্পষ্ট পরিমাণে ট্রেডিং কৌশল। গতিশীল স্টপ-অফ-স্টপ ম্যানেজমেন্ট ঝুঁকির সাথে ডাবল ইক্যুয়ালাইন ক্রস দ্বারা প্রবণতা পরিবর্তনগুলি ক্যাপচার করা। কৌশলটির সুবিধা হ’ল এটির উচ্চতর সিস্টেমাইজেশন, ঝুঁকি নিয়ন্ত্রণযোগ্য, তবে রিয়েল-টাইমে বিভিন্ন ধরণের বাজারের ঝুঁকির প্রতি যত্ন নেওয়া দরকার। ক্রমাগত অপ্টিমাইজেশন এবং পরিমার্জন দ্বারা, কৌশলটি বিভিন্ন বাজারের পরিবেশে স্থিতিশীল পারফরম্যান্স বজায় রাখার আশা করা যায়। রিয়েল-টাইম ডিক্রিমের আগে পর্যাপ্ত ফিডব্যাক পরীক্ষা করা এবং প্রকৃত পরিস্থিতি অনুসারে প্যারামিটার সেটিংগুলি সামঞ্জস্য করার পরামর্শ দেওয়া হয়েছে।
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("BTCUSD Daily Strategy - Market Orders Only", overlay=true, initial_capital=10000, currency=currency.USD)
// Configurable Inputs
stop_loss_percent = input.float(title="Stop Loss (%)", defval=1.0, minval=0.0, step=0.1)
take_profit_percent = input.float(title="Take Profit (%)", defval=2.0, minval=0.0, step=0.1)
short_ma_length = input.int(title="Short MA Length", defval=9, minval=1)
long_ma_length = input.int(title="Long MA Length", defval=21, minval=1)
// Moving Averages
short_ma = ta.sma(close, short_ma_length)
long_ma = ta.sma(close, long_ma_length)
// Plotting Moving Averages
plot(short_ma, color=color.blue, title="Short MA")
plot(long_ma, color=color.red, title="Long MA")
// Buy and Sell Signals
buy_signal = ta.crossover(short_ma, long_ma)
sell_signal = ta.crossunder(short_ma, long_ma)
// Market Buy Logic
if (buy_signal and strategy.position_size <= 0)
// Close any existing short position
if (strategy.position_size < 0)
strategy.close(id="Market Sell")
// Calculate Stop Loss and Take Profit Prices
entry_price = close
long_stop = entry_price * (1 - stop_loss_percent / 100)
long_take_profit = entry_price * (1 + take_profit_percent / 100)
// Enter Long Position
strategy.entry(id="Market Buy", direction=strategy.long)
strategy.exit(id="Exit Long", from_entry="Market Buy", stop=long_stop, limit=long_take_profit)
// Alert for Market Buy
alert("Market Buy Signal at price " + str.tostring(close) + ". Stop Loss: " + str.tostring(long_stop) + ", Take Profit: " + str.tostring(long_take_profit), alert.freq_once_per_bar_close)
// Market Sell Logic
if (sell_signal and strategy.position_size >= 0)
// Close any existing long position
if (strategy.position_size > 0)
strategy.close(id="Market Buy")
// Calculate Stop Loss and Take Profit Prices
entry_price = close
short_stop = entry_price * (1 + stop_loss_percent / 100)
short_take_profit = entry_price * (1 - take_profit_percent / 100)
// Enter Short Position
strategy.entry(id="Market Sell", direction=strategy.short)
strategy.exit(id="Exit Short", from_entry="Market Sell", stop=short_stop, limit=short_take_profit)
// Alert for Market Sell
alert("Market Sell Signal at price " + str.tostring(close) + ". Stop Loss: " + str.tostring(short_stop) + ", Take Profit: " + str.tostring(short_take_profit), alert.freq_once_per_bar_close)