রিসোর্স লোড হচ্ছে... লোডিং...

ডায়নামিক স্টোকাস্টিক প্যাটার্ন ট্রেডিং সিস্টেমের উপর ভিত্তি করে মাল্টি-ইন্ডিক্টর অপ্টিমাইজড কেডিজে ট্রেন্ড ক্রসওভার কৌশল

লেখক:চাওঝাং, তারিখঃ 2025-01-06 16:23:38
ট্যাগঃকেডিজেআরএসভিSLটিপিএটিআর

img

সারসংক্ষেপ

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

কৌশলগত নীতি

কৌশলটির মূল যুক্তি বেশ কয়েকটি মূল উপাদানের উপর ভিত্তি করেঃ

  1. কেডিজে সূচক গণনা করতে কাস্টম বিসিডব্লিউএসএমএ (ওয়েটেড মুভিং এভারেজ) অ্যালগরিদম ব্যবহার করে, সূচকের মসৃণতা এবং স্থিতিশীলতা উন্নত করে
  2. আরএসভি (রো স্টোকাস্টিক ভ্যালু) গণনার মাধ্যমে দামগুলিকে 0-100 পরিসরে রূপান্তর করে, উচ্চ এবং নিম্নের মধ্যে দামের অবস্থানকে আরও ভালভাবে প্রতিফলিত করে
  3. অনন্য J-লাইন এবং J5-লাইন (ধারিত সূচক) ক্রস-ভ্যালিডেশন প্রক্রিয়া ডিজাইন করে, একাধিক নিশ্চিতকরণের মাধ্যমে ট্রেড সিগন্যালের নির্ভুলতা উন্নত করে
  4. ধারাবাহিকতার উপর ভিত্তি করে প্রবণতা নিশ্চিতকরণ প্রক্রিয়া স্থাপন করে, যা প্রবণতার বৈধতা নিশ্চিত করার জন্য J-লাইনকে পরপর 3 দিন ধরে D-লাইনের উপরে থাকতে বাধ্য করে
  5. স্টপ লস এবং ট্রেলিং স্টপ লসের শতাংশ সহ যৌগিক ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা একীভূত করে

কৌশলগত সুবিধা

  1. উন্নত সিগন্যাল জেনারেশনঃ একাধিক প্রযুক্তিগত সূচক ক্রস-ভ্যালিডেশনের মাধ্যমে মিথ্যা সংকেতগুলি উল্লেখযোগ্যভাবে হ্রাস করে
  2. বিস্তৃত ঝুঁকি নিয়ন্ত্রণঃ স্থির এবং ট্রেলিং স্টপ সহ বহু-স্তরের ঝুঁকি নিয়ন্ত্রণ প্রক্রিয়া ব্যবহার করে, কার্যকরভাবে ডাউনসাইড ঝুঁকি নিয়ন্ত্রণ করে
  3. শক্তিশালী প্যারামিটার অভিযোজনযোগ্যতাঃ কেডিজে সময়কাল এবং সংকেত মসৃণকরণ সহগগুলির মতো মূল প্যারামিটারগুলি বাজারের অবস্থার উপর ভিত্তি করে নমনীয়ভাবে সামঞ্জস্য করা যেতে পারে
  4. উচ্চ কম্পিউটেশনাল দক্ষতাঃ অপ্টিমাইজড বিসিডব্লিউএসএমএ অ্যালগরিদম ব্যবহার করে, কম্পিউটেশনাল জটিলতা হ্রাস করে এবং কৌশল বাস্তবায়নের দক্ষতা উন্নত করে
  5. ভাল অভিযোজনযোগ্যতাঃ প্যারামিটার সমন্বয় অপ্টিমাইজেশান মাধ্যমে বিভিন্ন বাজার পরিবেশের সাথে মানিয়ে নিতে পারেন

কৌশলগত ঝুঁকি

  1. বাজার ঝুঁকিঃ পার্শ্ববর্তী বাজারে প্রায়শই মিথ্যা ব্রেকআউট সংকেত তৈরি করতে পারে, ট্রেডিং খরচ বৃদ্ধি করে
  2. বিলম্বের ঝুঁকিঃ চলমান গড়ের মসৃণতার কারণে সংকেতগুলি কিছু বিলম্বের সম্মুখীন হতে পারে
  3. প্যারামিটার সংবেদনশীলতাঃ কৌশল কার্যকারিতা প্যারামিটার সেটিংসে সংবেদনশীল, ভুল সেটিং কৌশল কর্মক্ষমতা উল্লেখযোগ্যভাবে হ্রাস করতে পারে
  4. বাজার পরিবেশের উপর নির্ভরশীলতাঃ নির্দিষ্ট নির্দিষ্ট বাজারের পরিবেশে কৌশলটির কার্যকারিতা আদর্শ নাও হতে পারে

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

  1. সিগন্যাল ফিল্টার প্রক্রিয়া অপ্টিমাইজেশনঃ সিগন্যাল নির্ভরযোগ্যতা উন্নত করতে ভলিউম এবং অস্থিরতার মতো সহায়ক সূচক প্রবর্তন করতে পারে
  2. ডায়নামিক প্যারামিটার সমন্বয়ঃ বাজারের অস্থিরতার উপর ভিত্তি করে ডায়নামিকভাবে KDJ প্যারামিটার এবং স্টপ-লস প্যারামিটারগুলি সামঞ্জস্য করুন
  3. বাজার পরিবেশ স্বীকৃতিঃ বিভিন্ন বাজারের পরিবেশে বিভিন্ন ট্রেডিং কৌশল গ্রহণের জন্য বাজার পরিবেশ বিচার মডিউল যোগ করুন
  4. ঝুঁকি নিয়ন্ত্রণের উন্নতিঃ সর্বোচ্চ ড্রাউনডাউন নিয়ন্ত্রণ এবং পজিশনের সময়সীমার মতো অতিরিক্ত ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা যুক্ত করতে পারে
  5. পারফরম্যান্স অপ্টিমাইজেশানঃ কম্পিউটেশনাল দক্ষতা উন্নত করতে BCWSMA অ্যালগরিদমকে আরও অপ্টিমাইজ করুন

সংক্ষিপ্তসার

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


/*backtest
start: 2024-01-06 00:00:00
end: 2025-01-05 00:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © hexu90

//@version=6

// Date Range
// STEP 1. Create inputs that configure the backtest's date range
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2020"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("15 Dec 2024"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
// STEP 2. See if current bar falls inside the date range
inTradeWindow = true

//KDJ strategy
// indicator("My Customized KDJ", shorttitle="KDJ")
strategy("My KDJ Strategy", overlay = false)

// Input parameters
ilong = input(90, title="Period")
k_isig = input(3, title="K Signal")
d_isig = input(30, title="D Signal")

// Custom BCWSMA calculation outside the function
bcwsma(source, length, weight) =>
    var float prev = na  // Persistent variable to store the previous value
    if na(prev)
        prev := source  // Initialize on the first run
    prev := (weight * source + (length - weight) * prev) / length
    prev

// Calculate KDJ
c = close
h = ta.highest(high, ilong)
l = ta.lowest(low, ilong)
RSV = 100 * ((c - l) / (h - l))
pK = bcwsma(RSV, k_isig, 1)
pD = bcwsma(pK, d_isig, 1)
pJ = 3 * pK - 2 * pD

pJ1 = 0
pJ2 = 80
pJ5 = (pJ-pK)-(pK-pD)

// Plot the K, D, J lines with colors
plot(pK, color=color.rgb(251, 121, 8), title="K Line")  // Orange
plot(pD, color=color.rgb(30, 0, 255), title="D Line")  // Blue
plot(pJ, color=color.new(color.rgb(251, 0, 255), 10), title="J Line")  // Pink with transparency
plot(pJ5, color=#6f03f3e6, title="J Line")  // Pink with transparency

// Background color and reference lines
// bgcolor(pJ > pD ? color.new(color.green, 75) : color.new(color.red, 75))
// hline(80, "Upper Band", color=color.gray)
// hline(20, "Lower Band", color=color.gray)

// Variables to track the conditions
var bool condition1_met = false
var int condition2_met = 0

// Condition 1: pJ drops below pJ5
if ta.crossunder(pJ, pJ5)
    condition1_met := true
    condition2_met := 0  // Reset condition 2 if pJ drops below pJ5 again

if ta.crossover(pJ, pD)
    condition2_met += 1

to_long = ta.crossover(pJ, pD)


var int consecutiveDays = 0
// Update the count of consecutive days
if pJ > pD
    consecutiveDays += 1
else
    consecutiveDays := 0

// Check if pJ has been above pD for more than 3 days
consPJacrossPD = false
if consecutiveDays > 3
    consPJacrossPD := true

// Entry condition: After condition 2, pJ crosses above pD a second time
// if condition1_met and condition2_met > 1
//     strategy.entry("golden", strategy.long, qty=1000)
//     condition1_met := false  // Reset the conditions for a new cycle
//     condition2_met = 0
// 
if ta.crossover(pJ, pD) 
    // and pD < 40 and consPJacrossPD
    // consecutiveDays == 1
    //  consecutiveDays == 3 and
    strategy.entry("golden", strategy.long, qty=1)

// to_short = 
// or ta.crossunder(pJ, 100)

// Exit condition
if ta.crossover(pD, pJ)
    strategy.close("golden", qty = 1)

// Stop loss and trailing profit
trail_stop_pct = input.float(0.5, title="Trailing Stop activation (%)", group="Exit Lonng", inline="LTS", tooltip="Trailing Treshold %")
trail_offset_pct = input.float(0.5, title="Trailing Offset (%)", group="Exit Lonng", inline="LTS", tooltip="Trailing Offset %")
trail_stop_tick = trail_stop_pct * close/100
trail_offset_tick = trail_offset_pct * close/100

sl_pct = input.float(5, title="Stop Loss", group="SL and TP", inline="LSLTP")
// tp_pct = input.float(9, title="Take Profit", group="SL and TP", inline="LSLTP")

long_sl_price = strategy.position_avg_price * (1 - sl_pct/100)
// long_tp_price = strategy.position_avg_price * (1 + tp_pct/100)

strategy.exit('golden Exit', 'golden', stop = long_sl_price)
// trail_points = trail_stop_tick, trail_offset=trail_offset_tick


সম্পর্কিত

আরো