VWAP-ভিত্তিক ট্রেন্ড অনুসরণ কৌশল


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

VWAP-ভিত্তিক ট্রেন্ড অনুসরণ কৌশল

ওভারভিউ

এই কৌশলটি VWAP এবং EMA এর উপর ভিত্তি করে ট্রেন্ডের দিকনির্দেশের জন্য ব্যবহৃত হয়, যেখানে VWAP প্রচলিত মূল্যের প্রতিনিধিত্ব করে এবং EMA200 মধ্য-দীর্ঘ প্রবণতার প্রতিনিধিত্ব করে। VWAP এবং EMA200 এর উপরে দাম যখন বেশি হয় এবং VWAP এবং EMA200 এর নীচে শূন্য হয়, তখন এটি একটি প্রচলিত প্রবণতা অনুসরণ করার কৌশল।

কৌশল নীতি

কৌশলটির মূল যুক্তি হল VWAP এবং EMA ব্যবহার করে মূল্য প্রবণতা নির্ধারণ করা।

  • ভিডাব্লুএপি মূল্যের একটি আদর্শ মূল্য, যা বাজারের অংশগ্রহণকারীদের গড় ব্যয়কে প্রতিফলিত করে। যখন দাম ভিডাব্লুএপি-র চেয়ে বেশি হয় তখন ক্রেতাদের শক্তি বৃদ্ধি করে, আরও বেশি করে; যখন দাম ভিডাব্লুএপি-র চেয়ে কম হয়, বিক্রেতার শক্তি বৃদ্ধি করে, খালি করা উচিত।
  • EMA200 এর নীচে, EMA200 এর উপরে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে, EMA200 এর নীচে।

সুতরাং, এই কৌশলটি প্রথমে বিচার করে যে দামটি একই সাথে ভিডাব্লুএপি এবং ইএমএ 200 এর চেয়ে বেশি কিনা, যদি তা হয় তবে আরও বেশি করুন; যদি দামটি একই সাথে ভিডাব্লুএপি এবং ইএমএ 200 এর চেয়ে কম হয় তবে খালি করুন। দেখা যায় যে এই কৌশলটি মূলত ভিডাব্লুএপি এবং ইএমএর উপর নির্ভর করে ক্রয়-বিক্রয় সিদ্ধান্তের বিচার করে।

এছাড়াও, কৌশলটি একটি স্টপ-অফ-লস পয়েন্টও সেট করে। এটি একটি স্টপ-অফ-লস হিসাবে প্রবেশের দামের 3.5% এবং স্টপ-অফ-লস হিসাবে 1.4% এবং একটি স্টপ-অফ-লস হিসাবে প্রবেশের দামের 2.5% এবং স্টপ-অফ-লস হিসাবে 0.9% সেট করে। এটি অত্যধিক ক্ষতি এড়াতে পারে।

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

এই কৌশলটির সবচেয়ে বড় সুবিধা হল যে VWAP এবং EMA ব্যবহার করে প্রবণতা নির্ণয় করা খুবই নির্ভরযোগ্য।

  • ভিডাব্লুএপি বাজারের অংশগ্রহণকারীদের গড় ব্যয়কে সঠিকভাবে প্রতিফলিত করে, যা প্রবণতা নির্ধারণের জন্য একটি দুর্দান্ত সূচক;
  • EMA200 স্পষ্টভাবে মধ্যম এবং দীর্ঘ লাইন প্রবণতা প্রতিফলিত করে এবং বড় প্রবণতা সঠিকভাবে এবং নির্ভরযোগ্যভাবে নির্ধারণ করে।

সুতরাং, VWAP এবং EMA ব্যবহার করে ট্রেন্ড নির্ধারণের নির্ভরযোগ্যতা খুব বেশি। যখন উভয়ই ট্রেন্ড নির্ধারণের সাথে সামঞ্জস্যপূর্ণ হয়, তখন অপারেশন করার সাফল্যের হার খুব বেশি।

এছাড়া, স্টপ-অফ-স্টপ পয়েন্ট সেট করলে, একক ক্ষতির পরিমাণ বেশি হওয়া এড়ানো যায়।

কৌশলগত ঝুঁকি

এই কৌশলটির প্রধান ঝুঁকি হল VWAP এবং EMA-র ভুল সংকেত প্রেরণ।

  • যখন বাজারে তীব্র অস্থিরতা দেখা দেয়, দামগুলি ভিডাব্লুএপি থেকে স্বল্প সময়ের জন্য বিচ্ছিন্ন হতে পারে, যা ভুল সংকেত দেয়।
  • নতুন প্রবণতা শুরু হওয়ার সাথে সাথে, EMA দামের পরিবর্তনের সাথে পিছিয়ে যেতে পারে, যার ফলে কৌশলটি প্রবেশের সেরা সময়টি মিস করতে পারে।

এছাড়াও, স্টপ লস সেটিংটি ভুল হতে পারে এবং একক ক্ষতির ঝুঁকি এখনও রয়েছে।

উপরের সমস্যাগুলি সমাধান করার জন্য, আমরা VWAP এবং EMA এর প্যারামিটার সেটিংগুলিকে অপ্টিমাইজ করতে পারি যাতে তারা নতুন প্রবণতার সূচনাকে আরও ভালভাবে সনাক্ত করতে পারে।

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

এই কৌশলটি মূলত নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//26m Binance BTCUSDTPERP
//@version=4
strategy("VWAP Trend Follower", initial_capital=100, overlay=true, commission_type=strategy.commission.percent, commission_value=0.04, default_qty_type = strategy.percent_of_equity, default_qty_value = 90, currency = currency.USD )

/// INITIALISE STRATEGY ///
price=close[1]
vprice=vwap(price)
trend=ema(price, 200)

/// RISK MANAGEMENT ///
long_tp_inp = input(3.5, title='Long Take Profit %',step=0.1)/100
long_sl_inp = input(1.4, title='Long Stop Loss %',step=0.1)/100
short_tp_inp = input(2.5, title='Short Take Profit %',step=0.1)/100
short_sl_inp = input(0.9, title='Short Stop Loss %',step=0.1)/100
long_take_level = strategy.position_avg_price * (1 + long_tp_inp)
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)
short_take_level = strategy.position_avg_price * (1 - short_tp_inp)
short_stop_level = strategy.position_avg_price * (1 + short_sl_inp)
//long_trailing = input(5, title='Trailing Stop Long',step=0.1) / 100
//short_trailing = input(5, title='Trailing Stop short',step=0.1) / 100

/// STRATEGY CONDITIONS ///
aLong= price > trend and price > vprice
entry_long = aLong and aLong[2] and aLong[1]
aShort= price < trend and price < vprice 
entry_short = aShort and aShort[2] and aShort[1]
//exit_long = 
//exit_short =
//entry_price_long=valuewhen(entry_long,close,0)
//entry_price_short=valuewhen(entry_short,close,0)

/// PLOTTING ///
plot(vprice,                color=#5875E1, linewidth=2)
plot(trend,                 color=#D965E1, linewidth=1)
plotshape(series=aLong,     color=#71E181,style=shape.labelup)
plotshape(series=aShort,    color=#E18BA5,style=shape.labeldown)
//plot(long_take_level,     color=#00E676, linewidth=2)
//plot(long_stop_level,     color=#FF5252, linewidth=1)
//plot(short_take_level,    color=#4CAF50, linewidth=2)
//plot(short_stop_level,    color=#FF5252, linewidth=1)

/// PERIOD ///
testStartYear   = input(2019, "Backtest Start Year")
testStartMonth  = input(1, "Backtest Start Month")
testStartDay    = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear    = input(2020, "Backtest Stop Year")
testStopMonth   = input(12, "Backtest Stop Month")
testStopDay     = input(31, "Backtest Stop Day")
testPeriodStop  = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true

//// STRATEGY EXECUTION ////

if testPeriod()
    if strategy.position_size == 0 or strategy.position_size > 0
        strategy.entry(id="Long", long=true, when=entry_long, comment="Long")
        strategy.exit("Take Profit/ Stop Loss","Long", limit=long_take_level, stop=long_stop_level,comment="Exit Long")//,trail_points=entry_price_long * long_trailing / syminfo.mintick, trail_offset=entry_price_long * long_trailing / syminfo.mintick)
//        strategy.close(id="Long", when=exit_long, comment = "Exit Long")

    if strategy.position_size == 0 or strategy.position_size < 0
        strategy.entry(id="Short", long=false, when=entry_short, comment = "Short")
        strategy.exit("Take Profit/ Stop Loss","Short", limit=short_take_level , stop=short_stop_level,comment = "Exit Short")//, trail_points=entry_price_short * short_trailing / syminfo.mintick, trail_offset=entry_price_short * short_trailing / syminfo.mintick)
//        strategy.close(id="Short", when=exit_short, comment = "Exit Short")