প্রবণতা অনুসরণ এবং ADX সূচকের উপর ভিত্তি করে স্বল্পমেয়াদী ট্রেডিং কৌশল


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

প্রবণতা অনুসরণ এবং ADX সূচকের উপর ভিত্তি করে স্বল্পমেয়াদী ট্রেডিং কৌশল

ওভারভিউ

এই কৌশলটি সুপার ট্রেন্ড সূচক (Super Trend) এবং মূল পয়েন্ট (Pivot Points) এবং গড় প্রকৃত তরঙ্গের আকার (Average True Range, ATR) এবং গড় দিকনির্দেশক (Average Directional Movement Index, ADX) সূচক দ্বারা গঠিত গতিশীল স্টপ লিনের সমন্বয়ে ট্রেন্ডের বিচার এবং ট্র্যাকিংয়ের জন্য। এই কৌশলটি সংক্ষিপ্ত লাইনের ব্যবসায়ের জন্য উপযুক্ত, মধ্যবর্তী সংকলনের পরে প্রবণতার ধারাবাহিক অংশটি ক্যাপচার করতে পারে, প্রত্যাহার নিয়ন্ত্রণও ভাল কাজ করে।

কৌশল নীতি

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

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

স্টপ লিন্ডটি সর্বশেষ মূল্য এবং এটিআর মানের উপর ভিত্তি করে গতিশীলভাবে সামঞ্জস্যপূর্ণ, যা ট্রেন্ডকে খুব ভালভাবে অনুসরণ করে।

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

এই কৌশলটির সুবিধাগুলো হলঃ

  1. সুপারট্রেন্ডিং সূচক ব্যবহার করে ট্রেন্ডের দিকনির্দেশনা অনুসরণ করুন এবং বাজারের অস্থিরতার কারণে মুনাফা আটকে না রাখুন।

  2. ADX সূচকের সাহায্যে ট্রেন্ডের শক্তি নির্ণয় করা যায়, যাতে ট্রেডিংয়ের সময় ভুল ট্রেডিং করা না যায়।

  3. স্টপ লিনের গতিশীল সমন্বয়, সর্বাধিক মুনাফা লক করা।

  4. আরএসআই-এর সাথে মিলিতভাবে, এটি ক্রয়-বিক্রয় এড়াতে সাহায্য করে।

  5. সামগ্রিকভাবে, কৌশলগত প্যারামিটারগুলি যুক্তিসঙ্গতভাবে সেট করা হয়েছে, ডিফ্রেম নির্বাচনের ক্ষেত্রে ধারাবাহিকতা বিবেচনা করা হয়েছে, এবং স্টপ লস সেটিংটিও ভাল।

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

এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ

  1. সুপার ট্রেন্ড এবং এমএ সূচকগুলি সংঘর্ষের সংকেত দিতে পারে।

  2. এডিএক্স সূচকটি 14 টি চক্রের জন্য সেট করা হয়েছে, যা হঠাৎ ঘটনার জন্য সংবেদনশীল নয়।

  3. RSI প্যারামিটারটি ডিফল্টরূপে সেট করা হয়েছে, যার ফলে এটি সম্পূর্ণরূপে এড়ানো সম্ভব নয়।

  4. এই ধরনের ঘটনাগুলির প্রভাব বিবেচনা করা হয় না, যেমন বড় লাভের ফাঁক / লাভজনক সংবাদ।

সমাধানঃ

  1. সুপার ট্রেন্ডিং সূচকের সাথে মিলিয়ে এমএ চক্রটি সামঞ্জস্য করুন।

  2. ADX চক্র সংক্ষিপ্ত করার চেষ্টা করুন এবং জরুরী ঘটনার জন্য সংবেদনশীলতা বাড়ান।

  3. RSI প্যারামিটারগুলিকে অপ্টিমাইজ করুন এবং সর্বোত্তম মান খুঁজুন।

  4. সংবাদ ফিল্টারিং মডিউলে যোগদান করুন এবং গুরুত্বপূর্ণ সংবাদ প্রকাশনা এড়িয়ে চলুন।

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

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

  1. মেশিন লার্নিং মডেলের মাধ্যমে ট্রেডিং সিদ্ধান্তকে আরও স্মার্ট করে তোলার জন্য ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং ট্রেডিং

  2. প্রবণতা নির্ধারণের জন্য এডিএক্স-এর পরিবর্তে আবেগের মতো সূচক ব্যবহার করুন।

  3. এই মডিউলটি আরও গতিশীল এবং সুনির্দিষ্টভাবে ক্ষতি বন্ধ করার জন্য একটি স্বনির্ধারিত মডিউল যুক্ত করেছে।

  4. ডিপ লার্নিং প্রযুক্তির সাহায্যে আরও বেশি বৈশিষ্ট্য বের করে সামগ্রিক কৌশলকে উন্নত করা।

  5. পয়েন্টার ব্যবহার করে পয়েন্টার তৈরি করুন, পয়েন্টার এক্সটেনশানযোগ্যতা বাড়ান, পয়েন্টার ব্যবহার করে পয়েন্টার তৈরি করুন।

সারসংক্ষেপ

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

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

//@version=5
strategy("Bendre ADX STrend", overlay = true)

///////////////////////////
// SuperTrend + Pivot Point
//////////////////////////

src =  input(close, title="EMA Source")
PPprd = input(defval = 2, title="Pivot Point Period")
AtrFactor=input(defval = 2, title = "ATR Factor")
AtrPd=input(defval = 21, title = "ATR Period")

StartDate = input(timestamp("1 Dec 2023"), title="Start Date")
EndDate = input(timestamp("12 Jan 2024"), title="End Date")
window()  => true

var float ph = na
var float pl = na
ph := ta.pivothigh(PPprd, PPprd)
pl :=ta.pivotlow(PPprd, PPprd)

float center = na
center := center[1]
// float lastpp = ph ? ph : pl ? pl : 0.0
float lastpp = na(ph) ? na(pl) ? na : pl : ph

if lastpp > 0
    if na(center)
        center := lastpp
    else
        center := (center * 2 + lastpp) / 3

Up = center - (AtrFactor * ta.atr(AtrPd))
Dn = center + (AtrFactor * ta.atr(AtrPd))

var float TUp = na
var float TDown = na
Trend = 0
TUp := close[1] > TUp[1] ? math.max(Up, TUp[1]) : Up
TDown := close[1] < TDown[1] ? math.min(Dn, TDown[1]) : Dn
Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1)
Trailingsl = Trend == 1 ? TUp : TDown

// Lines
linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na
plot(Trailingsl, color = linecolor ,  linewidth = 2, title = "PP SuperTrend")

bsignalSSPP = close > Trailingsl
ssignalSSPP = close < Trailingsl


///////
// ADX
//////

lenADX = 14
th = 14
TrueRange = math.max(math.max(high-low, math.abs(high-nz(close[1]))), math.abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? math.max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? math.max(nz(low[1])-low, 0): 0
SmoothedTrueRange = 0.0
SmoothedTrueRange := nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/lenADX) + TrueRange
SmoothedDirectionalMovementPlus = 0.0
SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/lenADX) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = 0.0
SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/lenADX) + DirectionalMovementMinus
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = math.abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = ta.sma(DX, lenADX)


//////
// MA
/////

lenMA = 21
srcMA = input(close, title="Source")
// offsetMA = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
offsetMA = input(0, title="Offset")
outMA = ta.sma(srcMA, lenMA)

//
// RSI
//
length = input( 14 )
overSold = input( 30 )
overBought = input( 65 )
price = close
vrsi = ta.rsi(price, length)

//
// DMI - Direction Movement Index
// 
[diplus1, diminus1, adx] = ta.dmi(14, 14)

// Buy - Sell Entries
buy = bsignalSSPP and outMA < close and ADX > th
sell = ssignalSSPP 


if (buy and vrsi > overBought and adx > 19)
    // .order // Tuned version
    strategy.entry("Buy", strategy.long, when = window())
    // strategy.close("Sell", "close Sell")

if (sell) and (strategy.position_size > 0)
    // strategy.entry("Sell", strategy.short)
    strategy.close("Buy", "Close Buy")

if(sell and vrsi < overSold and adx > 25)
    strategy.entry("Sell", strategy.short, when = window())

if ( ta.crossover( diminus1, diplus1) or ((buy) and (strategy.position_size > 0)) )
    strategy.close("Sell", "close Sell")

// if(sell) and (diminus1 > diplus1) and adx > 23 and adx > adx[1] and (vrsi < overSold)
//     strategy.entry("Sell", strategy.short, when = window())

// if (strategy.position_size > 0 and ta.crossunder(diminus1, adx)) or (strategy.position_size > 0  and (buy))
//     strategy.close("Sell", "close Sell")