এই কৌশলটি প্রবণতা দিক নির্ধারণের জন্য সূচক হিসাবে ভিডাব্লুএপি এবং ইএমএ ব্যবহার করে। যখন দাম ভিডাব্লুএপি এবং ইএমএ 200 এর উপরে থাকে তখন এটি দীর্ঘ হয় এবং যখন দাম ভিডাব্লুএপি এবং ইএমএ 200 এর নীচে থাকে তখন এটি সংক্ষিপ্ত হয়। এটি একটি সাধারণ প্রবণতা অনুসরণকারী কৌশল।
এই কৌশলটির মূল যুক্তি হল দামের প্রবণতা নির্ধারণের জন্য ভিডাব্লুএপি এবং ইএমএ ব্যবহার করা।
ভিডাব্লুএপি সাধারণ মূল্যের প্রতিনিধিত্ব করে এবং বাজারের অংশগ্রহণকারীদের গড় ব্যয়কে প্রতিফলিত করে। যখন দাম ভিডাব্লুএপি এর উপরে থাকে, এর অর্থ ক্রয় ক্ষমতা বৃদ্ধি পায় এবং দীর্ঘ যেতে হবে। যখন দাম ভিডাব্লুএপি এর নীচে থাকে, এর অর্থ বিক্রয় ক্ষমতা শক্তিশালী হয় এবং সংক্ষিপ্ত হওয়া উচিত।
সুতরাং, এই কৌশলটি প্রথমে মূল্যায়ন করে যদি দামটি VWAP এবং EMA200 উভয়ের উপরে থাকে, যদি হ্যাঁ হয় তবে দীর্ঘ যান; যদি দামটি VWAP এবং EMA200 উভয়ের নীচে থাকে তবে শর্ট যান। আমরা দেখতে পাচ্ছি যে এই কৌশলটি মূলত VWAP এবং EMA এর উপর নির্ভর করে ট্রেডিং সিদ্ধান্ত নিতে।
এছাড়াও, কৌশলটি লাভ এবং স্টপ লস পয়েন্টগুলিও সেট করে। দীর্ঘ যাওয়ার পরে, টিপি প্রবেশ মূল্যের 3.5% এবং এসএল প্রবেশ মূল্যের 1.4% এ সেট করা হয়। সংক্ষিপ্ত হওয়ার পরে, টিপি প্রবেশ মূল্যের 2.5% এবং এসএল প্রবেশ মূল্যের 0.9%। এটি বিশাল ক্ষতি এড়ায়।
এই কৌশলটির সবচেয়ে বড় সুবিধা হল যে প্রবণতা নির্ধারণের জন্য ভিডাব্লুএপি এবং ইএমএ ব্যবহার করা খুব নির্ভরযোগ্য।
সুতরাং, প্রবণতা বিচার করার জন্য ভিডাব্লুএপি এবং ইএমএ একত্রিত করা অত্যন্ত নির্ভরযোগ্য। যখন উভয় সূচক ধারাবাহিক সংকেত দেয়, তখন ব্যবসায়ের সাফল্যের হার খুব বেশি।
এই কৌশলটির প্রধান ঝুঁকি হল যে ভিডাব্লুএপি এবং ইএমএ ভুল সংকেত দিতে পারে।
এছাড়াও, ভুল টিপি/এসএল সেটিং এখনও ট্রেড প্রতি অত্যধিক ক্ষতির ঝুঁকি সৃষ্টি করে।
উপরের সমস্যাগুলি সমাধান করার জন্য, আমরা নতুন প্রবণতার সূচনা সনাক্তকরণে আরও ভাল করার জন্য ভিডাব্লুএপি এবং ইএমএর পরামিতিগুলি অনুকূল করতে পারি। এছাড়াও আমরা দামের ওঠানামা অনুসারে এগুলি সামঞ্জস্য করতে অভিযোজিত টিপি / এসএল সেট করতে পারি।
এই কৌশলকে আরও শক্তিশালী করার জন্য প্রধান দিকগুলিঃ
/*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")