ডুয়াল কোয়ান্ট ট্রেডিং সিস্টেম

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

img

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

কৌশল নীতি

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

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

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

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

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

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

  • সিসিআই অস্বাভাবিকভাবে অস্থির বাজারে দুর্বল পারফরম্যান্স দেখায়
  • দ্বৈত RSI ক্রস শর্তাবলী তুলনামূলকভাবে কঠোর, সম্ভাব্য কিছু সুযোগ মিস
  • ট্রেলিং স্টপগুলি অত্যধিক বিষয়গত হতে পারে, প্যারামিটার অপ্টিমাইজেশান প্রয়োজন
  • নির্দিষ্ট ট্রেডিং সেশনে রাতারাতি বড় সংবাদ ফাঁক মিস হতে পারে

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

  • সর্বোত্তম সেটিং খুঁজে পেতে বিভিন্ন সিসিআই পরামিতি সমন্বয় পরীক্ষা করুন
  • RSI ক্রসওভার শর্ত অপসারণ এবং CCI এর উপর ভিত্তি করে সরাসরি প্রবেশের পরীক্ষা
  • ব্যাকটেস্ট এবং অনুকূল সেটিংস খুঁজে পেতে ট্রেলিং স্টপ পরামিতি অপ্টিমাইজ
  • জোরপূর্বক অবস্থান বন্ধ করার যুক্তি সরিয়ে ফেলার পরীক্ষা করুন এবং পরিবর্তে মুনাফা সর্বাধিকীকরণের জন্য অবস্থানের সময় ট্রেলিং স্টপগুলির সাথে মুনাফা ট্র্যাক করুন

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

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


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © rwestbrookjr

//@version=5
strategy("EMA with RSI Cross Strategy", overlay=true)

//EMA
fastLen = input(title='Fast EMA Length', defval=9)
slowLen = input(title='Slow EMA Length', defval=20)

fastEMA = ta.ema(close, fastLen)
slowEMA = ta.ema(close, slowLen)

fema = plot(fastEMA, title='FastEMA', color=color.new(color.green, 0), linewidth=1, style=plot.style_line)
sema = plot(slowEMA, title='SlowEMA', color=color.new(color.red, 0), linewidth=1, style=plot.style_line)

fill(fema, sema, color=fastEMA > slowEMA ? color.new(#417505, 50) : color.new(#890101, 50), title='Cloud')

// Bull and Bear Alerts
//Bull = ta.crossover(fastEMA, slowEMA)
Bull = fastEMA > slowEMA
//Bear = ta.crossunder(fastEMA, slowEMA)
Bear = fastEMA < slowEMA

//RSIs
rsiLength1Input = input.int(9, minval=1, title="RSI Length", group="RSI Settings")
rsiSource1Input = input.source(close, "Source", group="RSI Settings")
rsiLength2Input = input.int(20, minval=1, title="RSI Length", group="RSI Settings")
rsiSource2Input = input.source(close, "Source", group="RSI Settings")

up1 = ta.rma(math.max(ta.change(rsiSource1Input), 0), rsiLength1Input)
down1 = ta.rma(-math.min(ta.change(rsiSource1Input), 0), rsiLength1Input)
rsi = down1 == 0 ? 100 : up1 == 0 ? 0 : 100 - (100 / (1 + up1 / down1))
up2 = ta.rma(math.max(ta.change(rsiSource2Input), 0), rsiLength2Input)
down2 = ta.rma(-math.min(ta.change(rsiSource2Input), 0), rsiLength2Input)
rsi2 = down2 == 0 ? 100 : up2 == 0 ? 0 : 100 - (100 / (1 + up2 / down2))

//CCI
cciLength = input.int(20, minval=1)
src = input(hlc3, title="Source")
ma = ta.sma(src, cciLength)
cci = (src - ma) / (0.015 * ta.dev(src, cciLength))

//Trail Stop Setup
trstp = input.float(title="Trail Loss($)", minval = 0.0, step = 0.01, defval = 0.5)

longStop = 0.0, shortStop = 0.0

longStop := if Bull
    stopValue = close - trstp
    math.max(stopValue, longStop[1])
else
    0.0

shortStop := if Bear
    stopValue = close + trstp
    math.min(stopValue, shortStop[1])
else
    999999


//Session Setup
open_session=input(defval="0930-1545")
session = time("1", open_session)
validSession=(na(session) ? 0 : 1)

//Trade Signals
longCondition = Bull and cci > 100 and ta.crossover(rsi,rsi2) and validSession
if (longCondition)
    strategy.entry("Long", strategy.long, 1)
    
//longExit = close > strategy.opentrades.entry_price(0) + 1.5 or close < strategy.opentrades.entry_price(0) - 0.75
longExit = close < longStop or not validSession
if (longExit)
    strategy.close("Long")

shortCondition = Bear and cci < 100 and ta.crossunder(rsi,rsi2) and validSession
if (shortCondition)
    strategy.entry("Short", strategy.short, 1)

//shortExit = close < strategy.opentrades.entry_price(0) - 1.5 or close > strategy.opentrades.entry_price(0) + 0.75
shortExit = close > shortStop or not validSession
if (shortExit)
    strategy.close("Short")


আরো