
উচ্চ-নিম্ন বিরতি পুনরুদ্ধার কৌশল হ’ল একটি ট্রেন্ড ট্র্যাকিং কৌশল যা শেয়ারের historicalতিহাসিক উচ্চতা এবং নিম্নতা ব্যবহার করে এবং দামগুলি এই উচ্চ-নিম্নগুলিকে অতিক্রম করেছে কিনা তা নির্ধারণ করে। এটি একটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ এবং সর্বনিম্ন মূল্য গণনা করে, যখন বর্তমান সময়ের দামগুলি সাম্প্রতিক নির্দিষ্ট সময়ের সর্বোচ্চ মূল্যকে ছাড়িয়ে যায়, তখন একটি কেনার সংকেত তৈরি করে; যখন দামগুলি সাম্প্রতিক নির্দিষ্ট সময়ের সর্বনিম্ন মূল্যের নীচে পড়ে যায়, তখন বিক্রয় তৈরি করে। সংকেত কৌশলটি প্রবণতা ট্র্যাকিং কৌশলগুলির মধ্যে একটি, যা শেয়ারের দামের প্রবণতার বৈশিষ্ট্যগুলিকে ধরে রাখতে পারে, যার একটি বাস্তব যুদ্ধের মূল্য রয়েছে।
এই কৌশলটির কেন্দ্রীয় যুক্তি হল একটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ এবং সর্বনিম্ন মূল্য গণনা করা (ডিফল্ট 50 K লাইন) । সর্বোচ্চ এবং সর্বনিম্ন মূল্য গণনা করার জন্য, আপনি বন্ধের মূল্য বা সর্বোচ্চ এবং সর্বনিম্ন মূল্য ব্যবহার করতে পারেন (ডিফল্ট সর্বোচ্চ এবং সর্বনিম্ন ব্যবহার করুন) । তারপরে বিচার করুন যে বর্তমান K লাইনের বন্ধের মূল্য বা সর্বোচ্চ দামটি সাম্প্রতিক নির্দিষ্ট সময়ের সর্বোচ্চ মূল্যের চেয়ে বেশি কিনা, যদি তা হয় এবং যদি একটি নির্দিষ্ট সময়ের সর্বোচ্চ মূল্য থাকে (ডিফল্ট 30 K লাইন), একটি কেনার সংকেত তৈরি করুন। একইভাবে, বিচার করুন যে বর্তমান K লাইনের বন্ধের মূল্য বা সর্বনিম্ন মূল্য সর্বশেষ নির্দিষ্ট সময়ের সর্বনিম্ন মূল্যের চেয়ে কম কিনা, এবং যদি একটি নির্দিষ্ট সময়ের সর্বনিম্ন মূল্য থাকে তবে একটি বিক্রয় সংকেত তৈরি করুন।
যখন একটি ক্রয় সংকেত উত্পন্ন হয়, তখন কৌশলটি সেই মূল্যে ক্রয় করে এবং স্টপ লস এবং স্টপ প্রস সেট করে। যখন মূল্য স্টপ লস স্পর্শ করে তখন কৌশলটি স্টপ লস এবং প্রস্থান করে; যখন মূল্য স্টপ প্রস স্পর্শ করে তখন কৌশলটি স্টপ প্রস্থান করে। বিক্রয় সংকেতের যুক্তিও অনুরূপ।
এই উচ্চ-নিম্ন-বিপ্লব পুনরুদ্ধারের কৌশলটির নিম্নলিখিত সুবিধাগুলি রয়েছেঃ
এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ
এই ঝুঁকিগুলি নিয়ন্ত্রণ করতে, নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
এই উচ্চ-নিম্ন-বিপ্লব পুনরুদ্ধারের কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
প্যারামিটার অপ্টিমাইজেশানঃ বিভিন্ন প্যারামিটার সমন্বয়কে আরও পদ্ধতিগতভাবে পরীক্ষা করে সর্বোত্তম প্যারামিটার খুঁজে পাওয়া যায়।
অন্যান্য সূচকগুলির সাথে মিলিত একটি ফিল্টারিং সংকেত। উদাহরণস্বরূপ, একটি চলমান গড় সূচকের সাথে মিলিত হতে পারে, কেবলমাত্র যখন দাম সর্বোচ্চ মূল্য অতিক্রম করে এবং দীর্ঘমেয়াদী চলমান গড়ের উপর দীর্ঘমেয়াদী চলমান গড়কে অতিক্রম করে তখনই একটি ক্রয় সংকেত তৈরি করা হয়।
শেয়ারের দামের ওঠানামার ফ্রিকোয়েন্সি বিবেচনা করুন। উদাহরণস্বরূপ, এটিআর সূচকটি সংযুক্ত করা যেতে পারে, যখন শেয়ারের দামের ওঠানামার পরিমাণ বাড়বে, তখন বিপর্যয়ের মাত্রা যথাযথভাবে প্রশস্ত করা যায়।
প্রবণতা বাজার এবং অস্থিরতা বাজার মধ্যে পার্থক্য করুন। প্রবণতা স্পষ্ট পর্যায়ে, প্রবণতা অনুসরণ করার জন্য প্যারামিটারগুলি যথাযথভাবে শিথিল করুন; যখন অস্থিরতা বাজার হয়, তখন প্যারামিটারগুলি যথাযথভাবে কঠোর করুন।
পজিশন ম্যানেজমেন্ট ব্যবস্থা বাড়ানো। যেমন, যখন ক্ষতির একটি নির্দিষ্ট শতাংশ পৌঁছে যায় তখন পজিশন বন্ধ করা হয়।
সামগ্রিকভাবে, উচ্চ এবং নিম্ন ব্রেকডাউন ব্যাকমেকিং কৌশলটি একটি সহজ এবং ব্যবহারিক প্রবণতা অনুসরণকারী কৌশল। এটি নির্ধারণ করে যে দামগুলি একটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ এবং সর্বনিম্ন মূল্য অতিক্রম করেছে কিনা তা নির্ধারণ করে ট্রেডিং সংকেত নির্ধারণ করে। এই কৌশলটি সহজ, প্রবণতা অনুসরণ এবং প্যারামিটার অপ্টিমাইজেশনের মতো সুবিধাগুলি রয়েছে, তবে অতিরিক্ত ব্যবসায়ের উত্পাদন এবং অস্থির বাজার পরিচালনা করতে অক্ষমতার ঝুঁকিও রয়েছে। আমরা প্যারামিটার অপ্টিমাইজেশন, সূচক ফিল্টারিং এবং পজিশন ম্যানেজমেন্টের মতো একাধিক দিক থেকে এই কৌশলটি আরও উন্নত করতে পারি যাতে এর কার্যকারিতা আরও বাড়ানো যায়।
/*backtest
start: 2023-11-25 00:00:00
end: 2023-11-26 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("High/Low Breaker Backtest 1.0", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, max_bars_back=700)
// Strategy Settings
takeProfitPercentageLong = input(.1, title='Take Profit Percentage Long', type=float)/100
stopLossPercentageLong = input(0.15, title='Stop Loss Percentage Long', type=float)/100
takeProfitPercentageShort = input(.1, title='Take Profit Percentage Short', type=float)/100
stopLossPercentageShort = input(0.15, title='Stop Loss Percentage Short', type=float)/100
candlesBack = input(title="Number of candles back", defval=50)
useHighAndLows = input(true, title="Use high and lows (uncheck to use close)", defval=true)
lastBarsBackMinimum = input(title="Number of candles back to ignore for last high/low", defval=30)
showHighsAndLows = input(true, title="Show high/low lines", defval=true)
getIndexOfLowestInSeries(series, period) =>
index = 0
current = series
for i = 1 to period
if series[i] <= current
index := i
current := series[i]
index
getIndexOfHighestInSeries(series, period) =>
index = 0
current = series
for i = 1 to period
if series[i] >= current
index := i
current := series[i]
index
indexOfHighestInRange = getIndexOfHighestInSeries(useHighAndLows ? high : close, candlesBack)
indexOfLowestInRange = getIndexOfLowestInSeries(useHighAndLows ? low : close, candlesBack)
max = useHighAndLows ? high[indexOfHighestInRange] : close[indexOfHighestInRange]
min = useHighAndLows ? low[indexOfLowestInRange] : close[indexOfLowestInRange]
barsSinceLastHigh = indexOfHighestInRange
barsSinceLastLow = indexOfLowestInRange
isNewHigh = (useHighAndLows ? high > max[1] : close > max[1]) and (barsSinceLastHigh[1] + 1 > lastBarsBackMinimum)
isNewLow = (useHighAndLows ? low < min[1] : close < min[1]) and (barsSinceLastLow[1] + 1 > lastBarsBackMinimum)
alertcondition(condition=isNewHigh, title="New High", message="Last High Broken")
alertcondition(condition=isNewLow, title="New Low", message="Last Low Broken")
if high > max
max := high
barsSinceLastHigh := 0
if low < min
min := low
barsSinceLastLow := 0
plot( showHighsAndLows ? max : na, color=red, style=line, title="High", linewidth=3)
plot( showHighsAndLows ? min : na, color=green, style=line, title="Low", linewidth=3)
// Strategy Entry/Exit Logic
goLong =isNewHigh
longStopLevel = strategy.position_avg_price * (1 - stopLossPercentageLong)
longTakeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercentageLong)
goShort = isNewLow
shortStopLevel = strategy.position_avg_price * (1 + stopLossPercentageShort)
shortTakeProfitLevel = strategy.position_avg_price * (1 - takeProfitPercentageShort)
strategy.entry("Long", strategy.long, when=goLong)
strategy.exit("Long Exit", "Long", stop=longStopLevel, limit=longTakeProfitLevel)
strategy.entry("Short", strategy.short, when=goShort)
strategy.exit("Short Exit", "Short", stop=shortStopLevel, limit=shortTakeProfitLevel)
plot(goShort ? shortStopLevel : na, color=yellow, style=linebr, linewidth=2)
plot(goShort ? shortTakeProfitLevel : na, color=blue, style=linebr, linewidth=2)
plot(goLong ? longStopLevel : na, color=yellow, style=linebr, linewidth=2)
plot(goLong ? longTakeProfitLevel : na, color=blue, style=linebr, linewidth=2)