
এই কৌশলটি একটি ট্রেডিং সিস্টেম যা মূল্যের ক্রিয়াকলাপ এবং গতিশীল সমর্থন ও প্রতিরোধের উপর ভিত্তি করে তৈরি করা হয় এবং মূল মূল্যের প্যাটার্নগুলিকে সমর্থন ও প্রতিরোধের কাছাকাছি চিহ্নিত করে ট্রেড করা হয়। সিস্টেমটি 16 টি চক্রের গতিশীল সমর্থন ও প্রতিরোধের গণনা পদ্ধতি ব্যবহার করে এবং চারটি ক্লাসিক বিপরীত-বিপরীত চিত্রের সাথে মিলিত হয় - ক্যাপসুল, স্টারলাইন, ক্রস এবং পিন প্যাটার্নগুলি বাজারের সম্ভাব্য বিপরীত সুযোগগুলি ধরার জন্য। কৌশলটি ঝুঁকি পরিচালনা করার জন্য একটি নির্দিষ্ট শতাংশ স্টপ লস স্টপ ব্যবহার করে এবং সংবেদনশীলতা প্যারামিটার ব্যবহার করে প্রবেশের সংকেতের কঠোরতা নিয়ন্ত্রণ করে।
কৌশলটির মূল অংশটি হ’ল গতিশীলভাবে সমর্থন এবং প্রতিরোধের স্তরগুলি গণনা করে দামের ক্রিয়াকলাপের একটি উপরের এবং নীচের সীমানা গঠন করা। যখন দামগুলি এই সমালোচনামূলক স্তরের কাছাকাছি আসে তখন সিস্টেমটি বিপরীত সংকেত হিসাবে নির্দিষ্ট স্ক্রিনশট ফর্ম্যাটগুলি সন্ধান করে। প্রবেশের শর্তগুলি প্রয়োজন যে দামগুলি প্রতিরোধের স্তরের 1.8% (ডিফল্ট সংবেদনশীলতা) এর মধ্যে বিপরীত ফর্ম্যাটগুলি দেখা দেয়। সিস্টেমটি 35% তহবিল পরিচালনার নিয়ম ব্যবহার করে, 16% স্টপ লস এবং 9.5% স্টপ, কার্যকরভাবে প্রতিটি লেনদেনের ঝুঁকি নিয়ন্ত্রণ করে অ্যাকাউন্টের মোট পরিমাণের প্রায় 5.6%। কৌশলটি পাইন স্ক্রিপ্টের মাধ্যমে বাস্তবায়িত হয়, এতে সম্পূর্ণ লেনদেন পরিচালনা এবং ভিজ্যুয়ালাইজেশন বৈশিষ্ট্য রয়েছে।
দামের আচরণের উপর ভিত্তি করে এই ট্রেডিং কৌশলটি ডায়নামিক সমর্থন প্রতিরোধের স্তর এবং ক্লাসিক বিপরীত মোডের সাথে একত্রিত করে ব্যবসায়ীদের জন্য একটি পদ্ধতিগত ব্যবসায়ের পদ্ধতি সরবরাহ করে। কৌশলটির সুবিধাগুলি লজিক্যাল স্পষ্টতা, ঝুঁকি নিয়ন্ত্রণযোগ্য, তবে প্রকৃত ব্যবসায়ের প্রভাবের উপর ভিত্তি করে ক্রমাগত অপ্টিমাইজেশনের প্রয়োজন। ব্যবসায়ীদের রিয়েল-টাইমে ব্যবহারের আগে পর্যাপ্ত প্রতিক্রিয়া এবং প্যারামিটার অপ্টিমাইজেশনের পরামর্শ দেওয়া হয় এবং বাজারের অভিজ্ঞতার সাথে কৌশলটি ব্যক্তিগতকৃতভাবে সামঞ্জস্য করা উচিত।
/*backtest
start: 2024-11-26 00:00:00
end: 2024-12-03 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © felipemiransan
//@version=5
strategy("Price Action Strategy", overlay=true)
// Settings
length = input.int(16, title="Support and Resistance Length")
sensitivity = input.float(0.018, title="Sensitivity")
// Stop Loss and Take Profit
stop_loss_pct = input.float(16, title="Stop Loss percentage", minval=0.1) / 100
take_profit_pct = input.float(9.5, title="Take Profit percentage", minval=0.1) / 100
// Function to identify a Hammer
isHammer() =>
body = close - open
price_range = high - low
lower_shadow = open - low
upper_shadow = high - close
body > 0 and lower_shadow > body * 2 and upper_shadow < body * 0.5 and price_range > 0
// Function to identify a Shooting Star
isShootingStar() =>
body = open - close
price_range = high - low
lower_shadow = close - low
upper_shadow = high - open
body > 0 and upper_shadow > body * 2 and lower_shadow < body * 0.5 and price_range > 0
// Function to identify a Doji
isDoji() =>
body = close - open
price_range = high - low
math.abs(body) < (price_range * 0.1) // Doji has a small body
// Function to identify a Pin Bar
isPinBar() =>
body = close - open
price_range = high - low
lower_shadow = open - low
upper_shadow = high - close
(upper_shadow > body * 2 and lower_shadow < body * 0.5) or (lower_shadow > body * 2 and upper_shadow < body * 0.5)
// Support and resistance levels
support = ta.lowest(low, length)
resistance = ta.highest(high, length)
// Entry criteria
long_condition = (isHammer() or isDoji() or isPinBar()) and close <= support * (1 + sensitivity)
short_condition = (isShootingStar() or isDoji() or isPinBar()) and close >= resistance * (1 - sensitivity)
// Function to calculate stop loss and take profit (long)
calculate_levels(position_size, avg_price, stop_loss_pct, take_profit_pct) =>
stop_loss_level = avg_price * (1 - stop_loss_pct)
take_profit_level = avg_price * (1 + take_profit_pct)
[stop_loss_level, take_profit_level]
// Function to calculate stop loss and take profit (short)
calculate_levels_short(position_size, avg_price, stop_loss_pct, take_profit_pct) =>
stop_loss_level = avg_price * (1 + stop_loss_pct)
take_profit_level = avg_price * (1 - take_profit_pct)
[stop_loss_level, take_profit_level]
// Buy entry order with label
if (long_condition and strategy.opentrades == 0)
strategy.entry("Buy", strategy.long)
pattern = isHammer() ? "Hammer" : isDoji() ? "Doji" : isPinBar() ? "Pin Bar" : ""
label.new(x=bar_index, y=low, text=pattern, color=color.green, textcolor=color.black, size=size.small)
// Sell entry order with label
if (short_condition and strategy.opentrades == 0)
strategy.entry("Sell", strategy.short)
pattern = isShootingStar() ? "Shooting Star" : isDoji() ? "Doji" : isPinBar() ? "Pin Bar" : ""
label.new(x=bar_index, y=high, text=pattern, color=color.red, textcolor=color.black, size=size.small)
// Stop Loss and Take Profit management for open positions
if (strategy.opentrades > 0)
if (strategy.position_size > 0) // Long position
avg_price_long = strategy.position_avg_price // Average price of long position
[long_stop_level, long_take_profit_level] = calculate_levels(strategy.position_size, avg_price_long, stop_loss_pct, take_profit_pct)
strategy.exit("Exit Long", from_entry="Buy", stop=long_stop_level, limit=long_take_profit_level)
if (strategy.position_size < 0) // Short position
avg_price_short = strategy.position_avg_price // Average price of short position
[short_stop_level, short_take_profit_level] = calculate_levels_short(strategy.position_size, avg_price_short, stop_loss_pct, take_profit_pct)
strategy.exit("Exit Short", from_entry="Sell", stop=short_stop_level, limit=short_take_profit_level)
// Visualization of Support and Resistance Levels
plot(support, title="Support", color=color.green, linewidth=2)
plot(resistance, title="Resistance", color=color.red, linewidth=2)