সুপার ট্রেন্ড কৌশলের উপর ভিত্তি করে


সৃষ্টির তারিখ: 2024-02-02 11:11:48 অবশেষে সংশোধন করুন: 2024-02-02 11:11:48
অনুলিপি: 0 ক্লিকের সংখ্যা: 782
1
ফোকাস
1617
অনুসারী

সুপার ট্রেন্ড কৌশলের উপর ভিত্তি করে

ওভারভিউ

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

কৌশলটিতে একটি অন্তর্নির্মিত তারিখের পরিসীমা সেট এবং কেবলমাত্র নির্দিষ্ট সময়ের মধ্যে ট্রেডিংয়ের বৈশিষ্ট্য রয়েছে। এটি বিশেষত দিনের ব্যবসায়ের জন্য কার্যকর। সময়সীমা বিকল্পটি সক্ষম করার সময়, আপনি সময়সীমার শুরুতে অবিলম্বে বর্তমান অবস্থানে প্রবেশ করতে বা ট্রেন্ডের পরিবর্তনের পরে প্রথম তালিকায় প্রবেশের জন্য অপেক্ষা করতে পারেন।

এই কৌশলটি শতাংশের ভিত্তিতে স্টপ লস এবং স্টপ আউট সেট করতে পারে। বেশিরভাগ ক্ষেত্রে, অতিরিক্ত স্টপ আউট সেট করার প্রয়োজন হয় না, কারণ এটির উপর ভিত্তি করে স্টপ আউটটি একটি সুপার ট্রেন্ড নিজেই সরবরাহ করে। সুতরাং, কেবলমাত্র স্টপ আউটটি অপ্টিমাইজ করার জন্য এটি সক্ষম করা যেতে পারে।

অবশেষে, এই কৌশলটি স্বনির্ধারিত লেনদেনের প্রবেশ এবং প্রস্থান সতর্কতা তথ্যের বৈশিষ্ট্যযুক্ত যা স্বয়ংক্রিয় লেনদেন পরিষেবাদির জন্য ব্যবহার করা যেতে পারে।

কৌশল নীতি

সুপারট্রেন্ড কৌশলটি নিম্নলিখিত মূল নীতিগুলির উপর ভিত্তি করে কাজ করেঃ

  1. এটিআর গণনা করুনঃ আপনি এসএমএ গণনা ব্যবহার করতে পারেন, অথবা আপনি বিল্ট-ইন এটিআর সূচক ব্যবহার করতে পারেন। এসএমএ সংস্করণের সূত্রটি হলঃ
   atr2 = sma(tr, Periods) 
  1. উপরের এবং নিচের রেলের গণনা করুনঃ উপরের রেলটি ATR এর গুণিতক এবং ATR এর গুণিতক থেকে মূল্য হ্রাস করে এবং নীচের রেলটি ATR এর গুণিতক এবং ATR এর গুণিতক থেকে মূল্য যোগ করে।
   up = close - (Multiplier * atr)
   dn = close + (Multiplier * atr)
  1. দামের সাথে আপ-ডাউন ট্র্যাকের সম্পর্ক বিচার করুন, প্রবণতার দিকটি গণনা করুন। যখন দামটি আপ-ডাউন ট্র্যাকের মধ্য দিয়ে যায় তখন প্রবণতাটি শূন্য থাকে এবং যখন দাম নীচে ট্র্যাকের মধ্য দিয়ে যায় তখন প্রবণতাটি শূন্য থাকে।
   trend := trend == -1 and close > dn ? 1 : trend == 1 and close < up ? -1 : trend 
  1. ট্রেন্ড পরিবর্তনের সময় ট্রেডিং সিগন্যাল তৈরি করা, যেমন মাল্টি হেড থেকে শূন্য হেডে যাওয়ার সময় বিক্রয় সংকেত তৈরি করাঃ
   sellSignal = trend == -1 and trend[1] == 1
  1. ট্রেডিং সিগন্যাল এবং অন্যান্য শর্তের উপর ভিত্তি করে প্রবেশের জন্য বাছাই করুন।

  2. স্টপ লস এবং স্টপ কভার সেট করুন লাভের জন্য অথবা ঝুঁকি এড়ানোর জন্য।

এটি একটি সুপার ট্রেন্ডিং কৌশল, যা প্যারামিটার অপ্টিমাইজেশনের সাথে মিলিত হয়, যা ট্রেডিংয়ের জন্য ভাল ফলাফল প্রদান করে।

কৌশলগত সুবিধা

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

  1. সুপারট্রেন্ডিং সূচক নিজেই মূল্যের প্রবণতা নির্ধারণের জন্য কার্যকর, এটি একটি সাধারণ ট্র্যাকিং স্টপ লস টুল।

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

  3. বিভিন্ন ট্রেডিং সময়ের চাহিদা অনুসারে ব্যাকআপ এবং লাইভ ট্রেডিংয়ের সময়সীমা সেট করা যায়।

  4. প্রথম তালিকায় অবিলম্বে প্রবেশ বা সংকেতের জন্য অপেক্ষা করার বিকল্প দেওয়া হয়েছে, যা জাতের বৈশিষ্ট্য অনুসারে নির্বাচন করা যেতে পারে।

  5. একটি অন্তর্নির্মিত স্টপ লস স্টপ সেটআপ কৌশলটির ঝুঁকি প্রতিরোধ ক্ষমতা বাড়াতে বা আরও বেশি মুনাফা লক করতে পারে।

  6. কাস্টমাইজড ট্রেডিং টিপস, স্বয়ংক্রিয় বা রোবোটিক ট্রেডিং সিস্টেমের সাথে একত্রিত করা যায়, যা অমানবিক রক্ষণাবেক্ষণের অনুমতি দেয়।

কৌশলগত ঝুঁকি

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

  1. সুপারট্রেন্ডিং সূচকগুলি আরও মিথ্যা সংকেত তৈরি করতে পারে এবং অন্যান্য সূচকগুলির সাথে মিলিতভাবে ফিল্টার করা প্রয়োজন।

  2. এটিআর প্যারামিটারগুলির ভুল ব্যবহারের ফলে ট্রেডিং ঘন ঘন বা ট্রেন্ড মিস হতে পারে। প্যারামিটারগুলিকে সর্বোত্তম ভারসাম্যের জন্য অনুকূলিতকরণ করা দরকার।

  3. স্টপ লস পয়েন্টের খুব কাছে থাকা অবস্থায় আপনি খুব তাড়াতাড়ি আপনার লাভজনক অবস্থান থেকে বেরিয়ে আসতে পারেন, এবং স্টপ লস পয়েন্টের খুব দূরে থাকা অবস্থায় আপনি যথেষ্ট পরিমাণে লাভ করতে পারবেন না।

  4. সময়সীমা ভুলভাবে সেট করা হয়েছে, যার ফলে আপনি মূল ট্রেডিং সময় মিস করতে পারেন অথবা আপনার গ্যারান্টি নষ্ট হয়ে যেতে পারে।

উপরের ঝুঁকির জন্য, প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করে বা ফিল্টার শর্ত যুক্ত করে কৌশল স্থিতিশীলতা বাড়ানো যেতে পারে।

কৌশল অপ্টিমাইজেশনের দিকনির্দেশনা

এই কৌশলটি আরও উন্নত করা যেতে পারে নিম্নলিখিত দিকগুলি থেকেঃ

  1. বিভিন্ন ATR চক্র প্যারামিটার চেষ্টা করে সঠিক সমীকরণ খুঁজে বের করুন। সাধারণত ১০-২০ এর মধ্যে তুলনা করা ভালো।

  2. বিভিন্ন ATR গুণক পরামিতি পরীক্ষা করুন, সাধারণত 2-5 উপযুক্ত, সর্বোত্তম মান খুঁজে পেতে ধাপে ধাপে সামঞ্জস্য করা যেতে পারে।

  3. ম্যাকড, কেডি ইত্যাদির মতো অন্যান্য সূচক যুক্ত করার চেষ্টা করুন, মিথ্যা সংকেতগুলি ফিল্টার করুন।

  4. স্টপডাউন প্যারামিটারগুলিকে অপ্টিমাইজ করুন এবং সর্বোত্তম প্যারামিটার সমন্বয়টি সন্ধান করুন। গতিশীল স্টপডাউন স্টপডাউন প্রবর্তন করা যেতে পারে।

  5. বিভিন্ন ট্রেডিং সময় পরিসীমা সেটিং পরীক্ষা করুন। দৈনিক সংক্ষিপ্ত লাইন জাতগুলি স্বল্প সময়ের জন্য উপযুক্ত।

  6. স্বয়ংক্রিয়ভাবে কন্ট্রাক্ট বাছাই করার চেষ্টা করুন এবং উচ্চতর তরলতা বা উচ্চতর ওঠানামা সহ সূচকগুলি অনুসরণ করুন।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*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"}]
*/

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

//@version=4

// Strategy
strategy("Supertrend Strategy", overlay=true, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
enableentry = input(true, title="Enter First Trade ASAP")
waitentry = input(false, title="Wait To Enter First Trade")

atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
Long = (trend == 1 ? up : na)
buySignal = trend == 1 and trend[1] == -1

dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
Short = (trend == 1 ? na : dn)
sellSignal = trend == -1 and trend[1] == 1

// Strategy Backtesting
startDate  = input(timestamp("2021-01-01T00:00:00"), type = input.time, title='Backtesting Start Date')
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time, title='Backtesting End Date')

time_cond  = true

//Time Restriction Settings
startendtime = input("", title='Time Frame To Enter Trades')
enableclose = input(false, title='Enable Close Trade At End Of Time Frame')
timetobuy = (time(timeframe.period, startendtime))
timetoclose = na(time(timeframe.period, startendtime))

// Stop Loss & Take Profit % Based
enablesl = input(false, title='Enable Stop Loss')
enabletp = input(false, title='Enable Take Profit')
stopTick = input(5.0, title='Stop Loss %', type=input.float, step=0.1) / 100
takeTick = input(10.0, title='Take Profit %', type=input.float, step=0.1) / 100

longStop = strategy.position_avg_price * (1 - stopTick)
shortStop = strategy.position_avg_price * (1 + stopTick)
shortTake = strategy.position_avg_price * (1 - takeTick)
longTake = strategy.position_avg_price * (1 + takeTick)

plot(strategy.position_size > 0 and enablesl ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 and enablesl ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 and enabletp ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 and enabletp ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")

// Alert messages
message_enterlong  = input("", title="Long Entry message")
message_entershort = input("", title="Short Entry message")
message_closelong = input("", title="Close Long message")
message_closeshort = input("", title="Close Short message")

// Strategy Execution
if Long and time_cond and timetobuy and enableentry
    strategy.entry("Long", strategy.long, alert_message = message_enterlong)
    
if Short and time_cond and timetobuy and enableentry
    strategy.entry("Short", strategy.short, alert_message = message_entershort)
    
if buySignal and time_cond and timetobuy and waitentry
    strategy.entry("Long", strategy.long, alert_message = message_enterlong)
    
if sellSignal and time_cond and timetobuy and waitentry
    strategy.entry("Short", strategy.short, alert_message = message_entershort)
    
if strategy.position_size > 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closelong)
if strategy.position_size < 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closeshort)
    
if strategy.position_size > 0 and enablesl and time_cond
    strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size < 0 and enablesl and time_cond
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)
    
if strategy.position_size > 0 and enabletp and time_cond
    strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size < 0 and enabletp and time_cond
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)