ডাবল মুভিং এভারেজ ক্রসওভার এবং উইলিয়ামস ইন্ডিকেটর কম্বিনেশন স্ট্র্যাটেজি


সৃষ্টির তারিখ: 2024-02-01 15:04:51 অবশেষে সংশোধন করুন: 2024-02-01 15:04:51
অনুলিপি: 0 ক্লিকের সংখ্যা: 520
1
ফোকাস
1617
অনুসারী

ডাবল মুভিং এভারেজ ক্রসওভার এবং উইলিয়ামস ইন্ডিকেটর কম্বিনেশন স্ট্র্যাটেজি

ওভারভিউ

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

কৌশল নীতি

প্রথম কৌশলটির মূলনীতি হল, যখন গতকালের সমাপ্তির মূল্য আগের দিনের সমাপ্তির মূল্যের চেয়ে বেশি এবং দ্রুত কে-লাইন ৯ তারিখের এলোমেলো সূচকটি ধীর ডি-লাইন ৩ তারিখের এলোমেলো সূচকের চেয়ে কম হয় তখন একটি কেনার সংকেত তৈরি করা হয়; যখন গতকালের সমাপ্তির মূল্য আগের দিনের সমাপ্তির মূল্যের চেয়ে কম হয় এবং দ্রুত কে-লাইন ৯ তারিখের এলোমেলো সূচকটি ধীর ডি-লাইন ৩ তারিখের এলোমেলো সূচকের চেয়ে বেশি হয় তখন একটি বিক্রয় সংকেত তৈরি করা হয়।

দ্বিতীয় কৌশলটির মূলনীতি হল, ৫ এবং ৩৪ দিনের দামের ওঠানামার পার্থক্য গণনা করা এবং এই পার্থক্যের চলমান গড় গণনা করা। বর্তমান মান আগের চক্রের চেয়ে বেশি হলে এটি একটি কেনার সংকেত এবং বর্তমান মান আগের চক্রের চেয়ে কম হলে এটি একটি বিক্রয় সংকেত।

দুটি কৌশল সংযুক্ত করে, চূড়ান্ত সংকেত দুটি কৌশল সংকেতের সংমিশ্রণ গ্রহণ করে। যখন দুটি কৌশল একই সাথে কেনার সংকেত দেয়, তখন আরও বেশি করে; যখন দুটি কৌশল একই সাথে বিক্রয় সংকেত দেয়, তখন খালি করে।

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

এই কৌশলটি ডাবল মুভিং এভারেজ কৌশল এবং উইলিয়ামস ইনডিকেটর কৌশল দুটি কৌশলগুলির সুবিধাগুলি একত্রিত করে। ডাবল মুভিং এভারেজ কৌশলটি মাঝারি-দীর্ঘ লাইনের প্রবণতা ধরতে পারে; উইলিয়ামস ইনডিকেটর কৌশলটি সংক্ষিপ্ত লাইনের ব্যবসায়ের সুযোগগুলি ধরতে পারে। দুটি কৌশল একত্রিত করে, একই সাথে মুনাফা অর্জন এবং মিথ্যা ব্রেকডাউন প্রতিরোধ করতে পারে।

এছাড়াও, এই কৌশলটি একাধিক প্যারামিটার ইনপুট সেট করে, যা বিভিন্ন স্টক এবং বাজারের অবস্থার উপর ভিত্তি করে প্যারামিটার অপ্টিমাইজ করতে পারে, যা আরও বিস্তৃত বাজার পরিবেশের সাথে খাপ খায়।

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

এই কৌশলটির সবচেয়ে বড় ঝুঁকিটি হ’ল দুটি কৌশল সংকেত একমত হতে পারে না। যখন একটি কৌশল একটি ক্রয় সংকেত দেয় এবং অন্যটি একটি বিক্রয় সংকেত দেয়, তখন কৌশলটি কার্যকর সংকেত তৈরি করতে পারে না এবং ব্যবসায়ের সুযোগ মিস করতে পারে।

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

ঝুঁকি কমানোর জন্য, শুধুমাত্র একটি কৌশলগত সংকেত ব্যবহার করা যেতে পারে; বা বিভিন্ন বাজারের পরিবেশের জন্য উপযুক্ত প্যারামিটারগুলির পরিসীমা নির্ধারণের জন্য গবেষণা করা যেতে পারে।

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

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

  1. দুটি কৌশলগত সংকেতের সামঞ্জস্যের মূল্যায়ন করুন, বিভিন্ন প্যারামিটারের অধীনে তাদের সংকেত মিলের পরিমাণটি অধ্যয়ন করুন এবং সর্বোত্তম প্যারামিটার সমন্বয় নির্ধারণ করুন।

  2. বিভিন্ন জাতের এবং বিভিন্ন সময়কালের মধ্যে এই কৌশলটি পরীক্ষা করে দেখুন যাতে এটির সর্বোত্তম প্রয়োগ খুঁজে পাওয়া যায়।

  3. ডাবল মুভিং এভারেজ কৌশলকে অন্যান্য সূচক যেমন কেডিজে সূচক ইত্যাদির সাথে সমৃদ্ধ করার জন্য বিবেচনা করা যেতে পারে।

  4. ঝুঁকি নিয়ন্ত্রণের জন্য ক্ষতি বন্ধ করার ব্যবস্থা যোগ করা, যেমন সর্বোচ্চ প্রত্যাহারের ক্ষতি বন্ধ করা।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 20/06/2019
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
//    This indicator plots the oscillator as a histogram where blue denotes 
//    periods suited for buying and red . for selling. If the current value 
//    of AO (Awesome Oscillator) is above previous, the period is considered 
//    suited for buying and the period is marked blue. If the AO value is not 
//    above previous, the period is considered suited for selling and the 
//    indicator marks it as red.
//  You can make changes in the property for set calculating strategy MA, EMA, WMA
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

BillWilliamsAC(nLengthSlow, nLengthFast,nLengthMA, nLengthEMA, nLengthWMA, bShowWMA, bShowMA, bShowEMA) =>
    pos = 0
    xSMA1_hl2 = sma(hl2, nLengthFast)
    xSMA2_hl2 = sma(hl2, nLengthSlow)
    xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
    xSMA_hl2 = sma(xSMA1_SMA2, nLengthFast)
    nRes =  xSMA1_SMA2 - xSMA_hl2
    xResWMA = wma(nRes, nLengthWMA)
    xResMA = sma(nRes, nLengthMA)
    xResEMA = ema(nRes, nLengthEMA)
    xSignalSeries = iff(bShowWMA, xResWMA,
                     iff(bShowMA, xResMA, 
                      iff(bShowEMA, xResEMA, na)))
    cClr = nRes > nRes[1] ? blue : red
    pos := iff(xSignalSeries[2] < 0 and xSignalSeries[1] > 0, 1,
	         iff(xSignalSeries[2] > 0 and xSignalSeries[1] < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Bill Williams. Awesome Oscillator (AC) with Signal Line", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
nLengthMA = input(15, minval=1, title="MA")
nLengthEMA = input(15, minval=1, title="EMA")
nLengthWMA = input(15, minval=1, title="WMA")
bShowWMA = input(type=bool, defval=true, title="Show and trading WMA")
bShowMA = input(type=bool, defval=false, title="Show and trading MA")
bShowEMA = input(type=bool, defval=false, title="Show and trading EMA")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBillWilliamsAC = BillWilliamsAC(nLengthSlow, nLengthFast,nLengthMA, nLengthEMA, nLengthWMA, bShowWMA, bShowMA, bShowEMA)
pos = iff(posReversal123 == 1 and posBillWilliamsAC == 1 , 1,
	   iff(posReversal123 == -1 and posBillWilliamsAC == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? red: possig == 1 ? green : blue )