একাধিক সূচকের উপর ভিত্তি করে পরিমাণগত ট্রেডিং কৌশল

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

img

সারসংক্ষেপ

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

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

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

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

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

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

মাল্টি ইন্ডিকেটর কৌশল নিম্নলিখিত সুবিধাগুলি আছেঃ

  1. সূচকগুলির সংমিশ্রণ নির্ভুলতা এবং দৃust়তা উন্নত করে। একক সূচকটি মিথ্যা সংকেতগুলির জন্য প্রবণ, যখন একাধিক সূচক সংকেতগুলি যাচাই করে এবং খারাপ ব্যবসায়গুলি এড়ায়।

  2. ট্রেন্ড ট্রেডিং উভয়ই ট্রেন্ড এবং রেঞ্জ ট্রেডিং বিবেচনা করে, যা বিভিন্ন বাজারের অবস্থার সাথে খাপ খাইয়ে নিতে পারে। ট্রেন্ড ট্রেডিং বড় পদক্ষেপকে লক্ষ্য করে। রেঞ্জ ট্রেডিং ছোট মুনাফার লক্ষ্য করে।

  3. লং এবং শর্টস দিকনির্দেশক ঝুঁকি হ্রাস করে এবং চরম পদক্ষেপ এড়ায়।

  4. স্টপ লস এবং লভ্যাংশ নিন লাভের মধ্যে লক করুন এবং যখন ট্রেড ভুল হয় তখন ক্ষতি সীমাবদ্ধ করুন।

  5. প্যারামিটার অপ্টিমাইজেশান ক্রমাগত বাজারের পরিবর্তনের সাথে মানিয়ে নিয়ে কৌশল উন্নত করে।

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

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

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

  2. মৌলিক বিষয়গুলি উপেক্ষা করার সময় প্রযুক্তিগত দিকগুলির উপর অত্যধিক নির্ভরতা ভুল সংকেত সৃষ্টি করতে পারে। সূচক মিথ্যা সংকেতগুলি সতর্কতার সাথে আচরণ করা উচিত।

  3. বাজারগুলি ইতিমধ্যেই সরে গেছে যখন সংকেতগুলি প্রকাশিত হয়, যা ঝুঁকিপূর্ণ ঝুঁকি তৈরি করে।

  4. ডুয়াল ডাইরেকশন ট্রেডিং ফ্রিকোয়েন্সি বৃদ্ধি করে, খরচ এবং চাপ বৃদ্ধি করে। পজিশনের আকার নিয়ন্ত্রণের প্রয়োজন।

  5. কার্ভ ফিটিংয়ের ঝুঁকি রয়েছে। বিভিন্ন বাজারে স্থিতিশীলতা পরীক্ষা করা উচিত।

স্টপ লস, পজিশনের পরিমাপ, যুক্তিসঙ্গত লিভারেজ ইত্যাদির মাধ্যমে ঝুঁকিগুলি পরিচালনা করা যায়।

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

কৌশলটি অপ্টিমাইজ করার কিছু উপায়ঃ

  1. ধাপে ধাপে, এলোমেলো বা জেনেটিক অ্যালগরিদম ব্যবহার করে সর্বোত্তম মান খুঁজে পেতে বিভিন্ন প্যারামিটার সেট পরীক্ষা করুন।

  2. আরও অনেক ইন্ডিকেটর যোগ করুন যেমন কেডিজে, উইলিয়ামস একটি শক্তিশালী ইন্ডিকেটর সেট তৈরি করতে।

  3. ঝুঁকিকে গতিশীলভাবে পরিচালনা করার জন্য অবস্থান আকারের মডেলগুলি অনুকূল করুন।

  4. দামের প্রবণতা এবং গতিবিধি পূর্বাভাস দেওয়ার জন্য মেশিন লার্নিং মডেল অন্তর্ভুক্ত করুন।

  5. বিভিন্ন পণ্য, সময়সীমা এবং বাজারের উপর পরীক্ষা করে অভিযোজনযোগ্যতা উন্নত করা।

  6. প্রবণতাকে প্রাথমিকভাবে ধরা এবং বিপরীতমুখী হওয়ার আগে প্রবণতা থেকে বেরিয়ে আসার জন্য প্রবেশ এবং প্রস্থান সময়কে পরিমার্জন করুন।

  7. মুনাফা নেওয়ার কাজে লাগান, মুনাফা লক করতে এবং ক্ষতি সীমিত করার জন্য ট্রেইলিং স্টপ।

  8. প্রযুক্তিগত সংকেত ফিল্টার করার জন্য মৌলিক কারণ এবং বাজার কাঠামো বিশ্লেষণ যুক্ত করুন।

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

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


/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
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/
// © The_Bigger_Bull
//@version=5
strategy("Best TradingView Strategy", overlay=true, margin_long=0, margin_short=0)
//Bollinger Bands
source1 = close
length1 = input.int(15, minval=1)
mult1 = input.float(2.0, minval=0.001, maxval=50)
basis1 = ta.sma(source1, length1)
dev1 = mult1 * ta.stdev(source1, length1)
upper1 = basis1 + dev1
lower1 = basis1 - dev1
//buyEntry = ta.crossover(source1, lower1)
//sellEntry = ta.crossunder(source1, upper1)

//RSI
ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "Bollinger Bands" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"

//plot(rsi, "RSI", color=#7E57C2)
//plot(rsiMA, "RSI-based MA", color=color.yellow)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
bbUpperBand = plot(isBB ? rsiMA + ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Upper Bollinger Band", color=color.green)
bbLowerBand = plot(isBB ? rsiMA - ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Lower Bollinger Band", color=color.green)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill")

//ADX

adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up1 = ta.change(high)
	down1 = -ta.change(low)
	plusDM = na(up1) ? na : (up1 > down1 and up1 > 0 ? up1 : 0)
	minusDM = na(down1) ? na : (down1 > up1 and down1 > 0 ? down1 : 0)
	truerange = ta.rma(ta.tr, len)
	plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
	minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)




out = ta.sma(close, 14)

sma1=ta.sma(close,55)

ema200=ta.ema(close,200)



longCondition = (out>sma1) and ta.crossover(source1, lower1)

if (longCondition )
    strategy.entry("long", strategy.long)
    
shortCondition = (out<sma1) and ta.crossunder(source1, lower1)

if (shortCondition )
    strategy.entry("short", strategy.short)
    
    
stopl=strategy.position_avg_price-50
tptgt=strategy.position_avg_price+100
stopshort=strategy.position_avg_price+50
tptgtshort=strategy.position_avg_price-100

strategy.exit("longclose","long",trail_offset=5,trail_points=45,when=ta.crossover(sma1,out))
strategy.exit("shortclose","short",trail_offset=5,trail_points=45,when=ta.crossover(out,sma1))

    
//if strategy.position_avg_price<0
    
    
plot(sma1 , color=color.blue)
plot(out, color=color.green)
//plot(ema200,color=color.red)


    
    


আরো