র্যান্ডম এন্ট্রি ভিত্তিক যৌগিক স্টপ লস এবং লাভ গ্রহণ কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৪-০১-২৪ ১৫ঃ৩৮ঃ৪৯
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটির মূল ধারণা হ'ল এন্ট্রি পয়েন্টটি এলোমেলোভাবে নির্ধারণ করা এবং প্রতিটি ব্যবসায়ের ঝুঁকি পরিচালনা এবং লাভ এবং ক্ষতি নিয়ন্ত্রণের জন্য তিনটি লাভের পয়েন্ট এবং একটি স্টপ লস পয়েন্ট সেট করা।

কৌশলগত যুক্তি

এই কৌশলটি লং এন্ট্রি পয়েন্ট নির্ধারণের জন্য 11 থেকে 13 এর মধ্যে র্যান্ডম নম্বর rd_number_entry ব্যবহার করে এবং অবস্থান বন্ধ করার জন্য 20 থেকে 22 এর মধ্যে rd_number_exit ব্যবহার করে। লং যাওয়ার পরে স্টপ লসটি এন্ট্রি মূল্য বিয়োগ atr ((14) এ সেট করা হয়।slx. একই সময়ে, তিনটি লাভের পয়েন্ট সেট করা হয়. প্রথম লাভের পয়েন্টটি প্রবেশ মূল্য প্লাস atr ((14) ।tpx, দ্বিতীয় লাভের পয়েন্ট হল এন্ট্রি প্রাইস + 2tpx, এবং তৃতীয় লাভের পয়েন্ট হল প্রবেশ মূল্য + 3শর্ট নেওয়ার নীতি একই রকম, তবে এন্ট্রি সিদ্ধান্তটি বিভিন্ন rd_number_entry মান গ্রহণ করে এবং লাভ এবং স্টপ লসের দিক বিপরীত।

tpx (লাভ গ্রহণের সহগ) এবং slx (স্টপ লস সহগ) এর সমন্বয় করে ঝুঁকি নিয়ন্ত্রণ করা যায়।

সুবিধা বিশ্লেষণ

এই কৌশলটির সুবিধাগুলির মধ্যে রয়েছেঃ

  1. র্যান্ডম এন্ট্রি ব্যবহার কার্ভ ফিটিং সম্ভাবনা হ্রাস করতে পারেন
  2. একাধিক স্টপ লস এবং লাভ পয়েন্ট সেট করা একক বাণিজ্যের ঝুঁকি নিয়ন্ত্রণ করতে পারে
  3. ট্যাক লাভ এবং স্টপ লস সেট করার জন্য এটার ব্যবহার করে এটিকে বাজারের অস্থিরতার উপর ভিত্তি করে তৈরি করা যায়
  4. ব্যবসায়িক ঝুঁকি কোয়ালিফাইন্টগুলিকে সামঞ্জস্য করে নিয়ন্ত্রণ করা যায়

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

এই কৌশলটির ঝুঁকিগুলির মধ্যে রয়েছেঃ

  1. র্যান্ডম এন্ট্রি প্রবণতা মিস করতে পারে
  2. যদি স্টপ লস খুব ছোট হয়, এটি সহজেই বন্ধ করা যেতে পারে
  3. যদি লাভের স্থান খুব বড় হয়, লাভ অপর্যাপ্ত হতে পারে
  4. অনুপযুক্ত পরামিতি বৃহত্তর ক্ষতি হতে পারে

লভ্যাংশ গ্রহণ এবং স্টপ লস সহগগুলি সামঞ্জস্য করে এবং র্যান্ডম এন্ট্রি লজিককে অনুকূল করে ঝুঁকিগুলি হ্রাস করা যেতে পারে।

অপ্টিমাইজেশান নির্দেশাবলী

কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ

  1. র্যান্ডম এন্ট্রি লজিক উন্নত করুন এবং ট্রেন্ড ইন্ডিকেটর রায় অন্তর্ভুক্ত করুন
  2. লাভের অনুপাতকে আরও যুক্তিসঙ্গত করার জন্য লাভ গ্রহণ এবং স্টপ লস সহগগুলি অনুকূল করুন
  3. বিভিন্ন পর্যায়ে বিভিন্ন মুনাফা গ্রহণ স্পেস ব্যবহার করার জন্য অবস্থান নিয়ন্ত্রণ বৃদ্ধি
  4. মেশিন লার্নিং অ্যালগরিদম দিয়ে প্যারামিটার অপ্টিমাইজ করুন

সিদ্ধান্ত

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Random Strategy with 3 TP levels and SL", overlay=true,max_bars_back = 50)

tpx = input(defval = 0.8, title = 'Atr multiplication for TPs?')
slx = input(defval = 1.2, title = 'Atr multiplication for SL?')
isLong = false
isLong := nz(isLong[1])

isShort = false
isShort := nz(isShort[1])

entryPrice = 0.0
entryPrice := nz(entryPrice[1])
tp1 = true
tp1 := nz(tp1[1])
tp2 = true
tp2 := nz(tp2[1])

sl_price = 3213.0
sl_price := nz(sl_price[1])

sl_atr = atr(14)*slx
tp_atr = atr(14)*tpx

rd_number_entry = 1.0
rd_number_entry := (16708 * nz(rd_number_entry[1], 1) % 2147483647)%17

rd_number_exit = 1.0
rd_number_exit := ((16708 * time % 2147483647) %17)


//plot(rd_number_entry)

shortCondition = (rd_number_entry == 13? true:false) and (year >= 2017) and not isLong and not isShort
longCondition = (rd_number_entry == 11 ? true:false) and (year >= 2017) and not isShort and not isShort
//Never exits a trade:
exitLong = (rd_number_exit == 22?true:false) and (year >= 2018) and not isShort
exitShort = (rd_number_exit ==  22?true:false) and (year >= 2018) and not isLong


//shortCondition = crossunder(sma(close, 14), sma(close, 28)) and year >= 2017
//longCondition = crossover(sma(close, 14), sma(close, 28)) and year >= 2017

//exitLong = crossunder(ema(close, 14), ema(close, 28)) and year >= 2017
//exitShort = crossover(ema(close, 14), ema(close, 28)) and year >= 2017

if (longCondition and not isLong)
    strategy.entry('Long1', strategy.long)
    strategy.entry('Long2', strategy.long)
    strategy.entry('Long3', strategy.long)
    isLong := true
    entryPrice := close
    isShort := false
    tp1 := false
    tp2 := false
    sl_price := close-sl_atr

if (shortCondition and not isShort)
    strategy.entry('Short1', strategy.short)
    strategy.entry('Short2', strategy.short)
    strategy.entry('Short3', strategy.short)
    isShort := true
    entryPrice := close
    isLong := false
    tp1 := false
    tp2 := false
    sl_price := close+sl_atr
    
if (exitShort and isShort)
    strategy.close('Short1')
    strategy.close('Short2')
    strategy.close('Short3')
    isShort :=  false

if (exitLong and isLong)
    strategy.close('Long1')
    strategy.close('Long2')
    strategy.close('Long3')
    isLong :=  false

if isLong
    if (close > entryPrice + tp_atr) and not tp1
        strategy.close('Long1')
        tp1 := true
        sl_price := close - tp_atr
    if (close > entryPrice + 2*tp_atr) and not tp2
        strategy.close('Long2')
        tp2 := true
        sl_price := close - tp_atr
    if (close > entryPrice + 3*tp_atr)
        strategy.close('Long3')
        isLong := false
    if (close < sl_price)
        strategy.close('Long1')
        strategy.close('Long2')
        strategy.close('Long3')
        isLong := false

if isShort
    if (close < entryPrice - tp_atr) and not tp1
        strategy.close('Short1')
        sl_price := close + tp_atr
        tp1 := true
    if (close < entryPrice - 2*tp_atr) and not tp2
        strategy.close('Short2')
        sl_price := close + tp_atr
        tp2 := true
    if (close < entryPrice - 3*tp_atr)
        strategy.close('Short3')
        isShort := false
    if (close > sl_price)
        strategy.close('Short1')
        strategy.close('Short2')
        strategy.close('Short3')
        isShort := false
plot(atr(14)*slx)
plot(sl_price)

আরো