মাল্টি-টাইম ফ্রেম পরিমাণগত ট্রেডিং কৌশল যা ত্রিভুজ সালিসিকে অনুকরণ করে


সৃষ্টির তারিখ: 2024-01-29 11:10:33 অবশেষে সংশোধন করুন: 2024-01-29 11:10:33
অনুলিপি: 0 ক্লিকের সংখ্যা: 736
1
ফোকাস
1617
অনুসারী

মাল্টি-টাইম ফ্রেম পরিমাণগত ট্রেডিং কৌশল যা ত্রিভুজ সালিসিকে অনুকরণ করে

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি তিনটি প্রযুক্তিগত সূচক ব্যবহার করেঃ কেল্ট চ্যানেল (KC), ওলট-পালট স্টপ (Vstop) এবং উইলিয়ামস মিটিং-মিটিং ইন্ডিকেটর (WAE) । কেল্ট চ্যানেলটি নির্ধারণ করে যে দামটি চ্যানেলের বাইরে রয়েছে কিনা, যার ফলে একটি ট্রেডিং সংকেত দেওয়া হয়। ওলট-পালট স্টপটি গতিশীলভাবে স্টপ পজিশনকে সামঞ্জস্য করার জন্য ব্যবহৃত হয়, যা স্টপ ক্ষতির নিশ্চয়তা দেওয়ার সাথে সাথে অপ্রয়োজনীয় স্টপ হ্রাস করে। উইলিয়ামস সূচকটি নির্ধারণ করে যে দামটি শক্তিশালী দিকের দিকে রয়েছে কিনা।

  1. যখন দাম সেল্ট চ্যানেলের উপরে থাকে, তখন এটি একটি bullish সংকেত বলে মনে করা হয়। যখন দাম সেল্ট চ্যানেলের নিচে থাকে, তখন এটি একটি bearish সংকেত বলে মনে করা হয়।

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

  3. উইলিয়ামস সূচকটি MACD এবং ব্রিন ব্যান্ডের চ্যানেলের প্রস্থ গণনা করে মূল্য শক্তিশালী বাড়ে বা নেমে যায় কিনা তা নির্ধারণ করে।

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

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

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

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

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

এই কৌশলটির প্রধান ঝুঁকিটি হ’ল প্যারামিটারগুলি ভুলভাবে সেট করা হতে পারে। তিনটি সূচকের মোট ৮ টি প্যারামিটার রয়েছে এবং ভুলভাবে সেট করা কৌশলটির উপর নেতিবাচক প্রভাব ফেলতে পারে। এছাড়াও, সূচকগুলির মধ্যে ওজনের সম্পর্কগুলি যুক্তিসঙ্গতভাবে কনফিগার করা দরকার, অন্যথায় সংকেতগুলি একে অপরকে অফসাইট করতে পারে, যার ফলে এটি অকার্যকর হতে পারে।

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

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

এই কৌশলটির অপ্টিমাইজেশনের স্থানটি মূলত দুটি দিকের উপর দৃষ্টি নিবদ্ধ করেঃ প্যারামিটার সামঞ্জস্য এবং স্টপ লস কৌশল উন্নতি। বিশেষত, নিম্নলিখিত দিকগুলি থেকে শুরু করা যেতে পারেঃ

  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("QuarryLake", overlay=true)  ///Ultilized modified full kelly for this strategy = 36%

///Keltner channel///
nPeriod = input(title="Keltner Period", type=input.integer, defval=200, minval=1)
Mult = input(title="Keltner Mult", type=input.integer, defval=5, minval=1)
xPrice = ema(hlc3, nPeriod)
xMove = ema(high - low, nPeriod)
xMoveMult = xMove * Mult
xUpper = xPrice + xMoveMult
xLower = xPrice - xMoveMult

// plot(xPrice, color=red, title="KSmid")
p1 = plot(xUpper, color=color.white, title="KSup")
p2 = plot(xLower, color=color.white, title="KSdn")
fill(p1, p2, color=close > xUpper ? color.green : close < xLower ? color.red : color.white)

kclongcondition = close > xUpper
kcshortcondition = close < xLower
kccloselongcondition = crossunder(close, xUpper)
kccloseshortcondition = crossover(close, xLower)

///Volatility Stop///
length = input(title="Vstop length", type=input.integer, defval=3, minval=1)
mult1 = 1.5

atr_ = atr(length)
max1 = 0.0
min1 = 0.0
is_uptrend_prev = false
stop = 0.0
vstop_prev = 0.0
vstop1 = 0.0
is_uptrend = false
is_trend_changed = false
max_ = 0.0
min_ = 0.0
vstop = 0.0
max1 := max(nz(max_[1]), close)
min1 := min(nz(min_[1]), close)
is_uptrend_prev := nz(is_uptrend[1], true)
stop := is_uptrend_prev ? max1 - mult1 * atr_ : min1 + mult1 * atr_
vstop_prev := nz(vstop[1])
vstop1 := is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend := close - vstop1 >= 0
is_trend_changed := is_uptrend != is_uptrend_prev
max_ := is_trend_changed ? close : max1
min_ := is_trend_changed ? close : min1
vstop := is_trend_changed ? is_uptrend ? max_ - mult1 * atr_ : min_ + mult1 * atr_ : 
   vstop1

plot(vstop, color=is_uptrend ? color.green : color.red, style=plot.style_line, linewidth=1)

vstoplongcondition = close > vstop
vstoplongclosecondition = crossunder(close, vstop)
vstopshortcondition = close < vstop
vstopshortclosecondition = crossover(close, vstop)

///Waddah Attar Explosion///
sensitivity = input(150, title="Sensitivity")
fastLength = input(20, title="FastEMA Length")
slowLength = input(40, title="SlowEMA Length")
channelLength = input(20, title="BB Channel Length")
mult = input(2.0, title="BB Stdev Multiplier")
DEAD_ZONE = nz(rma(tr(true), 100)) * 3.7
calc_macd(source, fastLength, slowLength) =>
    fastMA = ema(source, fastLength)
    slowMA = ema(source, slowLength)
    fastMA - slowMA
calc_BBUpper(source, length, mult) =>
    basis = sma(source, length)
    dev = mult * stdev(source, length)
    basis + dev
calc_BBLower(source, length, mult) =>
    basis = sma(source, length)
    dev = mult * stdev(source, length)
    basis - dev
t1 = (calc_macd(close, fastLength, slowLength) - 
   calc_macd(close[1], fastLength, slowLength)) * sensitivity
t2 = (calc_macd(close[2], fastLength, slowLength) - 
   calc_macd(close[3], fastLength, slowLength)) * sensitivity
e1 = calc_BBUpper(close, channelLength, mult) - 
   calc_BBLower(close, channelLength, mult)
trendUp = t1 >= 0 ? t1 : 0
trendDown = t1 < 0 ? -1 * t1 : 0

waelongcondition = trendUp and trendUp > DEAD_ZONE and trendUp > e1
waeshortcondition = trendDown and trendDown > DEAD_ZONE and trendDown > e1

///Long Entry///
longcondition = kclongcondition and vstoplongcondition and waelongcondition
if longcondition
    strategy.entry("Long", strategy.long)

///Long exit///
closeconditionlong = kccloselongcondition or vstoplongclosecondition
if closeconditionlong
    strategy.close("Long")

///Short Entry///
shortcondition = kcshortcondition and vstopshortcondition and waeshortcondition
if shortcondition
    strategy.entry("Short", strategy.short)

///Short exit///
closeconditionshort = kccloseshortcondition or vstopshortclosecondition
if closeconditionshort
    strategy.close("Short")

///Free Hong Kong, the revolution of our time///