
ওভারভিউ
এই কৌশলটি একটি গতিশীল স্টপ লস ট্র্যাকিং ট্রেডিং সিস্টেম বাস্তবায়নের জন্য এটিআর (অভারেজ ট্রু রেঞ্জ) এবং এসএমএ (সিম্পল মুভিং এভারেজ) সূচককে একত্রিত করে। যখন দাম এসএমএর উপরে থাকে এবং গতিশীল স্টপ লস সেট করা হয়, তখন স্টপ মূল্য ক্রমাগত বাড়তে থাকে। যখন দাম গতিশীল স্টপ লস মূল্যকে পরাস্ত করে তখন স্টপ পজিশন। এই কৌশলটির মূল ধারণাটি হ’ল প্রবণতার মধ্যে, গতিশীল স্টপ লস ব্যবহার করে মুনাফা লক করা এবং প্রত্যাহার হ্রাস করা।
কৌশল নীতি
- 50 দিনের এসএমএ গণনা করা হয় যখন বন্ধের মূল্য 50 দিনের এসএমএর চেয়ে বেশি হয় তখন অতিরিক্ত অর্ডার দেওয়া হয়।
- এটিআর সূচকটি গণনা করুন, এটিআর চক্রটি 10 এবং একটি মূল মান ((ডিফল্ট 3) দ্বারা গুণিত হয় যা স্টপ লস nLoss পায়।
- গতিশীল স্টপ মূল্য xATRTrailingStop গণনা করুন, প্রাথমিক মান 0
- যখন বন্ধের মূল্য এবং পূর্ববর্তী বন্ধের মূল্য উভয়ই পূর্ববর্তী স্টপ লস মূল্যের চেয়ে বড় হয়, তখন নতুন স্টপ লস মূল্য হল পূর্ববর্তী স্টপ লস মূল্যের বৃহত্তর মান এবং বন্ধের মূল্য - nLoss।
- যখন বন্ধের মূল্য এবং পূর্ববর্তী বন্ধের মূল্য উভয়ই পূর্ববর্তী স্টপ লস মূল্যের চেয়ে কম হয়, তখন নতুন স্টপ লস মূল্য হল পূর্ববর্তী স্টপ লস মূল্য এবং (খোলার মূল্য + nLoss) এর মধ্যে যেটি কম।
- অন্য ক্ষেত্রে, নতুন স্টপ লস হল ((প্রান্তিক মূল্য - nLoss) অথবা ((প্রান্তিক মূল্য + nLoss) ) ।
- সমাপ্তির মূল্য যখন গতিশীল স্টপ লস মূল্যের নীচে নেমে আসে তখন প্লেইন পজিশন।
- স্টপ পয়েন্টগুলি বিভিন্ন রঙে চিহ্নিত করা হয়েছে, মাল্টি-হেড স্টপ সবুজ, খালি-হেড স্টপ লাল এবং অন্যান্য ক্ষেত্রে নীল।
সামর্থ্য বিশ্লেষণ
- ডায়নামিক স্টপ ব্যবস্থা ট্রেন্ডিং পরিস্থিতিতে মুনাফা রক্ষা করতে পারে এবং প্রত্যাহারের ঝুঁকি হ্রাস করতে পারে। স্থির স্টপের তুলনায় ডায়নামিক স্টপ আরও নমনীয় এবং বিভিন্ন বাজারের অবস্থার সাথে খাপ খাইয়ে নিতে পারে।
- স্টপ লস বেসটি এটিআর সূচকের উপর ভিত্তি করে গণনা করা হয়, এটিআর বাজারের ওঠানামার আকারকে ভালভাবে প্রতিফলিত করতে পারে, তাই স্টপ লস দূরত্বটি স্বয়ংক্রিয়ভাবে সাম্প্রতিক পরিস্থিতির উপর ভিত্তি করে ওঠানামার হারের সাথে সামঞ্জস্য করে, যখন ওঠানামার পরিমাণ বাড়বে তখন স্টপ লস স্পেস বাড়বে, যখন ওঠানামার পরিমাণ কমবে তখন স্টপ লস স্পেস ছোট হবে।
- এসএমএ ব্যবহার করে প্রবণতা বিচার করার ভিত্তি হিসাবে, তুলনামূলকভাবে সুস্পষ্ট প্রবণতা পরিস্থিতি ক্যাপচার করতে পারে। এসএমএর উপরে আরও বেশি আদেশ দেওয়া, প্রবণতার শুরুতে হস্তক্ষেপ করতে পারে, বৃহত্তর মুনাফা স্থান অর্জন করতে পারে।
- এটি ব্যবহারকারীকে এটিআর চক্র এবং মূল মান প্যারামিটার সেট করার অনুমতি দেয়, বিভিন্ন জাত এবং চক্রের বৈশিষ্ট্যগুলির সাথে সামঞ্জস্য রেখে নীতি প্যারামিটারগুলিকে নমনীয়ভাবে সামঞ্জস্য করতে পারে।
ঝুঁকি বিশ্লেষণ
- প্রবণতা অস্পষ্ট বা অস্থির হলে, এই কৌশলটি ঘন ঘন পজিশনে পরিণত হতে পারে, যার ফলে লেনদেনের খরচ বৃদ্ধি পায় এবং মুনাফা হ্রাস পায়।
- এই কৌশলটি কেবলমাত্র বহু-লজিকাল কাজ করে, নিম্নমুখী প্রবণতা থেকে লাভ করা যায় না, একতরফা বাজারের ঝুঁকির মুখোমুখি হয়। ডাইভারসিং লজিক যুক্ত করার কথা বিবেচনা করা যেতে পারে, দ্বি-মুখী বাণিজ্য করা যায়।
- স্টপ লস পয়েন্টটি এটিআর ভিত্তিক গণনা করা হয়, যখন বাজারে তীব্র ওঠানামা হয়, তখন স্টপ লস স্পেসটি অত্যধিক হতে পারে, যার ফলে ঝুঁকি বাড়তে পারে। আপনি একটি সর্বোচ্চ স্টপ লস সেট করার কথা বিবেচনা করতে পারেন, যা একক লেনদেনের সর্বোচ্চ ক্ষতি নিয়ন্ত্রণ করে।
- ভুল প্যারামিটার নির্বাচন কৌশল ব্যর্থতার কারণ হতে পারে। উদাহরণস্বরূপ, এটিআর চক্রটি খুব ছোট বাছাই করা হতে পারে, যার ফলে স্টপ লস খুব সংবেদনশীল এবং ঘন ঘন ট্রিগার হতে পারে। খুব বড় হলে সময়মতো স্টপ লস করতে পারে না, ক্ষতি বাড়িয়ে তুলতে পারে।
অপ্টিমাইজেশান দিক
- নিম্নমুখী প্রবণতায় মুনাফা অর্জনের জন্য কমান্ড লজিক যুক্ত করুন, কৌশলটির অভিযোজনযোগ্যতা উন্নত করুন। দামটি এসএমএর নীচে নেমে গেলে খালি কমান্ড খুলতে পারেন, একইভাবে গতিশীল স্টপ লজিক ব্যবহার করুন।
- প্রবণতা শক্তির উপর ভিত্তি করে পজিশন আকারের সমন্বয় করে মাল্টি-ফ্রি পজিশন ম্যানেজমেন্ট চালু করুন। প্রবণতা শক্তিশালী হলে পজিশন বাড়ান, আয় বাড়ান; প্রবণতা দুর্বল হলে পজিশন হ্রাস করুন, ঝুঁকি নিয়ন্ত্রণ করুন।
- স্টপ লজিককে অপ্টিমাইজ করুন, একটি সর্বোচ্চ স্টপ ব্যাপ্তি সেট করুন, যাতে চরম পরিস্থিতিতে অত্যধিক ক্ষতি হতে পারে না। আপনি একটি স্টপ পয়েন্ট সেট করার কথাও বিবেচনা করতে পারেন, যখন প্রত্যাশিত আয় পৌঁছে যায় তখন পজিশনটি সক্রিয়ভাবে প্লেইন করুন, ক্ষতি না হওয়া পর্যন্ত ধরে রাখার পরিবর্তে।
- প্যারামিটার অপ্টিমাইজেশান, বিভিন্ন প্যারামিটার সমন্বয় জুড়ে, সর্বোত্তম প্যারামিটার সেটিং খুঁজুন। জিনগত অ্যালগরিদমের মতো বুদ্ধিমান অপ্টিমাইজেশন পদ্ধতি ব্যবহার করে অপ্টিমাইজেশান দক্ষতা বাড়ানো যেতে পারে।
- ট্রেডিং ভলিউম, অস্থিরতা এবং অন্যান্য সূচকগুলির মতো আরও ফিল্টারিং শর্তগুলি যুক্ত করার কথা বিবেচনা করুন যাতে ট্রেন্ড এবং ঝুঁকিগুলি আরও ভালভাবে বিচার করা যায় এবং সংকেতের নির্ভরযোগ্যতা বাড়ানো যায়।
সারসংক্ষেপ
এই কৌশলটি এটিআর এবং এসএমএ সূচকগুলির উপর ভিত্তি করে একটি গতিশীল স্টপ লস ট্র্যাকিং ট্রেডিং সিস্টেম বাস্তবায়ন করে, যা প্রবণতার পরিস্থিতিতে স্বয়ংক্রিয়ভাবে স্টপ লস পজিশন সামঞ্জস্য করতে পারে, মুনাফা রক্ষা করতে এবং ঝুঁকি নিয়ন্ত্রণের ভূমিকা পালন করে। কৌশলটির লজিক পরিষ্কার, সুবিধাগুলি সুস্পষ্ট, তবে কিছু সীমাবদ্ধতা এবং ঝুঁকিও রয়েছে। যুক্তিসঙ্গত অপ্টিমাইজেশন এবং উন্নতি যেমন শূন্যতা লজিক যুক্ত করা, পজিশন ম্যানেজমেন্ট অপ্টিমাইজ করা, স্টপ লস সেট করা ইত্যাদি কৌশলটির স্থিতিশীলতা এবং লাভজনকতা আরও বাড়িয়ে তুলতে পারে। বাস্তবিক প্রয়োগে, বিভিন্ন ট্রেডিং জাত এবং সময়কাল অনুসারে কৌশল প্যারামিটারগুলিকে নমনীয়ভাবে সামঞ্জস্য করা এবং ঝুঁকি কঠোরভাবে নিয়ন্ত্রণ করা প্রয়োজন। সামগ্রিকভাবে, কৌশলটি ট্রেডিংয়ের পরিমাণের জন্য একটি কার্যকর চিন্তাভাবনা সরবরাহ করে, যা আরও অনুসন্ধান এবং অপ্টিমাইজ করার জন্য মূল্যবান।
কৌশল সোর্স কোড
/*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")