
এই কৌশলটি কোয়ান্টনম্যাড দ্বারা নির্মিত ইউটি বট সূচকগুলির উপর ভিত্তি করে তৈরি করা হয়েছে, যা মোবাইল স্টপ লস এর সাথে মিলিত হয়েছে। মূল কোডটি @Yo_adriiiiaan দ্বারা লিখিত হয়েছে, @HPotter দ্বারা সংশোধন করা হয়েছে। এই কৌশলটি LuxAlgo এর স্মার্ট মানি কনসেপ্টের সাথে কাজ করবে। এই কৌশলটি বর্তমানে পরীক্ষামূলক পর্যায়ে রয়েছে।
এই কৌশলটির মূল নীতিগুলি হলঃ
এই কৌশলটি ইউটি বট সূচকের উপর ভিত্তি করে, মোবাইল স্টপ লজিক যুক্ত করে, যা ট্রেন্ডিং পরিস্থিতিতে মুনাফা রক্ষার ভূমিকা পালন করতে পারে। একই সাথে, কৌশলটি একাধিক মাথা এবং খালি মাথা পজিশনের জন্য পৃথকভাবে স্টপ সেট করে। এটিআরকে মোবাইল স্টপের রেফারেন্স ভিত্তিতে ব্যবহার করে, স্টপ পজিশনটি গতিশীলভাবে সামঞ্জস্য করা যায়, নমনীয়তা বাড়ানো যায়। তবে, এই কৌশলটি ঘন ঘন ক্ষতির ফলে উচ্চ লেনদেনের ব্যয় ঝুঁকির মুখোমুখি হতে পারে।
ভবিষ্যতে, আরও স্থিতিশীল উপার্জনের লক্ষ্যে কৌশলটি আরও উন্নত করা যেতে পারে, যেমন প্রবেশের শর্তগুলি অনুকূলিতকরণ, আরও জটিল মোবাইল স্টপ পদ্ধতিগুলি অনুসন্ধান করা, মোবাইল স্টপ মেকানিজম যুক্ত করা, বিভিন্ন জাত এবং সময়কালের জন্য প্যারামিটার অপ্টিমাইজেশন করা ইত্যাদি। সামগ্রিকভাবে, কৌশলটি সহজ, সহজেই বোঝা যায় এবং বাস্তবায়ন করা যায়, তবে আরও অপ্টিমাইজেশনের জন্য আরও জায়গা রয়েছে যা অনুসন্ধান এবং উন্নতির জন্য মূল্যবান।
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Trailingstop", overlay=true)
if close > sma(close, 50)
strategy.entry("long", strategy.long)
// Trailing stop loss for long positions
Trailperc = 0.20
price_stop_long = 0.0
if (strategy.position_size > 0)
stopValue = close * (1 - Trailperc)
price_stop_long := max(stopValue, price_stop_long[1])
else
price_stop_long := 0
if (strategy.position_size > 0)
strategy.exit(id="stoploss_long", stop=price_stop_long)
// Trailing stop loss for short positions
Trailperc_short = 0.20
price_stop_short = 0.0
if (strategy.position_size < 0)
stopValue_short = close * (1 + Trailperc_short)
price_stop_short := min(stopValue_short, price_stop_short[1])
else
price_stop_short := 0
if (strategy.position_size < 0)
strategy.exit(id="stoploss_short", stop=price_stop_short)
// ATR Trailing Stop for visualization
keyvalue = input(3, title="Key Value. 'This changes the sensitivity'", step=0.5)
atrperiod = input(10, title="ATR Period")
xATR = atr(atrperiod)
nLoss = keyvalue * xATR
xATRTrailingStop = 0.0
xATRTrailingStop := iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss),
iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
pos = 0
pos := iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue
plot(xATRTrailingStop, color = xcolor, title = "Trailing Stop")