এটি একটি বিস্তৃত ট্রেডিং কৌশল সিস্টেম যা সমর্থন এবং প্রতিরোধের স্তরের সাথে একাধিক প্রযুক্তিগত বিশ্লেষণ প্যাটার্ন স্বীকৃতিকে একত্রিত করে। কৌশলটি মূলত ডাবল নীচের প্যাটার্নগুলি (আদম এবং ইভের নীচে) সনাক্ত করে, ফিবোনাচি পুনরুদ্ধার স্তরগুলিকে একীভূত করে এবং ট্রেডিং সিদ্ধান্তের জন্য সমর্থন এবং প্রতিরোধের লাইনগুলি ব্যবহার করে কাজ করে। মূল শক্তিটি এর বহু-মাত্রিক প্রযুক্তিগত সূচক যাচাইকরণে রয়েছে, যা ঝুঁকি নিয়ন্ত্রণের জন্য সমর্থন এবং প্রতিরোধের স্তরগুলিকে গুরুত্বপূর্ণ রেফারেন্স হিসাবে ব্যবহার করে ট্রেডিং সংকেতগুলির নির্ভরযোগ্যতা বাড়ায়।
কৌশলটি ট্রেডিং সিদ্ধান্তের জন্য একটি ট্রিপল যাচাইকরণ প্রক্রিয়া ব্যবহার করেঃ প্রথমত, এটি নির্দিষ্ট অ্যালগরিদমগুলির মাধ্যমে ডাবল নীচের প্যাটার্নগুলি সনাক্ত করে, যার মধ্যে তীক্ষ্ণ
এই কৌশলটি প্যাটার্ন স্বীকৃতি, ফিবোনাচি স্তর এবং সমর্থন / প্রতিরোধের রেখা সহ একাধিক প্রযুক্তিগত বিশ্লেষণ পদ্ধতি ব্যাপকভাবে ব্যবহার করে একটি অপেক্ষাকৃত সম্পূর্ণ ট্রেডিং সিস্টেম তৈরি করে। এর শক্তি একাধিক যাচাইকরণ প্রক্রিয়া দ্বারা প্রদত্ত উচ্চ নির্ভরযোগ্যতায় রয়েছে, যখন এর সামঞ্জস্যতা বিভিন্ন বাজারের অবস্থার সাথে অভিযোজন করার অনুমতি দেয়। যদিও কিছু অন্তর্নিহিত ঝুঁকি রয়েছে, ক্রমাগত অপ্টিমাইজেশন এবং উন্নতির মাধ্যমে কৌশলটি প্রকৃত ট্রেডিংয়ে স্থিতিশীল পারফরম্যান্সের প্রতিশ্রুতি দেখায়। অতিরিক্ত প্রযুক্তিগত সূচক এবং অপ্টিমাইজেশন অ্যালগরিদম অন্তর্ভুক্ত করে, পারফরম্যান্স উন্নত করার জন্য উল্লেখযোগ্য জায়গা রয়েছে।
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-04 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Double Bottom with Support/Resistance Strategy - Aynet", overlay=true) // Inputs lookbackPeriod = input(21, "Lookback Period") swingLowThreshold = input(1.5, "Swing Low Threshold") fibLevel1 = input(0.618, "Fibonacci Level 1") fibLevel3 = input(1.618, "Fibonacci Level 2") srPeriod = input(21, "Support/Resistance Period") srThreshold = input(3, "Support/Resistance Touch Points") // Support/Resistance Function get_sr_level(idx) => var level = 0.0 var count = 0 if bar_index % srPeriod == 0 highCount = 0 lowCount = 0 for i = 0 to srPeriod - 1 if math.abs(high[i] - high) < (high * 0.001) highCount += 1 if math.abs(low[i] - low) < (low * 0.001) lowCount += 1 if highCount >= srThreshold level := high count := highCount if lowCount >= srThreshold level := low count := lowCount [level, count] // Pattern Detection Functions isSwingLow(src, left, right) => isLow = true for i = 0 to left + right if src[i] < src[right] isLow := false isLow getSpikeSharpness(index) => priceRange = high[index] - low[index] bodyRange = math.abs(close[index] - open[index]) sharpness = priceRange / bodyRange sharpness // Pattern Variables var float firstBottom = na var float secondBottom = na var bool isAdam = false var bool isEve = false var float level1Value = na var float level3Value = na // Pattern Detection bottom = isSwingLow(low, lookbackPeriod, lookbackPeriod) if bottom sharpness = getSpikeSharpness(0) if na(firstBottom) firstBottom := low isAdam := sharpness > swingLowThreshold else if low <= firstBottom * 1.02 and low >= firstBottom * 0.98 secondBottom := low isEve := sharpness <= swingLowThreshold // Calculate Fibonacci if not na(secondBottom) highPoint = ta.highest(high, lookbackPeriod) fibDistance = highPoint - math.min(firstBottom, secondBottom) level1Value := math.min(firstBottom, secondBottom) + fibDistance * fibLevel1 level3Value := math.min(firstBottom, secondBottom) + fibDistance * fibLevel3 // Get S/R Level [srLevel, srCount] = get_sr_level(0) // Trading Logic longCondition = srLevel > level3Value shortCondition = srLevel < level1Value if longCondition strategy.entry("Long", strategy.long) if shortCondition strategy.entry("Short", strategy.short) // Reset Pattern if high > ta.highest(high[1], lookbackPeriod) firstBottom := na secondBottom := na isAdam := false isEve := false var table logo = table.new(position.top_right, 1, 1) table.cell(logo, 0, 0, 'Double Bottom with Support/Resistance Strategy - Aynet', text_size=size.large, text_color=color.white) // Plots plot(level1Value, "0.236", color=color.rgb(245, 0, 0), style=plot.style_line) plot(level3Value, "0.618", color=color.rgb(82, 166, 255), style=plot.style_line) plot(srLevel, "S/R Level", color=color.white) plotshape(bottom and not na(firstBottom) and na(secondBottom), "Adam Bottom", shape.circle, location.belowbar, color.green) plotshape(bottom and not na(secondBottom), "Eve Bottom", shape.circle, location.belowbar, color.yellow)