স্লাইডিং স্টপ লস কৌশল সমন্বয় করুন


সৃষ্টির তারিখ: 2023-11-02 16:28:55 অবশেষে সংশোধন করুন: 2023-11-02 16:28:55
অনুলিপি: 0 ক্লিকের সংখ্যা: 562
1
ফোকাস
1617
অনুসারী

স্লাইডিং স্টপ লস কৌশল সমন্বয় করুন

ওভারভিউ

এই কৌশলটি স্টোক্যাস্টিক আরএসআই এবং দামের পরিবর্তনশীলতার সূচক ব্যবহার করে, ট্রেন্ডের দিকনির্দেশনাটি মাল্টিপ্লেয়ারে প্রবেশ করে এবং সমন্বয় স্লাইড স্টপ পদ্ধতি ব্যবহার করে ঝুঁকি পরিচালনা করে।

কৌশল নীতি

প্রথমত, কৌশলটি 5 এর দৈর্ঘ্যের আরএসআই সূচক এবং 7 এর স্টোক্যাস্টিক সূচক ব্যবহার করে স্টোক্যাস্টিক আরএসআই গণনা করে। স্টোক্যাস্টিক আরএসআইয়ের কে-মান যখন ডি-এর চেয়ে বেশি হয় তখন এটি একটি উত্সাহী সংকেত এবং যখন কে-মান ডি-এর চেয়ে কম হয় তখন এটি একটি পতনশীল সংকেত।

দ্বিতীয়ত, কৌশলটি দামের পরিবর্তনের হার ইএমএ ROC হিসাবে গণনা করে। যখন ইএমএ ROC অর্ধেকের বেশি বা নেগেটিভ অর্ধেকের কম হয়, তখন দাম সক্রিয়ভাবে পরিবর্তিত হয় বলে মনে করা হয়।

স্টোক্যাস্টিক আরএসআইয়ের পল্ট্রোফোর সিগন্যাল এবং মূল্য পরিবর্তনের হার নির্দেশকের সাথে মিলিত হয়ে ট্রেন্ডের দিকটি সনাক্ত করা যায়। যখন স্টোক্যাস্টিক আরএসআই bullish হয় এবং দাম সক্রিয়ভাবে পরিবর্তিত হয়, তখন আরও বেশি করা হয়; যখন স্টোক্যাস্টিক আরএসআই bearish হয় এবং দাম সক্রিয়ভাবে পরিবর্তিত হয়, তখন খালি করা হয়।

অবশেষে, এই কৌশলটি স্থানাঙ্ক স্লাইডিং স্টপ পদ্ধতি ব্যবহার করে ঝুঁকি পরিচালনা করে। পজিশন খোলার পরে, সর্বোচ্চ বা সর্বনিম্ন দামটি আপডেট করা চালিয়ে যান এবং সর্বোচ্চ বা সর্বনিম্ন দাম থেকে একটি নির্দিষ্ট অনুপাতের দূরত্বকে স্টপ হিসাবে ব্যবহার করুন।

সামর্থ্য বিশ্লেষণ

এই কৌশলটির সুবিধাগুলো হলঃ

  1. স্টোক্যাস্টিক আরএসআই সূচক ব্যবহার করে প্রবণতা এবং ওভারবয় ওভারসোলিংয়ের কার্যকর সনাক্তকরণ করা যায়।

  2. মূল্য পরিবর্তনশীলতার সূচকগুলি বাজারের অস্থিরতাকে ফিল্টার করে এবং মিথ্যা সংকেতগুলি এড়াতে পারে।

  3. কোঅর্ডিনেট স্লাইডিং স্টপ লস পদ্ধতিটি লাভের সর্বাধিক লকিং করতে পারে এবং ঝুঁকি নিয়ন্ত্রণ করতে পারে।

  4. কৌশল পরামিতি অপ্টিমাইজ করার জন্য অনেক জায়গা রয়েছে, যা বিভিন্ন জাতের জন্য সামঞ্জস্য করা যেতে পারে।

  5. এই কৌশলগুলি সহজ, সুস্পষ্ট এবং সহজেই বোঝা যায়।

ঝুঁকি বিশ্লেষণ

এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ

  1. Stochastic RSI একটি মিথ্যা সংকেত তৈরি করতে পারে, যা অন্যান্য কারণের সাথে নিশ্চিত করা প্রয়োজন।

  2. কোঅর্ডিনেটর স্লাইডিং স্টপটি খুব বেশি তীব্র হতে পারে, যা রাতারাতি গ্যাপস দ্বারা আঘাত করা যেতে পারে।

  3. স্বল্পমেয়াদী বিপরীতমুখী প্রভাবের ফলে স্টপ লস কার্যকর হতে পারে।

  4. কৌশলগত প্যারামিটারগুলি বিভিন্ন জাতের জন্য অপ্টিমাইজ করা দরকার, অন্যথায় এটি কার্যকর হতে পারে না।

  5. লেনদেনের খরচ কৌশলগত লাভের উপর প্রভাব ফেলতে পারে এবং যুক্তিসঙ্গত লেনদেনের ফ্রিকোয়েন্সি বিবেচনা করা প্রয়োজন।

অপ্টিমাইজেশান দিক

এই কৌশলটি নিম্নলিখিত দিকগুলি থেকেও উন্নত করা যেতে পারেঃ

  1. Stochastic RSI প্যারামিটার অপ্টিমাইজ করুন, মিথ্যা সংকেত হার কমিয়ে দিন। আপনি বিভিন্ন K মান এবং D মান প্যারামিটার পরীক্ষা করতে পারেন।

  2. দামের পরিবর্তনের হার সূচক প্যারামিটারগুলিকে অপ্টিমাইজ করুন, ফিল্টারিংয়ের কার্যকারিতা উন্নত করুন। বিভিন্ন উইন্ডো পিরিয়ড এবং পরিবর্তনের হারের থ্রেশহোল্ড পরীক্ষা করা যেতে পারে।

  3. প্রবণতা নির্ণয়কারী সূচকগুলির সাথে মিলিত হয়ে বিপরীত স্টপ ক্ষতি এড়াতে। যেমন চলমান গড়ের মতো সূচক যুক্ত করা।

  4. অপ্টিমাইজড স্টপ লস রেসিপি, ঝুঁকি কমানো। বিভিন্ন স্টপ লস মাত্রা পরীক্ষা করা যেতে পারে।

  5. পজিশন ম্যানেজমেন্ট যোগ করুন, একক ঝুঁকি নিয়ন্ত্রণ করুন। যেমন স্থির স্টপ লস পরিমাণ, বা অ্যাকাউন্টের ব্যালেন্সের উপর ভিত্তি করে পজিশনগুলিকে গতিশীলভাবে সামঞ্জস্য করুন।

  6. বিভিন্ন জাতের প্যারামিটার পরীক্ষা করে, অভিযোজনশীলতা বাড়ানো। একাধিক বাজারে একাধিক সময়কালের যাচাইকরণ পছন্দ।

সারসংক্ষেপ

এই কৌশলটির সামগ্রিক ধারণাটি পরিষ্কার এবং সহজ, স্টোক্যাস্টিক আরএসআই ব্যবহার করে প্রবণতার দিকনির্দেশনা সনাক্ত করে এবং দামের পরিবর্তনের হার নির্দেশক ফিল্টারিং সংকেতগুলির সাথে মিলিত হয়, যা কার্যকরভাবে মাঝারি এবং দীর্ঘ লাইন প্রবণতার সুযোগগুলিকে ক্যাপচার করতে পারে। সমন্বয় স্লাইডিং স্টপ লস কৌশলটি লাভের উপর লক করতে পারে এবং ঝুঁকি নিয়ন্ত্রণ করতে পারে। আরও অপ্টিমাইজেশনের মাধ্যমে, এই কৌশলটি একটি খুব কার্যকর প্রবণতা ট্র্যাকিং কৌশল হতে পারে।

কৌশল সোর্স কোড
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Sto2", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Time Frame ///////////////
testStartYear = input(2017, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true
    
///////////// Stochastic calc /////////////
smoothK = input(1, minval=1)
smoothD = input(7, minval=1)
lengthRSI = input(5, minval=1)
lengthStoch = input(7, minval=1)
src = input(close, title="RSI Source")

up = sma(max(change(src), 0), lengthRSI) 
down = sma(-min(change(src), 0), lengthRSI)
rsi1 = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

///////////// Rate Of Change ///////////// 
source = close, roclength = input(14, minval=1), pcntChange = input(2, minval=1)
roc = 100 * (source - source[roclength]) / source[roclength]
emaroc = ema(roc, roclength / 2)
isMoving() => emaroc > (pcntChange / 2) or emaroc < (0 - (pcntChange / 2))

/////////////// STRATEGY ///////////////
long = k > d and isMoving()
short = k < d and isMoving()

last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

last_open_long_signal = 0.0
last_open_short_signal = 0.0
last_open_long_signal := long_signal ? open : nz(last_open_long_signal[1])
last_open_short_signal := short_signal ? open : nz(last_open_short_signal[1])

last_long_signal = 0.0
last_short_signal = 0.0
last_long_signal := long_signal ? time : nz(last_long_signal[1])
last_short_signal := short_signal ? time : nz(last_short_signal[1])

in_long_signal = last_long_signal > last_short_signal
in_short_signal = last_short_signal > last_long_signal

last_high = 0.0
last_low = 0.0
last_high := not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1])
last_low := not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1])
sl_inp = input(2.0, title='Stop Loss %') / 100
tp_inp = input(9.0, title='Take Profit %') / 100 
 
take_level_l = strategy.position_avg_price * (1 + tp_inp)
take_level_s = strategy.position_avg_price * (1 - tp_inp) 

since_longEntry = barssince(last_open_long_signal != last_open_long_signal[1]) // LONG SL
since_shortEntry = barssince(last_open_short_signal != last_open_short_signal[1]) // SHORT SL

slLong = in_long_signal ? strategy.position_avg_price * (1 - sl_inp) : na
slShort = strategy.position_avg_price * (1 + sl_inp)
long_sl = in_long_signal ? slLong : na
short_sl = in_short_signal ? slShort : na

// Strategy
if testPeriod()
    strategy.entry("Long Entry",  strategy.long, when=long)
    strategy.entry("Short Entry", strategy.short, when=short)
    strategy.exit("Long Ex", "Long Entry", stop=long_sl, limit=take_level_l, when=since_longEntry > 0)
    strategy.exit("Short Ex", "Short Entry", stop=short_sl, limit=take_level_s, when=since_shortEntry > 0)
    
///////////// Plotting /////////////
bgcolor(isMoving() ? long ? color.green : short ? color.red : na : color.white, transp=80)
p1 = plot(k, color=color.gray, linewidth=0)
p2 = plot(d, color=color.gray, linewidth=0)
h0 = hline(100)
h1 = hline(50)
h3 = hline(0)
fill(p1, p2, color = k > d ? color.lime : color.red, transp=70)