
এই কৌশলটি মূল্যের ব্রেকআউট এবং গড় রেখার রিটার্নের সমন্বয় ভিত্তিক, একাধিক সূচক ব্যবহার করে নিশ্চিতকরণ এবং ফিল্টারিংয়ের জন্য, প্রবণতা বিচার এবং ট্র্যাকিংয়ের জন্য। এই কৌশলটি সংক্ষিপ্ত লাইন এবং মধ্য লাইন ব্যবসায়ের জন্য উপযুক্ত, কঠোর প্রবেশ এবং প্রস্থান ব্যবস্থার মাধ্যমে ক্ষুদ্র লাভকে লক করে।
এইচএমএ গড় রেখা ব্যবহার করে মূল্যের প্রবণতার দিক নির্ণয় করুন। দাম গড়ের চেয়ে বেশি হলে তা মুদ্রাস্ফীতি, দাম গড়ের চেয়ে কম হলে তা মুদ্রাস্ফীতি।
SSL চ্যানেল একটি নিশ্চিতকরণ সূচক, যা চ্যানেলের দিকনির্দেশনা এবং মূল্যের সাথে সম্পর্কিত প্রবণতা নিশ্চিত করে।
টিডিএফআই একটি পরিমাপযোগ্য শক্তির পরিমাপ হিসাবে বিচারক। কেবলমাত্র একটি নির্দিষ্ট স্তরে পৌঁছানোর জন্য ভর্তি হতে পারে।
RVI সূচকটি একটি প্রস্থান সূচক হিসাবে কাজ করে, যখন RVI লাইনের আকৃতি পরিবর্তিত হয়, তখন ট্রেন্ডটি শেষ হয়ে যায় এবং পজিশন থেকে প্রস্থান করে।
এটিআর সূচকটি স্টপ লস এবং স্টপ বক্স গণনা করে।
প্রবেশের শর্তঃ মূল্য বেঞ্চলাইন অতিক্রম করে, এসএসএল পাথের দিকটি মূল্যের সাথে সামঞ্জস্যপূর্ণ, টিডিএফআই থ্রেশহোল্ড পৌঁছেছে।
প্রস্থান শর্তঃ RVI সূচক লাইন আকৃতি পরিবর্তন, বা মূল্য বেসলাইন এবং SSL চ্যানেল ফিরে ভাঙ্গা।
একাধিক সূচক সমন্বয় ব্যবহার করে, আপনি কার্যকরভাবে জাল ব্রেকআপগুলি ফিল্টার করতে পারেন।
কঠোর প্রবেশের শর্ত এবং স্টপ লস এক্সট, একক স্টপ লস নিয়ন্ত্রণ করা যায়।
দামের প্রবণতা থেকে উপকৃত হয়ে অতিরিক্ত মুনাফা অর্জন করা।
সূচক প্যারামিটার অপ্টিমাইজ করার জন্য অনেক জায়গা রয়েছে, যা বিভিন্ন পণ্য এবং সময়কালের জন্য সামঞ্জস্য করা যেতে পারে।
এই প্রবণতা পাল্টাবে কিনা তা নির্ধারণ করা অসম্ভব, যার ফলে অতিরিক্ত ওজন বাড়তে/হ্রাস পেতে পারে।
এই ব্যবসায়ের জন্য, একটি সংক্ষিপ্ত চক্র এবং অত্যধিক লেনদেনের ঝুঁকি রয়েছে।
স্টপ লস সেটিংয়ের উপর একটি বিষয়গত প্রভাব রয়েছে, যা খুব হালকা বা খুব শক্ত হতে পারে।
ভুল প্যারামিটার সেট করলে ট্রেডিং ঘন বা কম হতে পারে।
প্রবণতা নির্ধারণের জন্য পরিমাপক বাড়ানো এবং প্রবণতা নির্ধারণের সঠিকতা নিশ্চিত করা।
ওভারওয়েট উচ্চ / নিম্ন অনুসরণ করার সম্ভাবনা হ্রাস করার জন্য একটি বিপরীত সিগন্যাল সূচক যোগ করুন।
এটিআর ট্রেইলিং স্টপ হিসাবে এটিআর ডায়নামিকটি সামঞ্জস্য করার বিষয়টি বিবেচনা করুন, যাতে স্টপ লস আরও গতিশীল হয়।
পরামিতি অপ্টিমাইজেশান দিক খুঁজতে বিভিন্ন সমান্তরাল সিস্টেম পরীক্ষা করুন।
সূচক প্যারামিটার অপ্টিমাইজ করুন, নির্দিষ্ট লেনদেনের জাতের জন্য প্যারামিটারগুলি সামঞ্জস্য করুন।
এই কৌশলটি একাধিক সূচক নিশ্চিত করে, ট্রেডিং সিগন্যালের নির্ভুলতা অর্জন করে। কঠোর স্টপ লস প্রক্রিয়াটি একক ক্ষতি নিয়ন্ত্রণ করে। এই কৌশলটি প্রযুক্তিগত বিশ্লেষণ অপারেশনগুলির সাথে পরিচিত লোকদের জন্য উপযুক্ত, প্যারামিটারগুলি সামঞ্জস্য করে বিভিন্ন বাজার চক্রের সাথে খাপ খাইয়ে নিতে পারে। সামগ্রিকভাবে, এই কৌশলটির ইতিবাচক কার্যকারিতা এবং উপার্জন রয়েছে, তবে ট্রেন্ডের ভুল বিচার এবং অত্যধিক ব্যবসায়ের ঝুঁকি রোধে সতর্কতা অবলম্বন করা দরকার।
/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Designed per No Nonsense Forex VP rules
//Made to be as modular as possible, so we can swap the indicators in and out.
//Originated from causecelebre
//Tried to put in as much VP rules as possible
///////////////////////////////////////////////////
//Rules Implemented:
///////////////////////////////////////////////////
// - SL 1.5 x ATR
// - TP 1 x ATR
//
// - Entry conditions
//// - Entry within 1 candles of baseline + 1 x confirmation + volume
//// - Entry only if baseline is < 1 x ATR
// - Exit conditions
//// - Exit on exit indicator or when baseline or confirmation flip
///////////////////////////////////////////////////
//Trades entries
///////////////////////////////////////////////////
// - First entry L1 or S1 with standard SL and TP
// - Second entry L2 or S2 with standard SL and exit upon the exit conditions
///////////////////////////////////////////////////
//Included Indicators and settings
///////////////////////////////////////////////////
// - Baseline = HMA 20
// - Confirmtion = SSL 10
// - Volume = TDFI 4
// - Exit = RVI 4
///////////////////////////////////////////////////
//Credits
// Strategy causecelebre https://www.tradingview.com/u/causecelebre/
// TDFI causecelebre https://www.tradingview.com/u/causecelebre/
// SSL Channel ErwinBeckers https://www.tradingview.com/u/ErwinBeckers/
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
strategy(title="NNFX Strategy | jh", overlay = true )
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// **** Set the main stuff ****
///////////////////////////////////////////////////
//Price
price = close
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ATR stuff
///////////////////////////////////////////////////
atrLength = input(14, "ATR Length")
slMultiplier = input(1.5, "SL")
tpMultiplier = input(1, "TP")
atr = atr(atrLength)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// **** Baseline ****
///////////////////////////////////////////////////
///////////////////////////////////////////////////
//HMA 20
///////////////////////////////////////////////////
hmaslowlength = input(20, minval=1)
src = input(close, title="Source")
slowhullma = wma(2*wma(src, hmaslowlength/2)-wma(src, hmaslowlength), round(sqrt(hmaslowlength)))
plot(slowhullma, title = "baseline", color = yellow, linewidth=2, transp=0)
///////////////////////////////////////////////////
// Base Signals
///////////////////////////////////////////////////
///////////////////////////////////////////////////
baseline = slowhullma
//Signals based on crossover
//baseShort = crossover(baseLine, price)
//baseLong = crossover(price, baseLine)
//Signals based on signal position
b_Short = baseline > price ? 1 : 0
l_Long = baseline < price ? 1 : 0
baseShort = b_Short
baseLong = l_Long
///////////////////////////////////////////////////
//ATR Check
///////////////////////////////////////////////////
distBasefromPrice = abs(baseline - price)
atrCheck = distBasefromPrice <= atr ? 1 : 0
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// **** Confirmation ****
///////////////////////////////////////////////////
///////////////////////////////////////////////////
//SSL Channel
///////////////////////////////////////////////////
sslLen=input(title="SSL Period", defval=10)
smaHigh=sma(high, sslLen)
smaLow=sma(low, sslLen)
Hlv = na
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh: smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh
///////////////////////////////////////////////////
//Confirm Signals
///////////////////////////////////////////////////
c_Up = sslUp
c_Down = sslDown
//Signals based on crossover
c_Long = crossover(c_Up, c_Down)
c_Short = crossover(c_Down, c_Up)
confirmLong = c_Long
confirmShort = c_Short
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// **** Volume Indicator Start ****
///////////////////////////////////////////////////
///////////////////////////////////////////////////
//TDFI
///////////////////////////////////////////////////
lookback = input(4, title = "TDFI Lookback")
filterHigh = input(0.05, title = "Filter High")
filterLow = input(-0.05, title = "Filter Low")
mma = ema(price * 1000, lookback)
smma = ema(mma, lookback)
impetmma = mma - mma[1]
impetsmma= smma - smma[1]
divma = abs(mma - smma)
averimpet = (impetmma + impetsmma) / 2
number = averimpet
pow = 3
result = na
for i = 1 to pow - 1
if i == 1
result := number
result := result * number
tdf = divma * result
ntdf = tdf / highest(abs(tdf), lookback * 3)
///////////////////////////////////////////////////
//Volume Signals
///////////////////////////////////////////////////
v_Long = ntdf > filterHigh ? 1 : 0
v_Short = filterLow > ntdf ? 1 : 0
volumeLong = v_Long
volumeShort = v_Short
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// **** Exit Indicator ****
///////////////////////////////////////////////////
///////////////////////////////////////////////////
//RVI 4
///////////////////////////////////////////////////
rgvlen = input(4, title="RVI Length", minval=1)
rvi = sum(swma(close-open), rgvlen)/sum(swma(high-low),rgvlen)
sig = swma(rvi)
///////////////////////////////////////////////////
//Exit Signals
///////////////////////////////////////////////////
e_Short = crossover(rvi, sig)
e_Long = crossover(sig, rvi)
exitOutofShort = e_Short
exitOutofLong = e_Long
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// **************************** Logic to handle NNFX rules ****************************
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Checking for base and confirmation indication with 1 candle difference
baseandConfirmLong = ((baseLong[0] and confirmLong[0]) or (baseLong[1] and confirmLong[0]) or (baseLong[1] and confirmLong[1]) or (baseLong[0] and confirmLong[1])) ? 1 : 0
baseandConfirmShort = ((baseShort[0] and confirmShort[0]) or (baseShort[1] and confirmShort[0]) or (baseShort[1] and confirmShort[1]) or (baseShort[0] and confirmShort[1])) ? 1 : 0
//Combining with volume with 1 candle difference
enterLong = ((baseandConfirmLong[0] and volumeLong[0]) or (baseandConfirmLong[1] and volumeLong[0]) or (baseandConfirmLong[1] and volumeLong[1]) or (baseandConfirmLong[0] and volumeLong[1])) ? 1 : 0
enterShort = ((baseandConfirmShort[0] and volumeShort[0]) or (baseandConfirmShort[1] and volumeShort[0]) or (baseandConfirmShort[1] and volumeShort[1]) or (baseandConfirmShort[0] and volumeShort[1])) ? 1 : 0
//Exit on base or confirmation flip over
baseandConfirmFliptoShort = ((baseShort[0] or confirmShort[0]) or (baseShort[1] or confirmShort[0]) or (baseShort[1] or confirmShort[1]) or (baseShort[0] or confirmShort[1])) ? 1 : 0
baseandConfirmFliptoLong = ((baseLong[0] or confirmLong[0]) or (baseLong[1] or confirmLong[0]) or (baseLong[1] or confirmLong[1]) or (baseLong[0] or confirmLong[1])) ? 1 : 0
//Exit on base and confirmation flip or exit indicator
exitLong = exitOutofLong or baseandConfirmFliptoShort ? 1 : 0
exitShort = exitOutofShort or baseandConfirmFliptoLong ? 1 : 0
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Entries and Exits
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (year>2009)
//Long entries with standard 1.5 ATR for SL, 1 ATR for TP
long_sl = price - atr * slMultiplier
long_tp = price + atr * tpMultiplier
strategy.entry("L1", strategy.long, when = enterLong and atrCheck)
strategy.exit("L1 SL Exit", "L1", stop = long_sl, limit = long_tp)
strategy.close("L1", when = exitLong)
//Long entries with no TP
strategy.entry("L2", strategy.long, when = enterLong and atrCheck)
strategy.exit("L2 SL Exit", "L2", stop = long_sl)
strategy.close("L2", when = exitLong)
//Short entries with standard 1.5 ATR for SL, 1 ATR for TP
short_sl = price + atr * slMultiplier
short_tp = price - atr * tpMultiplier
strategy.entry("S1", strategy.short, when = enterShort and atrCheck)
strategy.exit("S1 SL Exit", "Short1", stop = short_sl, limit = short_tp)
strategy.close("S1", when = exitShort)
//Short entries with no TP
strategy.entry("S2", strategy.short, when = enterShort and atrCheck)
strategy.exit("S2 Exit", stop = short_sl)
strategy.close("S2", when = exitShort)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//End
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////