একাধিক সূচক উপর ভিত্তি করে জন এর বিটকয়েন ইনট্রাডে ট্রেডিং কৌশল

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

img

সারসংক্ষেপ

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

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

  1. আরএসআই সূচকটি বাজারটি ওভারকুপেড বা ওভারসোল্ড কিনা তা নির্ধারণ করতে ব্যবহৃত হয়। এটি যখন আরএসআই 40 এর নীচে থাকে তখন এটি একটি ক্রয় সংকেত এবং যখন আরএসআই 70 এর উপরে থাকে তখন একটি বিক্রয় সংকেত তৈরি করে।

  2. এই সূচকটি বাজারে মূলধনের প্রবাহকে মূল্যায়ন করে। এটি যখন এমএফআই 23 এর নীচে থাকে তখন এটি একটি ক্রয় সংকেত এবং যখন এমএফআই 80 এর উপরে থাকে তখন এটি একটি বিক্রয় সংকেত তৈরি করে।

  3. স্টক আরএসআই সূচক নির্ধারণ করে যে বাজারটি অতিরিক্ত ক্রয় বা অতিরিক্ত বিক্রয় হয়েছে কিনা। এটি কে লাইন 34 এর নীচে এবং 80 এর উপরে বিক্রয় সংকেত তৈরি করে।

  4. এমএসিডি সূচক বাজার প্রবণতা এবং গতির মূল্যায়ন করে। এটি যখন দ্রুত লাইনটি ধীর লাইনের নীচে থাকে এবং হিস্টোগ্রামটি নেতিবাচক হয় তখন এটি একটি ক্রয় সংকেত এবং বিপরীত দৃশ্যের জন্য বিক্রয় সংকেত তৈরি করে।

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

  1. চারটি প্রধান সূচককে একত্রিত করে সিগন্যালের নির্ভুলতা বাড়ানো হয় এবং একটি সূচকের ব্যর্থতার কারণে ক্ষতি এড়ানো হয়।

  2. অর্ডারগুলি কেবল তখনই স্থাপন করা হয় যখন একাধিক সূচক একই সাথে সংকেত দেয়, যা মিথ্যা সংকেতগুলির সম্ভাবনাকে ব্যাপকভাবে হ্রাস করে।

  3. ইনট্রা ডে ট্রেডিং কৌশল গ্রহণ করা রাতারাতি ঝুঁকি এড়াতে এবং মূলধন খরচ কমাতে সাহায্য করে।

ঝুঁকি এবং সমাধান

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

  2. এখনও একটি সম্ভাবনা রয়েছে যে সূচকগুলি ভুল সংকেত দিতে পারে। মেশিন লার্নিং অ্যালগরিদমগুলি সূচক সংকেতগুলির নির্ভরযোগ্যতা বিচার করতে সহায়তা করতে প্রবর্তন করা যেতে পারে।

  3. কিছু অতিরিক্ত ক্রয় এবং অতিরিক্ত বিক্রয় ঝুঁকি রয়েছে। সূচক পরামিতিগুলি সেই অনুযায়ী সামঞ্জস্য করা যেতে পারে বা আরও সূচক লজিক যুক্ত করা যেতে পারে।

অপ্টিমাইজেশান নির্দেশাবলী

  1. বাজারের অস্থিরতা এবং পরিবর্তনের গতির উপর ভিত্তি করে রিয়েল টাইমে সূচক পরামিতিগুলি সামঞ্জস্য করুন।

  2. স্টপ লস লজিক যোগ করুন। একক ক্ষতি কার্যকরভাবে নিয়ন্ত্রণ করার জন্য যদি ক্ষতি একটি নির্দিষ্ট শতাংশ অতিক্রম করে তবে স্টপ লস বন্ধ করুন।

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

সিদ্ধান্ত

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


/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy('John Day Stop Loss', overlay=false, pyramiding=1, default_qty_type=strategy.cash, default_qty_value=10000, initial_capital=10000, currency='USD', precision=2)
strategy.risk.allow_entry_in(strategy.direction.long) 

from_day = input.int(defval=1, title='From Day', minval=1)
from_month = input.int(defval=1, title='From Month', minval=1)
from_year = input.int(defval=2021, title='From Year', minval=2020)
to_day = input.int(defval=1, title='To Day', minval=1)
to_month = input.int(defval=1, title='To Month', minval=1)
to_year = input.int(defval=2025, title='To Year', minval=2020)

time_cond = time > timestamp(from_year, from_month, from_day, 00, 00) and time < timestamp(to_year, to_month, to_day, 00, 00)
//time_cond = true

//Stop Loss
longProfitPerc = input.float(title="Stop Loss Profit (%)", defval=2.1) / 100
longExitPrice  = strategy.position_avg_price * (1 - longProfitPerc)

//RSI - yellow
up = ta.rma(math.max(ta.change(close), 0), 14)
down = ta.rma(-math.min(ta.change(close), 0), 14)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, "RSI", color=#00FFFF)
buy_rsi = true // rsi < 40
sell_rsi = true //rsi > 70

//MFI - cyan
mf = ta.mfi(hlc3, 14)
plot(mf, "MF", color=#FFFF00)
buy_mfi = mf < input.int(defval=23, title='Max MF', minval=1)
sell_mfi = mf > input.int(defval=80, title='Min MF', minval=1)

//Stoch RSI
OverBought_StochRSI = input(80)
OverSold_StochRSI = input(34)
smoothK = input.int(3, "K", minval=1)
smoothD = input.int(2, "D", minval=1)
lengthRSI = input.int(14, "RSI Length", minval=1)
lengthStoch = input.int(14, "Stochastic Length", minval=1)
srcRSI = input(close, title="RSI Source")
rsi1 = ta.rsi(srcRSI, lengthRSI)
kStochRSI = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = ta.sma(kStochRSI, smoothD)
co = ta.crossover(kStochRSI,d)
cu = ta.crossunder(kStochRSI,d)

buy_stochRSI = co and kStochRSI < OverSold_StochRSI
sell_stochRSI = cu and kStochRSI > OverBought_StochRSI

plot(kStochRSI, "K", color=#2962FF)
plot(d, "D", color=#FF6D00)
h0 = hline(OverBought_StochRSI, "Upper Band", color=#787B86)
h1 = hline(OverSold_StochRSI, "Lower Band", color=#787B86)
fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background")

//MACD
// Getting inputs
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
src = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing",  minval = 1, maxval = 50, defval = 9)
sma_source = input.string(title="Oscillator MA Type",  defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])
// Plot colors
//col_macd = input(#2962FF, "MACD Line  ", group="Color Settings", inline="MACD")
//col_signal = input(#FF6D00, "Signal Line  ", group="Color Settings", inline="Signal")
//col_grow_above = input(#26A69A, "Above   Grow", group="Histogram", inline="Above")
//col_fall_above = input(#B2DFDB, "Fall", group="Histogram", inline="Above")
//col_grow_below = input(#FFCDD2, "Below Grow", group="Histogram", inline="Below")
//col_fall_below = input(#FF5252, "Fall", group="Histogram", inline="Below")
// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal
buy_MACD = macd < signal and hist < 0 
sell_MACD = macd > signal and hist > 0 

//buy_MACD = true 
//sell_MACD = true

//plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below)))
//plot(macd, title="MACD", color=col_macd)
//plot(signal, title="Signal", color=col_signal)

sessionColor = color(na)
if time_cond

    if (not na(kStochRSI) and not na(d))
        cmt = str.tostring(close)
    	if (buy_stochRSI and buy_MACD and buy_mfi and buy_rsi)
    		strategy.entry("BUY", strategy.long, comment='BUY @ ' + cmt)
    		if longProfitPerc != 0
    		    strategy.exit(id="x", stop=longExitPrice, comment='EXIT @ ' + str.tostring(longExitPrice))
        	sessionColor := input.color(#0000FF, "buy") //red
    	if (sell_stochRSI and sell_MACD and sell_mfi and sell_rsi)
    		strategy.entry("SELL", strategy.short, comment='SELL @ ' + cmt)
    		sessionColor := input.color(#FF0000, "sell") //green
    	
bgcolor(sessionColor)

আরো