
এই কৌশলটি K-রেখার সূচকের সূচক দ্বারা বর্তমান প্রবণতার দিক নির্ধারণ করে এবং এটির সাথে মিলিত হয়। এটি ট্রেন্ড সনাক্তকরণ করে, বিপরীত পজিশন খোলার জন্য, স্টপ লস স্টপ সেট করে এবং স্বল্পমেয়াদী প্রবণতা ক্যাপচার করে।
এই কৌশলটি মূলত কে লাইনের সূর্যের ছায়া দৈর্ঘ্যের অনুপাত গণনা করে বর্তমান প্রবণতার দিক নির্ধারণ করে, যখন সূর্যের লাইনের দৈর্ঘ্য খুব বেশি হয় তখন এটি নীচের দিকে প্রবণতা হিসাবে বিচার করা হয়, যখন সূর্যের লাইনের দৈর্ঘ্য খুব বেশি হয় তখন এটি ঊর্ধ্বমুখী প্রবণতা হিসাবে বিচার করা হয়।
এই কৌশলটির সুনির্দিষ্ট যুক্তি হল:
এই কৌশলটির মূল ট্রেডিং লজিক হল ট্রেন্ড ব্রেকপয়েন্ট চিহ্নিত করে রিভার্স পোজিশন খোলার এবং স্টপ লস স্টপ সেট করে লাভের অপ্টিমাইজেশান করা।
যুক্তিসঙ্গত ক্ষতি, অপ্টিমাইজেশান প্যারামিটার এবং সময়মত ক্ষতি বন্ধ করে ঝুঁকি নিয়ন্ত্রণ করা যায়।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
বহুপাক্ষিক পরীক্ষার মাধ্যমে এবং অপ্টিমাইজেশনের মাধ্যমে কৌশলটির কার্যকারিতা সর্বাধিক করা যায়।
সামগ্রিকভাবে, এই কৌশলটি প্রবণতা সনাক্তকরণ এবং ঝুঁকি নিয়ন্ত্রণের মাধ্যমে স্বল্পমেয়াদী মূল্যের ওঠানামা থেকে লাভবান হওয়ার জন্য একটি কার্যকর স্থিতিশীল সংক্ষিপ্ত লাইন বিরতি কৌশল। অপ্টিমাইজেশনের পরে এটি পরিমাণগত ব্যবসায়ের একটি গুরুত্বপূর্ণ অংশ হতে পারে।
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
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/
// © ondrej17
//@version=4
strategy("longWickstrategy", overlay=true )
// Inputs
st_yr_inp = input(defval=2020, title='Backtest Start Year')
st_mn_inp = input(defval=01, title='Backtest Start Month')
st_dy_inp = input(defval=01, title='Backtest Start Day')
en_yr_inp = input(defval=2025, title='Backtest End Year')
en_mn_inp = input(defval=01, title='Backtest End Month')
en_dy_inp = input(defval=01, title='Backtest End Day')
sltp_inp = input(defval=0.8, title='N - % offset for N*SL and (2N)*TP')/100
// Dates
start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp,00,00)
end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp,00,00)
canTrade = time >= start and time <= end
// Indicators Setup
// Strategy Calcuations
lowerWick = (open > close) ? close-low : open - low
upperWick = (open > close) ? high-open : high-close
wickLength = max(lowerWick,upperWick)
candleLength = high-low
wickToCandleRatio = wickLength / candleLength
entryFilterCandleLength = candleLength > 0.75*atr(48)
// Entries and Exits
longCondition = entryFilterCandleLength and wickToCandleRatio > 0.5 and lowerWick > upperWick and canTrade and strategy.position_size == 0
shortCondition = entryFilterCandleLength and wickToCandleRatio > 0.5 and lowerWick < upperWick and canTrade and strategy.position_size == 0
strategy.entry("pendingLong", strategy.long, limit=low+wickLength/2, when = longCondition)
strategy.entry("pendingShort", strategy.short, limit=high-wickLength/2, when = shortCondition)
longStop = strategy.position_size > 0 ? strategy.position_avg_price*(1-sltp_inp) : na
longTP = strategy.position_size > 0 ? strategy.position_avg_price*(1+2*sltp_inp) : na
shortStop = strategy.position_size < 0 ? strategy.position_avg_price*(1+sltp_inp) : na
shortTP = strategy.position_size < 0 ? strategy.position_avg_price*(1-2*sltp_inp) : na
strategy.exit("longSLTP","pendingLong", stop=longStop, limit = longTP)
strategy.exit("shortSLTP","pendingShort", stop=shortStop, limit = shortTP)
plot(longStop, color=color.red, style=plot.style_linebr, linewidth=2)
plot(shortStop, color=color.red, style=plot.style_linebr, linewidth=2)
plot(longTP, color=color.green, style=plot.style_linebr, linewidth=2)
plot(shortTP, color=color.green, style=plot.style_linebr, linewidth=2)
plotLongCondition = longCondition ? high+abs(open-close) : na
plot(plotLongCondition, style=plot.style_circles, linewidth=4, color=color.green)
plotShortCondition = shortCondition ? high+abs(open-close) : na
plot(plotShortCondition, style=plot.style_circles, linewidth=4, color=color.red)