
এই কৌশলটি বিটিসি-র ৫০ দিনের চলমান গড় এবং ২০০ দিনের চলমান গড়ের গোল্ডেন ফর্ক ডাই ফর্ক সিগন্যালের উপর ভিত্তি করে তৈরি করা হয়েছে, অতিরিক্ত প্রযুক্তিগত নির্দেশকের বিচার সহ এটি কেনা এবং বিক্রি করার জন্য ব্যবহৃত হয়। এই কৌশলটি মূলত বিটিসি/ইউএসডিটি মুদ্রা জোড়ার জন্য প্রযোজ্য, যার স্পষ্ট প্রবণতা রয়েছে।
যখন 50 দিনের চলমান গড়ের উপরে 200 দিনের চলমান গড়কে ভেঙে একটি গোল্ডেন ফর্কের সৃষ্টি হয়, তখন বিটিসি একটি মাল্টি-হেড মার্কেটে প্রবেশ করে এবং একটি কেনার সংকেত দেয়। যখন 50 দিনের চলমান গড় নীচে 200 দিনের চলমান গড়কে ভেঙে একটি স্ট্রোকড ফর্কের সৃষ্টি করে, তখন বিটিসি একটি ফাঁকা বাজারে প্রবেশ করে এবং একটি বিক্রয় সংকেত দেয়।
এই কৌশলটি মৌলিক চলমান গড় গল্ফ ফর্ক এবং স্টপড ফর্ক সংকেত বিচার ছাড়াও, বিচারকে সহায়তা করার জন্য কিছু অতিরিক্ত প্রযুক্তিগত সূচক যোগ করেছে, যার মধ্যে রয়েছেঃ
ইএমএ সূচক: একটি দৈর্ঘ্য + অফসেটের ইএমএ সূচক গণনা করা হয়, যখন এটির উত্থানটি দেখায় যে এটি বর্তমানে মাল্টি-হেড মার্কেটে রয়েছে এবং এটি কিনতে পারে।
চলমান গড়ের সাথে EMA-র সংখ্যাসূচক সম্পর্ক তুলনা করুনঃ যদি EMA 50 দিনের চলমান গড়ের চেয়ে বেশি হয় তবে একটি ক্রয় সিদ্ধান্ত নেওয়া হয়।
চেক করুন যে দামটি পূর্ববর্তী K লাইনের সর্বনিম্ন থেকে 1% এরও বেশি কমে গেছে, যদি এটি পূরণ হয় তবে একটি বিক্রয় সংকেত উত্পন্ন হয়।
উপরের কয়েকটি সূচকের সমন্বয় ব্যবহার করে, কিছু ভুল সংকেতগুলি ফিল্টার করা যায় এবং কৌশলগত লেনদেনের সিদ্ধান্তগুলিকে আরও নির্ভরযোগ্য করে তোলে।
এই কৌশলটির বেশ কিছু সুবিধা রয়েছেঃ
মুভিং এভারেজকে প্রধান ট্রেডিং সিগন্যাল হিসেবে ব্যবহার করে, বাজারের শব্দকে ফিল্টার করে ট্রেন্ডের দিকনির্দেশনা চিহ্নিত করা যায়।
ইএমএ এবং অন্যান্য সহায়ক প্রযুক্তির সাথে সংযুক্ত করে, এটি ভুয়া সংকেতগুলিকে ফিল্টার করে এবং সংকেতের নির্ভরযোগ্যতা বাড়ায়।
সঠিক স্টপ লস কৌশল ব্যবহার করে, আপনি একক ক্ষতির উপর কার্যকর নিয়ন্ত্রণ রাখতে পারেন।
কোয়ান্টাম ট্রেডিং এর নতুনদের জন্য সহজ ট্রেডিং লজিক, সহজেই বোঝা যায় এমন বাস্তবায়ন।
অনেকগুলি কনফিগারযোগ্য প্যারামিটার রয়েছে, যা আপনার পছন্দ অনুসারে সামঞ্জস্য করা যেতে পারে।
এই কৌশলটির কিছু ঝুঁকি রয়েছে যা সম্পর্কে সতর্ক থাকা দরকারঃ
মুভিং এভারেজ নিজেই অনেক পিছিয়ে আছে এবং দামের দ্রুত বিপরীত হওয়ার সুযোগ মিস করতে পারে।
সহায়ক সূচকগুলি নিয়মের সংখ্যা বৃদ্ধি করে এবং ভুল সংকেত তৈরির সম্ভাবনা বাড়ায়।
ভুলভাবে স্টপ লস সেট করলে ক্ষতির পরিমাণ বাড়তে পারে।
প্যারামিটার সেটিং (যেমন চলমান গড় দৈর্ঘ্য ইত্যাদি) অনুপযুক্ত কৌশল প্রভাবিত করতে পারে।
সমাধানঃ
চলমান গড়ের সময়কাল যথাযথভাবে সংক্ষিপ্ত করুন এবং প্যারামিটার অপ্টিমাইজেশনের পরিধি বাড়ান।
সিগন্যালের গুণগত মান পরীক্ষা করে রিটার্ন ডেটা বাড়ানো।
যথাযথভাবে স্টপ লস প্রশস্ত করুন এবং একই সাথে একটি মুনাফা স্টপ সেট করুন
প্যারামিটার অপ্টিমাইজেশান যোগ করুন, সর্বোত্তম প্যারামিটার সমন্বয় খুঁজুন।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকেও উন্নত করা যেতে পারেঃ
মেশিন লার্নিং অ্যালগরিদম যুক্ত করুন এবং প্যারামিটারগুলির স্বয়ংক্রিয় অপ্টিমাইজেশন করুন।
আরও সহায়ক সূচক যুক্ত করুন, একাধিক উপ-কৌশল তৈরি করুন এবং ভোটের মাধ্যমে সিদ্ধান্ত নিন।
ব্রিকআউট কৌশল ব্যবহার করে, মূল্য বিপর্যয় চিহ্নিত করুন।
ডিপ লার্নিং ব্যবহার করে দামের প্রবণতা অনুমান করুন।
গতিশীল ট্র্যাকিং স্টপ লস বাস্তবায়নের জন্য স্টপ লস প্রক্রিয়াটি অপ্টিমাইজ করুন।
এই অপ্টিমাইজেশানগুলি সিদ্ধান্ত গ্রহণের নির্ভুলতা এবং কৌশলগুলির লাভজনকতা এবং স্থিতিশীলতা বৃদ্ধি করতে পারে।
এই কৌশলটি মূলত বিটিসি-র চলমান গড় ক্রস-ভিত্তিক ট্রেডিং সিদ্ধান্ত নেওয়ার জন্য, ইএমএ এবং অন্যান্য প্রযুক্তিগত সূচকগুলির সাহায্যে সংকেতগুলি ফিল্টার করার জন্য। এই কৌশলটির প্রবণতা-অনুসরণ ক্ষমতা রয়েছে, এটি উচ্চতর কনফিগারযোগ্য, এটি পরিমাণগত ব্যবসায়ের প্রবেশের কৌশল হিসাবে উপযুক্ত। তবে কিছুটা পিছনে থাকার ঝুঁকিও রয়েছে, সতর্কতা অবলম্বন করা দরকার। পরবর্তী অপ্টিমাইজেশনের দিকনির্দেশগুলি মেশিন লার্নিং, ইন্টিগ্রেশন কৌশল এবং স্টপ লস কৌশল ইত্যাদির মতো একাধিক স্তরে করা যেতে পারে।
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('JayJay BTC Signal', overlay=true, initial_capital=100, currency='USD', default_qty_value=100, default_qty_type=strategy.percent_of_equity, commission_value=0, calc_on_every_tick=true)
securityNoRepaint(sym, tf, src) => request.security(sym, tf, src[barstate.isrealtime ? 1 : 0])[barstate.isrealtime ? 0 : 1]
//200 50 Moving Average
ma50Len = input.int(50, minval=1, title='MA50-Length')
ma50Src = input(close, title='MA50-Source')
ma50Show = input(true, title='Show SMA50 on chart')
ma50Close = ta.sma(ma50Src, ma50Len)
ma50CloseTimeframe = input.timeframe("240", "Ma50 Timeframe", group = "EMA Options")
ma50Open = ta.sma(open, ma50Len)
ma200Len = input.int(200, minval=1, title='MA200-Length')
ma200Src = input(close, title='MA200-Source')
ma200Show = input(true, title='Show SMA200 on chart')
ma200CloseTimeframe = input.timeframe("D", "Ma200 Timeframe", group = "EMA Options")
ma200Close = ta.sma(ma200Src, ma200Len)
ma200Open = ta.sma(open, ma200Len)
//plot(ma200Close, color=color.new(#0b6ce5, 0), title='MA200')
//plot(ma50Close, color=color.new(#00d8ff, 0), title='MA50')
sma50 = securityNoRepaint(syminfo.tickerid, ma50CloseTimeframe, ma50Close)
plot(sma50 and ma50Show ? sma50 : na, color=color.new(#00d8ff, 0), title='SMA50')
sma200 = securityNoRepaint(syminfo.tickerid, ma200CloseTimeframe, ma200Close)
plot(sma200 and ma200Show ? sma200 : na, color=color.new(#00d8ff, 0), title='SMA200')
// Short/Long EMA
// Define the offset value
EMAOffsetValue = input.int(2, title='EMA Offset', minval=0)
emaplot = input(true, title='Show EMA on chart')
len = input.int(20, minval=1, title='ema Length') + EMAOffsetValue
emaCloseTimeframe = input.timeframe("240", "EMA 1 Timeframe", group = "EMA Options")
emaOpen = ta.ema(open, len)
emaClose = ta.ema(close, len)
ema = securityNoRepaint(syminfo.tickerid, emaCloseTimeframe, emaClose)
up = emaClose > ema[1]
down = emaClose < ema[1]
mycolor = up ? color.green : down ? color.red : color.blue
plot(ema and emaplot ? ema : na, title='Signal EMA', color=mycolor, linewidth=3)
//plot(emaClose and emaplot ? emaClose : na, title='Signal 20 EMA', color=color.yellow, linewidth=3)
ma50GreaterThanMa200 = sma50 > sma200
last3BarUp = ema > ema[1]
startLong = up and ema > sma50 and ma50GreaterThanMa200 and (100 - (sma50 / ema * 100) > 1.0)
startFrom = input(timestamp("20 Jan 2000 00:00"), "StartFrom")
yearFilter = true
alertLongPositionMessage = "{\"direction:\": \"long\", \"action\": \"{{strategy.order.action}}\", \"price\": \"{{strategy.order.price}}\", \"qty\": \"{{strategy.position_size}}\", \"symbol\": \"{{ticker}}\", \"date\": \"{{time}}\"}"
if true and startLong and yearFilter
strategy.entry('Long', strategy.long, comment = "Long", alert_message = alertLongPositionMessage)
longStopLossLevel = open * 0.05
strategy.exit('StopLoss', from_entry='Long',comment = "StopLoss!", loss=longStopLossLevel, profit=close * 0.3, alert_message = alertLongPositionMessage)
longPercentageChange = low / close[1] * 100 - 100
is1PercentLower = longPercentageChange < -0.1
closeLongPositionWhen = (down and is1PercentLower) or (emaClose < sma50)
if closeLongPositionWhen
strategy.close('Long', comment = "Fuck It!", alert_message = alertLongPositionMessage)
bgcolor(startLong ? color.green : na, transp=90)