
ডাবল-ব্রিজ ব্রেকআউট কৌশলটি ব্রেকআউট কৌশল এবং লিন্ডা রাস্কের চলমান স্টপ-ডাউন নীতির সমন্বয় করে, যার দুর্দান্ত ব্রেকআউট পারফরম্যান্স এবং কঠোর ঝুঁকি নিয়ন্ত্রণ রয়েছে। এই কৌশলটি একই সাথে দামের উত্থান-পতন পর্যবেক্ষণ করে, যখন ব্রেকআউট হয় তখন একটি ওভার বা ডাউন পজিশন স্থাপন করে এবং চলমান স্টপ-ডাউন এবং চলমান স্টপ-ডাউন পরিচালনার অবস্থান ব্যবহার করে।
মূল লজিকটি হ’ল বড় চক্রের উচ্চতায় ছোট চক্রের উচ্চতাটি ভেঙে খালি করা এবং বড় চক্রের নিম্নের নীচে ছোট চক্রের নিম্নের সময় আরও বেশি করা। পজিশন তৈরির পরে, একটি চলমান স্টপ এবং একটি চলমান স্টপ সেট করুন, প্রথমে স্টপটি নিশ্চিত করুন। যখন পজিশন সংখ্যাটি সেট করা স্টপ সংখ্যায় জমা হয়, পরবর্তী চক্রের জন্য স্টপ অর্ডারটি বাতিল করুন, তারপরে অর্ধেক পজিশনটি ছেড়ে চলে যান এবং মুনাফা লক করার জন্য চলমান স্টপ এবং চলমান স্টপ সেট করুন এবং দামের পার্থক্যটি ট্র্যাক করুন।
এই পদক্ষেপগুলি হলঃ
এটি একটি সমন্বিত এবং শক্তিশালী কৌশল যা নিম্নলিখিত সুবিধাগুলির সাথে আসেঃ
প্রধান ঝুঁকি এবং প্রতিকার নিম্নরূপঃ
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকেও উন্নত করা যেতে পারেঃ
ডাবল সিলিং ব্রেকআউট কৌশলটি দ্বি-চক্র প্রযুক্তি, ব্রেকআউট তত্ত্ব এবং কঠোর ঝুঁকি ব্যবস্থাপনার পদ্ধতির সমন্বিত প্রয়োগ করে, উচ্চ সাফল্যের হার বজায় রাখার পাশাপাশি উপার্জনের স্থিতিশীলতা নিশ্চিত করে। এই কৌশল মডেলটি সহজ, পরিষ্কার, সহজেই বোঝা এবং প্রয়োগ করা যায়, এটি একটি দুর্দান্ত পরিমাণগত কৌশল। এই কৌশলটিতে আরও অনেক অপ্টিমাইজেশনের জায়গা রয়েছে, বিনিয়োগকারীরা এই ভিত্তিতে উদ্ভাবন করতে পারে এবং আরও দুর্দান্ত ব্যবসায়ের ব্যবস্থা তৈরি করতে পারে।
/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "Turtle soup plus one", shorttitle = "Turtle soup plus one", overlay=true)
bigPeriod = input(20)
smallPeriod = input(4)
takeProfitBars = input(0)
trailingStop = input(5, title = "Trailing stop percentages")
if (strategy.position_size == 0)
strategy.cancel("Long")
strategy.cancel("Short")
strategy.cancel("Stop")
stopLossPrice = 0.1
stopLossPrice := nz(stopLossPrice[1])
takeProfitStarted = false
takeProfitStarted := nz(takeProfitStarted[1])
prevHigh = highest(high, bigPeriod - smallPeriod)[smallPeriod]
smallPeriodHigh = highest(high, smallPeriod - 1)[1]
if (high > prevHigh and prevHigh > smallPeriodHigh and close > prevHigh and strategy.position_size == 0)
strategy.order("Short", strategy.short, stop = prevHigh)
if strategy.position_size < 0 and strategy.position_size[1] == 0
stopLossPrice := high[1]
strategy.order("Stop", strategy.long, qty = -strategy.position_size, stop = stopLossPrice)
takeProfitStarted := false
if (strategy.position_size < 0 and sum(strategy.position_size, takeProfitBars) == strategy.position_size * takeProfitBars and close < strategy.position_avg_price and not takeProfitStarted)
takeProfitStarted := true
strategy.cancel("Stop")
strategy.order("ExitHalf", strategy.long, qty = ceil(-strategy.position_size / 2), stop = close)
if (strategy.position_size != -1)
strategy.exit("ExitFull", "Short", qty = -strategy.position_size - ceil(-strategy.position_size / 2), loss = stopLossPrice, trail_price = close, trail_offset = -(close - strategy.position_avg_price) * trailingStop / 100 / syminfo.mintick)
prevLow = lowest(low, bigPeriod - smallPeriod)[smallPeriod]
smallPeriodLow = lowest(low, smallPeriod - 1)[1]
if (low < prevLow and prevLow < smallPeriodLow and close < prevLow and strategy.position_size == 0)
strategy.order("Long", strategy.long, stop = prevLow)
if strategy.position_size > 0 and strategy.position_size[1] == 0
stopLossPrice := low[1]
strategy.order("Stop", strategy.short, qty = strategy.position_size, stop = stopLossPrice)
takeProfitStarted := false
if (strategy.position_size > 0 and sum(strategy.position_size, takeProfitBars) == strategy.position_size * takeProfitBars and close > strategy.position_avg_price and not takeProfitStarted)
takeProfitStarted := true
strategy.cancel("Stop")
strategy.order("ExitHalf", strategy.short, qty = ceil(strategy.position_size / 2), stop = close)
if (strategy.position_size != 1)
strategy.exit("ExitFull", "Long", qty = strategy.position_size - ceil(strategy.position_size / 2),loss = stopLossPrice, trail_price = close, trail_offset = (close - strategy.position_avg_price) * trailingStop / 100 / syminfo.mintick)
// === Backtesting Dates ===
testPeriodSwitch = input(false, "Custom Backtesting Dates")
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(3, "Backtest Start Month")
testStartDay = input(6, "Backtest Start Day")
testStartHour = input(08, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0)
testStopYear = input(2038, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(14, "Backtest Stop Day")
testStopHour = input(14, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStopHour,0)
testPeriod() =>
time >= testPeriodStart and time <= testPeriodStop ? true : false
isPeriod = testPeriodSwitch == true ? testPeriod() : true
// === /END
if not isPeriod
strategy.cancel_all()
strategy.close_all()