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

ডাবল মুভিং এভারেজ স্টোকাস্টিক কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-01-29 11:54:10
ট্যাগঃ

img

সারসংক্ষেপ

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

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

কৌশলটি মূলত দুটি প্রযুক্তিগত সূচকের উপর ভিত্তি করেঃ

  1. মুভিং এভারেজঃ এটি বিভিন্ন পরামিতি ব্যবহার করে একটি দ্রুত EMA, ধীর SMA এবং ধীর VWMA গণনা করে এবং যখন দ্রুত EMA ধীর SMA অতিক্রম করে তখন ট্রেড সংকেত তৈরি করে।

  2. স্টোকাস্টিক দোলকঃ এটি %K মান গণনা করে এবং যখন %K পূর্বনির্ধারিত উপরের বা নীচের প্রান্তিক স্তর অতিক্রম করে তখন বাজারকে অতিরিক্ত ক্রয় বা অতিরিক্ত বিক্রয় বলে মনে করে, যা চলমান গড় সংকেতগুলির কিছু ফিল্টার করতে এটি ব্যবহার করে।

বিশেষ করে, সংকেত উৎপন্ন করার যুক্তি হলঃ

  1. যখন দ্রুত ইএমএ ধীর এসএমএ এর উপরে অতিক্রম করে, এবং %K ওভারসোল্ড স্তরের নীচে থাকে, তখন লং যান। যখন দ্রুত ইএমএ ধীর এসএমএ এর নীচে অতিক্রম করে, এবং %K ওভারক্রয়েড স্তরের উপরে থাকে, তখন শর্ট যান।

  2. বিদ্যমান লং পজিশনের জন্য, যখন %K পুনরায় ওভারক্রয় জোন প্রবেশ করে বা মূল্য স্টপ লস লঙ্ঘন করে তখন বন্ধ করুন।

চলমান গড় এবং স্টোকাস্টিক দোলককে একত্রিত করে, কৌশলটি ট্রেডগুলিতে প্রবেশের জন্য উচ্চ সম্ভাব্যতার চলমান গড় সংকেত পয়েন্টগুলি সনাক্ত করার চেষ্টা করে, যখন স্টোকাস্টিক ব্যবহার করে কিছু মিথ্যা সংকেত ফিল্টার করে।

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

এই কৌশলটির প্রধান সুবিধাগুলো হল:

  1. একাধিক প্রযুক্তিগত সূচককে একত্রিত করা একক সূচক ব্যবহারের তুলনায় আরও বিস্তৃত বিচার প্রদান করে।
  2. স্টোকাস্টিক ওসিলেটরের সাহায্যে ফিল্টার করা হলে কিছু ভুল সংকেত এড়ানো যায়।
  3. মিশ্র পরামিতি সহ একাধিক চলমান গড় ব্যবহার করে আরও শক্তিশালী সংকেত দেয়।
  4. একক ট্রেড ক্ষতি নিয়ন্ত্রণের জন্য একটি স্টপ লস প্রক্রিয়া অন্তর্ভুক্ত করে।

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

এছাড়াও কিছু ঝুঁকি আছেঃ

  1. চলমান গড়গুলি অনেক অনিশ্চিত সংকেত তৈরি করতে পারে যার ফলে আরও মিথ্যা এন্ট্রি হয়; সীমিত স্টপ লস ক্ষমতা।
  2. স্টোকাস্টিক দোলক নিজে থেকেই ভুল সংকেতও দিতে পারে।
  3. প্যারামিটার সেটিংসের অপ্টিমাইজেশান প্রয়োজন (যেমন, অতিরিক্ত ক্রয়/অতিরিক্ত বিক্রয় স্তর, চলমান গড় সময়কাল) অন্যথায় পারফরম্যান্স প্রভাব।
  4. মৌলিক বিশ্লেষণের অভাব।

হ্রাসঃ

  1. সূচক সেটিংসের সেরা সমন্বয় খুঁজে পেতে পরামিতিগুলি অপ্টিমাইজ করুন।
  2. ছোট পজিশনের আকার ব্যবহার করুন, স্কেল ইন করুন।
  3. ঘটনা এড়ানোর জন্য মৌলিক বিশ্লেষণ অন্তর্ভুক্ত করুন।

উন্নতির সুযোগ

মূল অপ্টিমাইজেশান সুযোগগুলি হলঃ

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

সিদ্ধান্ত

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


/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("TVIX MEAN REV V2 TREND", overlay=true)
length = input(16, minval=1)
OverBought = input(80)
OverSold = input(20)
TradeLong = input (true)
TradeShort = input (true)

OverBoughtClose = input(80)
OverSoldClose = input(20)

smoothK = 3
smoothD = 3
trail_points = input(50)

k = sma(stoch(close, high, low, length), smoothK)
d = sma(k, smoothD)
k2 = sma(stoch(close, high, low, length), smoothK)
d2 = sma(k, smoothD)


// === GENERAL INPUTS ===
// short Ema
maFastSource = input(defval=close, title="Fast EMA Source")
maFastLength = input(defval=1, title="Fast EMA Period", minval=1)
// long Sma
maSlowSource = input(defval=close, title="Slow SMA Source")
maSlowLength = input(defval=100, title="Slow SMA Period", minval=1)
// longer Sma
maSlowerSource = input(defval=close, title="Slower SMA Source")
maSlowerLength = input(defval=30, title="Slower SMA Period", minval=1)

//ATR Stop Loss Indicator by Keith Larson
atrDays = input(7, "ATR Days Lookback")
theAtr = atr(atrDays)
atrModifier = input(5.0, "ATR Modifier")
//plot(atr * atrModifier, title="ATR")

LstopLoss = close - (theAtr * atrModifier)
SstopLoss = close + (theAtr * atrModifier)



// === SERIES SETUP ===
/// a couple of ma's..
maFast = ema(maFastSource, maFastLength)
maSlow = sma(maSlowSource, maSlowLength)
maSlower = vwma(maSlowerSource, maSlowerLength)
rsi = rsi(maSlowerSource, maSlowerLength)

// === PLOTTING ===
fast = plot(maFast, title="Fast MA", color=color.red, linewidth=2, style=plot.style_line, transp=30)
slow = plot(maSlow, title="Slow MA", color=color.green, linewidth=2, style=plot.style_line, transp=30)
slower = plot(maSlower, title="Slower MA", color=color.teal, linewidth=2, style=plot.style_line, transp=30)


// === LOGIC === Basic - simply switches from long to short and vice-versa with each fast-slow MA cross
LongFilter = maFast > maSlow
ShortFilter = maSlow > maFast




BUY=crossover(k, d) and k < OverSold
SELL=crossunder(k, d) and k > OverBought

SELLCLOSE=crossover(k, d) and k < OverSoldClose
BUYCLOSE=crossunder(k, d) and k > OverBoughtClose

Open = open


if not na(k) and not na(d)
    if crossover(k, d) and k < OverSold and LongFilter and TradeLong
        strategy.entry("$", strategy.long, limit = Open, comment="Long")
    
    strategy.close("$",when = crossunder(k, d) and k > OverBoughtClose or open < LstopLoss  )
    ///strategy.close("$",when = open < LstopLoss  )
    
if not na(k) and not na(d)
    if crossunder(k, d) and k > OverBought and ShortFilter and TradeShort
        strategy.entry("$1", strategy.short, limit = Open, comment="S")
        
    strategy.close ("$1", when = crossover(k, d) and k < OverSoldClose or open > SstopLoss  )
    ///strategy.close ("$1", when = open < SstopLoss) 
    
  
        





আরো