ইলাস্টিক স্টপ লস সহ স্টোকাস্টিক সূচক ভিত্তিক স্বল্পমেয়াদী ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-০৯-২৮ ১০ঃ৪৫ঃ৪১
ট্যাগঃ

সারসংক্ষেপ

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

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

এন্ট্রি লজিক

স্টোকাস্টিক দোলকের সূচকটি %K লাইন এবং %D লাইনের সমন্বয়ে গঠিত। যখন %K লাইন %D লাইনের উপরে অতিক্রম করে, তখন একটি গোল্ডেন ক্রস কিনার সংকেত উৎপন্ন হয়। যখন %K লাইন %D লাইনের নীচে অতিক্রম করে, তখন একটি মৃত্যু ক্রস বিক্রয় সংকেত সক্রিয় হয়। এই কৌশলটি কেবলমাত্র এন্ট্রিগুলি নির্ধারণের জন্য স্টোকাস্টিক সূচকের ক্রসওভারগুলি অনুসরণ করে।

বিশেষ করে, যখন স্টোকাস্টিক সূচকে একটি গোল্ডেন ক্রস থাকে, যদি %K মান 80 এর চেয়ে কম হয় (অতিরিক্ত ক্রয় করা হয় না), একটি দীর্ঘ অবস্থান নেওয়া হবে। একটি স্টোকাস্টিক মৃত্যুর ক্রসে, যদি %K মান 20 এর চেয়ে বড় হয় (অতিরিক্ত বিক্রয় করা হয় না), একটি ছোট অবস্থান শুরু করা হবে।

GoLong=crossover(k,d) and k<80
GoShort=crossunder(k,d) and k>20

হারানোর যুক্তি বন্ধ করুন

এই কৌশলটি একটি ইলাস্টিক স্টপ লস পদ্ধতির ব্যবহার করে, পূর্ববর্তী পিভট পয়েন্টের উপর ভিত্তি করে স্টপ মূল্য নির্ধারণ করে, নীচে দেখানো হয়েছেঃ

piv_high = pivothigh(high,1,1)
piv_low = pivotlow(low,1,1)

stoploss_long=valuewhen(piv_low,piv_low,0)
stoploss_short=valuewhen(piv_high,piv_high,0) 

পিভটগুলি গুরুত্বপূর্ণ সমর্থন এবং প্রতিরোধের স্তরকে উপস্থাপন করে। যদি মূল্য পিভট স্তরটি ভেঙে যায়, তবে অবস্থানটি বন্ধ হয়ে যাবে এবং স্টপ লস মূল্য ইলাস্টিকভাবে পরিবর্তিত পিভট পয়েন্টগুলি অনুসরণ করবে।

এছাড়াও, স্টপ মূল্য আরও অপ্টিমাইজেশনের জন্য বর্তমান সময়ের সর্বোচ্চ এবং সর্বনিম্ন মূল্য বিবেচনা করেঃ

if GoLong
    stoploss_long := low<pl ? low : pl
if GoShort
    stoploss_short := high>ph ? high : ph

সুবিধা

  1. শীর্ষ এবং নীচে তাড়া এড়াতে স্টোকাস্টিক ব্যবহার;

  2. ইলাস্টিক স্টপ লস বাজার পরিবর্তন অনুসরণ করে এবং স্টপ মূল্য অপ্টিমাইজ করে;

  3. পিভট পয়েন্ট ব্রেকআউটের উপর ভিত্তি করে স্টপ লস আরও কার্যকর;

  4. বর্তমান সর্বোচ্চ এবং সর্বনিম্ন মূল্য ব্যবহার করে স্টপ মূল্য অপ্টিমাইজেশন স্টপকে আরও সুনির্দিষ্ট করে তোলে।

ঝুঁকি এবং সমাধান

  1. স্টোক্যাস্টিক থেকে মিথ্যা সংকেতের ঝুঁকি

    • সমাধানঃ মিথ্যা সংকেত এড়ানোর জন্য অন্যান্য সূচকগুলির সাথে সংকেতগুলি নিশ্চিত করুন
  2. স্টপ লস হ্যাক হওয়ার ঝুঁকি এবং হ্রাস বৃদ্ধি

    • সমাধানঃ স্টপ দূরত্ব হ্রাস করুন, অথবা চ্যান্ডেলিয়ার এক্সট মত পদ্ধতি ব্যবহার করুন
  3. উচ্চ ট্রেডিং ফ্রিকোয়েন্সি এবং কমিশনের ঝুঁকি

    • সমাধানঃ বাণিজ্যের সংখ্যা কমাতে প্রবেশের নিয়ম শিথিল করা

অপ্টিমাইজেশান নির্দেশাবলী

  1. স্টপ লস অপ্টিমাইজ করুন, চ্যান্ডেলিয়ার প্রস্থান, ট্রেলিং স্টপ, দোলানো স্টপ লস ইত্যাদির মতো পদ্ধতি ব্যবহার করে

  2. স্টোকাস্টিক মিথ্যা সংকেত এড়াতে অন্যান্য সূচকগুলির সাথে প্রবেশের নিয়মগুলি অনুকূল করুন

  3. মুনাফা অর্জনের সর্বোত্তম পদ্ধতি, লাভের লক্ষ্যমাত্রা, লাভের লক্ষ্যমাত্রা ইত্যাদি ব্যবহার করে মুনাফা বৃদ্ধি করা

  4. ট্রেড রিস্কের নিয়ন্ত্রণে পজিশনের আকার যোগ করুন, যেমন ট্রেড প্রতি স্থির পরিমাণ, স্থির ঝুঁকি শতাংশ ইত্যাদি

  5. বিভিন্ন বাজারের উপর ভিত্তি করে কে, ডি সময়কাল, মসৃণতা ইত্যাদির মতো পরামিতিগুলি অনুকূল করুন

সংক্ষিপ্তসার

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


/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Peter_O

//@version=4
//strategy(title="TradingView Alerts to MT4 MT5 example with cancelling pending orders", commission_type=strategy.commission.cash_per_order, commission_value=0.00003, overlay=true, default_qty_value=100000, initial_capital=1000)

// This script was created for educational purposes only.
// It is showing how to create pending orders and cancel them
// Together with syntax to send these events through TradingView alerts system
// All the way to brokers for execution

TakeProfitLevel=input(400)

// **** Entries logic **** {
periodK = 13 //input(13, title="K", minval=1)
periodD = 3 //input(3, title="D", minval=1)
smoothK = 4 //input(4, title="Smooth", minval=1)
k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)
// plot(k, title="%K", color=color.blue)
// plot(d, title="%D", color=color.orange)
// h0 = hline(80)
// h1 = hline(20)
// fill(h0, h1, color=color.purple, transp=75)

GoLong=crossover(k,d) and k<80
GoShort=crossunder(k,d) and k>20
// } End of entries logic

// **** Pivot-points and stop-loss logic **** {
piv_high = pivothigh(high,1,1)
piv_low = pivotlow(low,1,1)
var float stoploss_long=low
var float stoploss_short=high

pl=valuewhen(piv_low,piv_low,0)
ph=valuewhen(piv_high,piv_high,0)

if GoLong 
    stoploss_long := low<pl ? low : pl
if GoShort 
    stoploss_short := high>ph ? high : ph
plot(stoploss_long, color=color.lime, title="stoploss_long")
plot(stoploss_short, color=color.red, title="stoploss_short")
// } End of Pivot-points and stop-loss logic

CancelLong=crossunder(low,stoploss_long) and strategy.position_size[1]<=0 and strategy.position_size<=0
CancelShort=crossover(high,stoploss_short) and strategy.position_size[1]>=0 and strategy.position_size>=0
entry_distance=input(10, title="Entry distance for stop orders")

plotshape(CancelLong ? stoploss_long[1]-10*syminfo.mintick : na, location=location.absolute, style=shape.labelup, color=color.gray, textcolor=color.white, text="cancel\nlong", size=size.tiny)
plotshape(CancelShort ? stoploss_short[1]+10*syminfo.mintick : na, location=location.absolute, style=shape.labeldown, color=color.gray, textcolor=color.white, text="cancel\nshort", size=size.tiny)

strategy.entry("Long", strategy.long, when=GoLong, stop=close+entry_distance*syminfo.mintick)
strategy.exit("XLong", from_entry="Long", stop=stoploss_long, profit=TakeProfitLevel)
strategy.cancel("Long", when = CancelLong)
strategy.entry("Short", strategy.short, when=GoShort, stop=close-entry_distance*syminfo.mintick)
strategy.exit("XShort", from_entry="Short", stop=stoploss_short, profit=TakeProfitLevel)
strategy.cancel("Short", when = CancelShort)

if GoLong
    alertsyntax_golong='long offset=' + tostring(entry_distance) + ' slprice=' + tostring(stoploss_long) + ' tp=' + tostring(TakeProfitLevel)
    alert(message=alertsyntax_golong, freq=alert.freq_once_per_bar_close)
if GoShort
    alertsyntax_goshort='short offset=' + tostring(-entry_distance) + ' slprice=' + tostring(stoploss_short) + ' tp=' + tostring(TakeProfitLevel)
    alert(message=alertsyntax_goshort, freq=alert.freq_once_per_bar_close)
if CancelLong
    alertsyntax_cancellong='cancel long'
    alert(message=alertsyntax_cancellong, freq=alert.freq_once_per_bar_close)
if CancelShort
    alertsyntax_cancelshort='cancel short'
    alert(message=alertsyntax_cancelshort, freq=alert.freq_once_per_bar_close)
    


আরো