খোলা-উচ্চ-নিম্ন স্টপ লস ট্র্যাকিং কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-02-18 14:30:08
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি এন্ট্রিগুলির জন্য প্রবণতা বিপরীত পয়েন্টগুলি সনাক্ত করতে মোমবাতি চার্টগুলির উন্মুক্ত, উচ্চ এবং নিম্ন ডেটাগুলির উপর ভিত্তি করে ডিজাইন করা হয়েছে। এন্ট্রিগুলির পরে, এটিআর সূচকের উপর ভিত্তি করে স্টপ লস লাইন সেট করা হবে এবং ট্র্যাক করা হবে। ঝুঁকি-পুরষ্কার অনুপাতের উপর ভিত্তি করে লক্ষ্যগুলিও গণনা করা হবে। যখন মূল্য স্টপ লস বা মুনাফা লক্ষ্যমাত্রা হিট করে, অর্ডারগুলি বন্ধ অবস্থানের জন্য প্রেরণ করা হবে।

কৌশলগত যুক্তি

এই কৌশলটির প্রবেশ সংকেতগুলি খোলা, উচ্চ এবং নিম্ন মূল্য থেকে আসে। যখন খোলার দাম মোমবাতিটির সর্বনিম্নের সমান হয় তখন একটি ক্রয় সংকেত উত্পন্ন হয় এবং যখন খোলার দাম উচ্চের সমান হয় তখন একটি বিক্রয় সংকেত উত্পন্ন হয়, যা সম্ভাব্য প্রবণতা বিপরীত সুযোগগুলি নির্দেশ করে।

প্রবেশের পরে, গতিশীল ট্রেলিং স্টপ লসটি এটিআর সূচকের উপর ভিত্তি করে গণনা করা হয়। দীর্ঘ স্টপ লসটি সাম্প্রতিক এন বার বিয়োগ 1 এটিআর এর সর্বনিম্ন নিচে সেট করা হয়; সংক্ষিপ্ত স্টপ লসটি সাম্প্রতিক এন বার প্লাস 1 এটিআর এর সর্বোচ্চ উচ্চতায় সেট করা হয়। স্টপ লস লাইনটি গতিশীলভাবে ট্রেল দামের গতিতে আপডেট হবে।

মুনাফা লক্ষ্যমাত্রা ঝুঁকি-প্রতিফল অনুপাতের উপর ভিত্তি করে গণনা করা হয়। দীর্ঘ লক্ষ্যমাত্রা প্রবেশ মূল্য প্লাস (প্রবেশ মূল্য এবং স্টপ লসের মধ্যে ঝুঁকি পার্থক্য ঝুঁকি-প্রতিফল অনুপাত দ্বারা গুণিত) এ নির্ধারিত হয়; সংক্ষিপ্ত লক্ষ্যমাত্রা প্রবেশ মূল্য বিয়োগ (স্টপ লস এবং প্রবেশ মূল্যের মধ্যে ঝুঁকি পার্থক্য ঝুঁকি-প্রতিফল অনুপাত দ্বারা গুণিত) এ নির্ধারিত হয়।

যখন মূল্য স্টপ লস বা মুনাফা লক্ষ্যমাত্রায় পৌঁছবে, তখন অর্ডারগুলি স্থির পজিশনে পাঠানো হবে।

সুবিধা বিশ্লেষণ

এই কৌশলটির সুবিধাগুলির মধ্যে রয়েছেঃ

  1. সহজ এবং পরিষ্কার প্রবেশ সংকেত, একাধিক whipsaws এড়ানো।

  2. ডায়নামিক এটিআর ট্রেইলিং স্টপ লাভের লক করে এবং উচ্চ এবং নিম্ন অনুসরণ করা রোধ করে।

  3. ঝুঁকি-প্রতিদান অনুপাত নিয়ন্ত্রণ লাভ টেবিলে রেখে এবং অত্যধিক ট্রেডিং এড়ানো হয়।

  4. বিভিন্ন পণ্যের জন্য প্রযোজ্য, অপ্টিমাইজ করা সহজ।

ঝুঁকি বিশ্লেষণ

এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ

  1. এন্ট্রি সিগন্যাল কিছুটা পিছিয়ে যেতে পারে, বাজারে প্রবেশের সেরাটি মিস করতে পারে।

  2. স্টপ লস খুব টাইট বা খুব লস, অপ্রয়োজনীয় স্টপ লস বা মিস লাভের কারণ।

  3. কোন প্রবণতা নির্ধারণ নেই, বিভিন্ন বাজারে আটকা পড়ার প্রবণতা।

  4. রাতারাতি পজিশন পরিচালনা করতে অক্ষম।

অপ্টিমাইজেশান দিকগুলি হলঃ

  1. প্রবণতা পক্ষপাতিত্বের জন্য অন্যান্য সূচক অন্তর্ভুক্ত করুন যাতে whipsaws এড়ানো যায়।

  2. এটিআর প্যারামিটারগুলিকে সূক্ষ্মভাবে সামঞ্জস্য করুন অথবা আরও ভাল স্টপ লসের জন্য অস্থিরতা নিয়ন্ত্রণ যুক্ত করুন।

  3. সিগন্যাল গোলমাল কমাতে প্রবণতা ফিল্টারিং যোগ করুন।

  4. কিছু পণ্যের জন্য রাতারাতি অবস্থান হ্যান্ডলিং যোগ করুন।

সিদ্ধান্ত

উপসংহারে, এটি একটি সহজ এবং সরল কৌশল যা পরিষ্কার এন্ট্রি লজিক, যুক্তিসঙ্গত স্টপ লস পদ্ধতি এবং ভাল ঝুঁকি নিয়ন্ত্রণের সাথে। তবে অপর্যাপ্ত প্রবণতা পক্ষপাত, সংকেত বিলম্ব ইত্যাদির মতো কিছু সীমাবদ্ধতা রয়েছে। এই ত্রুটিগুলি ভবিষ্যতের অপ্টিমাইজেশনের দিকনির্দেশগুলিও নির্দেশ করে। আরও সূচক ফিল্টার এবং ঝুঁকি ব্যবস্থাপনা মডিউলগুলি অন্তর্ভুক্ত করে এই কৌশলটি আরও উন্নত এবং আরও শক্তিশালী করা যেতে পারে।


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Open-High-Low strategy

strategy('Strategy: OLH', shorttitle="OLH", overlay=true )

// Inputs
slAtrLen = input.int(defval=14, title="ATR Period for placing SL", group="StopLoss settings")
showSLLines = input.bool(defval=false, title="Show SL lines in chart", tooltip="Show SL lines also as dotted lines in chart. Note: chart may look untidy.", group="Stolploss settings")
// Trade related
rrRatio = input.float(title='Risk:Reward', step=0.1, defval=2.0, group="Trade settings")
endOfDay = input.int(defval=1500, title="Close all trades, default is 3:00 PM, 1500 hours (integer)", group="Trade settings")
mktAlwaysOn = input.bool(defval=true, title="Markets that never closed (Crypto, Forex, Commodity)", tooltip="Some markers never closes. For those cases, make this checked.", group="Trade settings")
lotSize = input.int(title='Lot Size', step=1, defval=1, group="Trade settings")


// Utils
green(open, close) => close > open ? true : false
red(open, close) => close < open ? true : false
body(open, close) => math.abs(open - close)
lowerwick = green(open, close) ? open - low : close - low
upperwick = green(open, close) ? high - close : high - open
crange = high - low
crangep = high[1] - low[1] // previous candle's candle-range
bullish = close > open ? true : false
bearish = close < open ? true : false


// Trade signals
longCond = barstate.isconfirmed and (open == low)
shortCond = barstate.isconfirmed and (open == high)

// For SL calculation
atr = ta.atr(slAtrLen)
highestHigh = ta.highest(high, 7)
lowestLow = ta.lowest(low, 7)
longStop = showSLLines ? lowestLow - (atr * 1) : na
shortStop = showSLLines ? highestHigh + (atr * 1) : na
plot(longStop, title="Buy SL", color=color.green, style=plot.style_cross)
plot(shortStop, title="Sell SL", color=color.red, style=plot.style_cross)

// Trade execute
h = hour(time('1'), syminfo.timezone)
m = minute(time('1'), syminfo.timezone)
hourVal = h * 100 + m
totalTrades = strategy.opentrades + strategy.closedtrades
if (mktAlwaysOn or (hourVal < endOfDay))
    // Entry
    var float sl = na
    var float target = na
    if (longCond)
        strategy.entry("enter long", strategy.long, lotSize, limit=na, stop=na, comment="Enter Long")
        sl := longStop
        target := close + ((close - longStop) * rrRatio)
        alert('Buy:' + syminfo.ticker + ' ,SL:' + str.tostring(math.floor(sl)) + ', Target:' + str.tostring(target), alert.freq_once_per_bar)
    if (shortCond)
        strategy.entry("enter short", strategy.short, lotSize, limit=na, stop=na, comment="Enter Short")
        sl := shortStop
        target := close - ((shortStop - close) * rrRatio)
        alert('Sell:' + syminfo.ticker + ' ,SL:' + str.tostring(math.floor(sl)) + ', Target:' + str.tostring(target), alert.freq_once_per_bar)

    // Exit: target or SL
    if ((close >= target) or (close <= sl))
        strategy.close("enter long", comment=close < sl ? "Long SL hit" : "Long target hit")
    if ((close <= target) or (close >= sl))
        strategy.close("enter short", comment=close > sl ? "Short SL hit" : "Short target hit")
else if (not mktAlwaysOn)
    // Close all open position at the end if Day
    strategy.close_all(comment = "Close all entries at end of day.")



আরো