
এই কৌশলটি দ্বিগুণ ALMA মুভিং এভারেজের গোল্ডেন ফর্ক ডাই ফর্ক সিগন্যালের উপর ভিত্তি করে, MACD সূচকের সাথে মিলিত একটি মাল্টি-ফোরক সিগন্যালের সাথে, স্বয়ংক্রিয়ভাবে মাল্টি-ফোরক করার জন্য। কৌশলটি 4 ঘন্টা বা তার বেশি সময়কালের জন্য প্রযোজ্য, পরীক্ষার ডেটা BNB/USDT, সময়কাল 2017 থেকে এখন পর্যন্ত, হ্যান্ডেল ফি 0.03% সেট করা হয়েছে।
কৌশলটি ALMA দ্রুত লাইন এবং ধীর লাইন ব্যবহার করে একটি দ্বৈত চলমান গড় তৈরি করে। দ্রুত লাইনের দৈর্ঘ্য 20 এবং ধীর লাইনের দৈর্ঘ্য 40। উভয়ই 0.9 এর বিচ্যুতি গ্রহণ করে, স্ট্যান্ডার্ড ডিফারেনসিয়াল 5। যখন দ্রুত লাইনটি ধীর লাইনটি অতিক্রম করে তখন একটি মাল্টিসিগন্যাল তৈরি হয় এবং যখন দ্রুত লাইনটি ধীর লাইনটি অতিক্রম করে তখন একটি ফাঁকা সংকেত তৈরি হয়।
একই সময়ে, কৌশলটি MACD সূচকের সাথে একত্রিত একটি রৈখিক মানচিত্রের সংকেত দেয়। শুধুমাত্র যখন MACD রৈখিক মানচিত্রটি ধনাত্মক (উত্থান) হয়, তখন মাল্টি-সিগন্যাল কার্যকর হয়; শুধুমাত্র যখন MACD রৈখিক মানচিত্রটি নেতিবাচক (গ্রেড) হয়, তখন খালি সংকেত কার্যকর হয়।
এই কৌশলটি একই সাথে স্টপ-অফ-লস শর্ত সেট করে। অতিরিক্ত স্টপ-অফ 2 বার, স্টপ-অফ 0.2 বার; খোলা স্টপ-অফ 0.05 বার, স্টপ-অফ 1 বার।
এই কৌশলটি ডাবল মুভিং এভারেজের প্রবণতা বিচার এবং এমএসিডি সূচকের শক্তি বিচারকে একত্রিত করে, যা মিথ্যা সংকেতগুলিকে কার্যকরভাবে ফিল্টার করতে পারে এবং প্রবেশের নির্ভুলতা বাড়িয়ে তুলতে পারে। স্টপ লস সেটিংটি যুক্তিসঙ্গত, লাভের জন্য সর্বাধিক লকিং, বড় ক্ষতি এড়াতে।
২০১৭ সাল থেকে গৃহীত রিটার্নিং ডেটা, বেশ কয়েকটি ষাঁড়-বীর্য রূপান্তরকে অন্তর্ভুক্ত করে, কৌশলটি ক্রস-চক্রের অবস্থার অধীনে ভালভাবে কাজ করে। এটি প্রমাণ করে যে কৌশলটি বাজারের লিনিয়ার এবং নন-লাইনার বৈশিষ্ট্যগুলির সাথে খাপ খায়।
এই কৌশলটি নিম্নলিখিত ঝুঁকিগুলি বহন করেঃ
সমাধানঃ
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকেও উন্নত করা যেতে পারেঃ
এই কৌশলটি সফলভাবে চলমান গড়ের প্রবণতা বিচার এবং MACD এর সহায়ক বিচারকে একত্রিত করে এবং যুক্তিসঙ্গত স্টপ লস সেট করে, যা বিভিন্ন পরিস্থিতিতে স্থিতিশীল লাভ অর্জন করতে পারে। প্যারামিটার সেটিংয়ের ক্রমাগত অপ্টিমাইজেশন এবং অতিরিক্ত ফিল্টার শর্তাদি যুক্ত করার মাধ্যমে কৌশলটির স্থিতিশীলতা এবং লাভজনকতা আরও বাড়ানো যেতে পারে।
/*backtest
start: 2023-11-04 00:00:00
end: 2023-12-04 00:00:00
period: 1h
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/
// © exlux99
//@version=4
strategy(title = "Full Crypto Swing Strategy ALMA Cross", overlay = true, pyramiding=1,initial_capital = 1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.03)
//time condition
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2010, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2031, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = time >= startDate and time <= finishDate
UseHAcandles = input(false, title="Use Heikin Ashi Candles in Algo Calculations")
haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low
//alma fast and slow
src = haClose
windowsize = input(title="Length Size Fast", type=input.integer, defval=20)
windowsize2 = input(title="Length Size Slow", type=input.integer, defval=40)
offset = input(title="Offset", type=input.float, defval=0.9, step=0.05)
sigma = input(title="Sigma", type=input.float, defval=5)
outfast=alma(src, windowsize, offset, sigma)
outslow=alma(src, windowsize2, offset, sigma)
//macd
fast_length = input(title="Fast Length", type=input.integer, defval=6)
slow_length = input(title="Slow Length", type=input.integer, defval=25)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
// Calculating
fast_ma = ema(src, fast_length)
slow_ma = ema(src, slow_length)
macd = fast_ma - slow_ma
signal = ema(macd, signal_length)
hist = macd - signal
long=crossover(outfast,outslow) and hist > hist[1] and time_cond
short=crossunder(outfast,outslow) and hist < hist[1] and time_cond
takeProfit_long=input(2.0, step=0.005)
stopLoss_long=input(0.2, step=0.005)
takeProfit_short=input(0.05, step=0.005)
stopLoss_short=input(1.0, step=0.005)
strategy.entry("long",1,when=long)
strategy.entry("short",0,when=short)
strategy.exit("short_tp/sl", "long", profit=close * takeProfit_long / syminfo.mintick, loss=close * stopLoss_long / syminfo.mintick, comment='LONG EXIT', alert_message = 'closeshort')
strategy.exit("short_tp/sl", "short", profit=close * takeProfit_short / syminfo.mintick, loss=close * stopLoss_short / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort')