
یہ حکمت عملی VWAP اور EMA پر مبنی ہے جس میں رجحان کی سمت کا فیصلہ کرنے کے لئے اشارے ہیں ، VWAP عام قیمت کی نمائندگی کرتا ہے ، EMA200 وسط طویل رجحان کی نمائندگی کرتا ہے۔ جب قیمت VWAP اور EMA200 سے زیادہ ہو تو زیادہ کریں ، اور جب VWAP اور EMA200 سے کم ہو تو خالی کریں ، یہ ایک عام رجحان کی پیروی کی حکمت عملی ہے۔
حکمت عملی کا بنیادی منطق VWAP اور EMA کا استعمال کرتے ہوئے قیمتوں کے رجحانات کا تعین کرنا ہے۔
لہذا ، اس حکمت عملی سے پہلے یہ فیصلہ کیا جاتا ہے کہ آیا قیمت ایک ہی وقت میں VWAP اور EMA200 سے زیادہ ہے ، اور اگر یہ ہے تو ، مزید کریں۔ اگر قیمت ایک ہی وقت میں VWAP اور EMA200 سے کم ہے تو ، اسے خالی کردیں۔ جیسا کہ دیکھا جاسکتا ہے ، یہ حکمت عملی بنیادی طور پر VWAP اور EMA پر انحصار کرتی ہے جو خرید و فروخت کے فیصلے کرتی ہے۔
اس کے علاوہ ، حکمت عملی نے اسٹاپ اسٹاپ نقصان کا نقطہ بھی ترتیب دیا ہے۔ زیادہ کرنے کے بعد اسٹاپ کو داخلے کی قیمت کا 3.5٪ ، اسٹاپ کو 1.4٪ مقرر کیا گیا ہے۔ اس کے بعد اسٹاپ کو داخلے کی قیمت کا 2.5٪ ، اسٹاپ کو 0.9٪ مقرر کیا گیا ہے۔ اس سے زیادہ نقصان سے بچا جاسکتا ہے۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ VWAP اور EMA کے استعمال سے رجحانات کا تعین بہت قابل اعتماد ہے.
لہذا ، VWAP اور EMA کا استعمال کرتے ہوئے رجحانات کا تعین کرنے کی بہت زیادہ وشوسنییتا ہے۔ جب دونوں رجحانات کا تعین کرتے ہیں تو ، آپریشن کی کامیابی کی شرح بہت زیادہ ہوتی ہے۔
اس کے علاوہ ، اسٹاپ اسٹاپ پوائنٹس کی ترتیب سے ، آپ کو زیادہ سے زیادہ نقصان سے بچنے میں مدد مل سکتی ہے۔
اس حکمت عملی کا بنیادی خطرہ یہ ہے کہ VWAP اور EMA غلط سگنل دے سکتے ہیں۔
اس کے علاوہ ، اسٹاپ نقصان کی ترتیب غیر مناسب ہوسکتی ہے ، اور ایک ہی نقصان کا خطرہ بہت زیادہ رہتا ہے۔
مذکورہ بالا مسائل کو حل کرنے کے لئے ، ہم VWAP اور EMA کے پیرامیٹرز کی ترتیبات کو بہتر بنا سکتے ہیں تاکہ وہ نئے رجحانات کے آغاز کو بہتر طور پر پہچان سکیں۔ اس کے ساتھ ساتھ ہم آہنگ اسٹاپ نقصان بھی ترتیب دے سکتے ہیں تاکہ اسٹاپ نقصان کو قیمت کے اتار چڑھاؤ کے ساتھ ایڈجسٹ کیا جاسکے۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
یہ حکمت عملی مجموعی طور پر ایک بہت ہی قابل اعتماد رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ رجحان کی سمت کا فیصلہ کرنے کے لئے 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")