حجم کے اشارے پر مبنی حکمت عملی کے بعد رجحان


تخلیق کی تاریخ: 2023-10-10 14:51:13 آخر میں ترمیم کریں: 2023-10-10 14:51:13
کاپی: 0 کلکس کی تعداد: 1032
1
پر توجہ دیں
1617
پیروکار

جائزہ

یہ حکمت عملی ٹریڈ حجم اشارے (VFI) کی بنیاد پر ٹریڈ ٹریکنگ ٹریڈنگ کو لاگو کرتی ہے۔ حکمت عملی اسٹاک کی قیمتوں میں اتار چڑھاؤ اور ٹریڈ حجم میں ہونے والی تبدیلیوں کا حساب کتاب کرکے ، مارکیٹ کے رجحان کی سمت کا اندازہ لگاتی ہے ، اور کم خرید و فروخت کو حاصل کرتی ہے۔

حکمت عملی کا اصول

  1. VFI اشارے کا حساب لگائیں: اسٹاک کی قیمتوں اور تجارت کی مقدار میں ارتقا کے مطابق VFI کی قدر کا حساب لگائیں ، جس میں ہموار علاج کے ذریعہ ہلچل ختم ہوجاتی ہے۔

  2. رجحان کی سمت کا تعین کریں: VFI اشارے پر 0 محور کو پائیڈ سگنل کے طور پر ، نیچے 0 محور کو پائیڈ سگنل کے طور پر۔

  3. ٹریڈنگ سگنل: تیز EMA پر سست EMA ، اور VFI پر خریدنے کی لائن پر زیادہ کام کریں؛ VFI کے نیچے فروخت کی لائن پر فین پوزیشن۔

  4. سٹاپ نقصان کا طریقہ: مقررہ سٹاپ نقصان کا تناسب مقرر کریں۔

اس حکمت عملی کا انحصار بنیادی طور پر VFI اشارے پر ہوتا ہے جس میں رجحان کی سمت کا تعین ہوتا ہے ، اور اس کے ساتھ ہی ایک مساوی نظام ہوتا ہے۔ VFI اشارے اسٹاک کی قیمتوں میں اتار چڑھاؤ اور تجارت کی مقدار میں تبدیلی کے ذریعے مارکیٹ کے جذبات کی عکاسی کرتا ہے ، یہ ایک رجحان سے متعلق اشارے ہے۔ قیمت کے ایک ہی اشارے کے مقابلے میں ، VFI اشارے کے فیصلے زیادہ جامع ہیں ، جو رجحان کے موڑ کے مقامات کو بہتر طور پر پہچان سکتے ہیں ، فلٹرنگ کے جھٹکے۔

اسٹریٹجک فوائد

  1. VFI اشارے ایک واحد قیمت اشارے کے مقابلے میں رجحانات کا اندازہ کرنے میں بہتر ہے ، جو زلزلے والے بازاروں اور جھوٹے وقفے کو مؤثر طریقے سے فلٹر کرسکتا ہے۔

  2. مساوی لائن سسٹم معاون فیصلہ ، VFI اشارے کو ہلکے شہر میں غلط سگنل دینے سے بچنے کے لئے۔

  3. فکسڈ سٹاپ نقصان پوائنٹ کنٹرول خطرے کا تعین، خطرے کے انتظام کے لئے فائدہ مند.

  4. رجحانات کی پیروی کرنے والے ماڈل کا استعمال کرتے ہوئے ، آپ کو مارکیٹ کے موڑ کے بارے میں اندازہ لگانے کی ضرورت نہیں ہے ، اور رجحانات کی پیروی کرنے سے آپ کو اضافی منافع مل سکتا ہے۔

  5. پیرامیٹرز کی ترتیب لچکدار ہے، مارکیٹ کے مطابق پیرامیٹرز کو ایڈجسٹ کیا جاسکتا ہے، مختلف ادوار اور اقسام کے مطابق.

اسٹریٹجک رسک

  1. بڑے پیمانے پر ہلچل والے بازاروں میں ، VFI اشارے غلط سگنل دے سکتے ہیں۔

  2. فکسڈ اسٹاپ نقصان کا نقطہ بہت بڑا یا بہت چھوٹا ہوسکتا ہے ، جس کی وجہ سے اسٹاپ نقصان بہت جلد یا بہت دیر سے ہوتا ہے۔

  3. اگر خرید و فروخت کے پیرامیٹرز کو غلط ترتیب دیا گیا ہے تو ، اس سے لین دین کی کثرت یا ضائع ہونے کا سبب بن سکتا ہے۔

  4. ٹرینڈ ٹریکنگ کی حکمت عملیوں میں الٹ کو پکڑنے کی صلاحیت نہیں ہے اور اس کے لئے بروقت اسٹاپ نقصان کی ضرورت ہے۔

  5. غلط پیرامیٹرز ابتدائی یا دیر سے داخلے کا سبب بن سکتے ہیں۔

حکمت عملی کی اصلاح

  1. VFI پیرامیٹرز کو ایڈجسٹ کریں ، اشارے کے حساب کو بہتر بنائیں۔

  2. اوسط لائن کی مدت کو ایڈجسٹ کریں ، سگنل ٹائمنگ کو بہتر بنائیں۔

  3. متحرک طور پر اسٹاپ نقصان کو ایڈجسٹ کریں ، اسٹاپ نقصان کو بہتر بنائیں۔

  4. دوسرے اشارے کے ساتھ مل کر ، سگنل کے معیار کو بہتر بنانے کے لئے فلٹر کریں۔

  5. بڑے اور چھوٹے دوروں کے لئے پیرامیٹرز کے مجموعے کو بہتر بنائیں۔

  6. مختلف اقسام کے پیرامیٹرز کی مضبوطی کی جانچ کرنا ، پیرامیٹرز کی موافقت کو بہتر بنانا۔

خلاصہ کریں۔

یہ حکمت عملی VFI اشارے پر مبنی ہے جو رجحان کی سمت کا تعین کرتی ہے ، اور اس کے ساتھ ساتھ ایکویلیئن سسٹم فلٹرنگ غلطی کے سگنل کے ساتھ کام کرتی ہے۔ اس رجحان کی پیروی کے ذریعے کم خرید و فروخت کو حاصل کیا جاسکتا ہے ، اس کے لئے کسی خاص الٹ کی پیش گوئی کرنے کی ضرورت نہیں ہے۔ حکمت عملی کا فائدہ یہ ہے کہ رجحان کو ایک واحد قیمت اشارے سے بہتر سمجھا جاسکتا ہے ، جو زلزلے کو مؤثر طریقے سے فلٹر کرسکتا ہے۔ اس کا بنیادی خطرہ یہ ہے کہ زلزلے والی مارکیٹ میں غلط سگنل جاری کیا جاسکتا ہے۔ پیرامیٹرز کو ایڈجسٹ کرنے اور دیگر اشارے کی مدد سے حکمت عملی کی استحکام کو بہتر بنایا جاسکتا ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-10-02 00:00:00
end: 2023-10-06 21:00:00
period: 3m
basePeriod: 1m
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/
// © mohanee
//This strategy is based on VFI indicator published by  UTS.  
//more details of VFI indicator can be found at  [url=http://mkatsanos.com/VFI.html]http://mkatsanos.com/VFI.html[/url] 
// I have added buy line and sell line to the indicator  and tested  SPY stock/index on one hour chart

//@version=4
strategy(title="VFI  strategy [based on VFI indicator published by  UTS]", overlay=false,pyramiding=2, default_qty_type=strategy.fixed,    initial_capital=10000, currency=currency.USD)


// Const
kMaColor = color.aqua
kNeutralColor = color.gray
kBearColor = color.red
kBullColor = color.green

kAlma = "ALMA"
kEma = "EMA"
kSma = "SMA"
kWma = "WMA"


// Input

vfi_length = input(8, title="Length", minval=1)  //default 130
vfi_coef = input(0.2, title="Coef", minval=0.1)
vfi_volCutoff = input(2.5, title="Volume Cutoff", minval=0.1)
vfi_smoothLen = input(3, title="Smoothing Period", minval=1)
vfi_smoothType = input(kEma, title="Smoothing Type", options=[kAlma, kEma, kSma, kWma])

//These are adde by me for the strategy purpose  BEGIN
vfi_buyLine = input(-4, title="Buy Line", minval=-10)
vfi_sellLine = input(5, title="Sell Line", minval=-10)
stopLoss = input(title="Stop Loss%", defval=5, minval=1)
//These are adde by me for the strategy purpose  END

vfi_longEMA = input(200, title="Long EMA", minval=1)
vfi_shortEMA1 = input(50, title="short EMA1", minval=1)
vfi_shortEMA2 = input(9, title="short EM2A", minval=1)

vfi_showTrend = input(false, title="Visualize Trend")
vfi_showFill = input(true, title="Apply Filling")
vfi_showMa = input(true, title="Show Moving Average")
vfi_maType = input(kSma, title="Moving Average Type", options=[kAlma, kEma, kSma, kWma])
vfi_maLength = input(30, title="Moving Average Length", minval=1)
vfi_almaOffset = input(0.85, title="• ALMA - Offset (global setting)", minval=0.0, maxval=1.0, step=0.05) // more smoothness (closer to 1) vs. more responsiveness (closer to 0)
vfi_almaSigma = input(6.0, title="• ALMA - Sigma (global setting)", minval=0.0, step=0.05) // the larger sigma the smoother ALMA


// Functionality

isRising(sig) =>
    sig > sig[1]
    
isFlat(sig) =>
    sig == sig[1]

vfi_trendColor(sig) =>
    isFlat(sig) ? kNeutralColor : isRising(sig) ? kBullColor : kBearColor
    
vfi_color(sig) =>
    isFlat(sig) ? kNeutralColor : sig > 0 ? kBullColor : kBearColor
    
osc_color(sig) =>
    sig == 0 ? kNeutralColor : sig > 0 ? kBullColor : kBearColor

smooth(t, sig, len) =>
    ma = float(sig)         // None
    if t == kSma            // Simple
        ma := sma(sig, len)
    if t == kEma            // Exponential
        ma := ema(sig, len)
    if t == kWma            // Weighted
        ma := wma(sig, len)
    if t == kAlma           // Arnaud Legoux
        ma := alma(sig, len, vfi_almaOffset, vfi_almaSigma)
    ma

calc_vfi(fviPeriod, smoothType, smoothLen, coef, vCoef) =>
    avg = nz(hlc3)
    inter = log(avg) - log(avg[1])
    vInter = stdev(inter, 30)
    cutOff = coef * vInter * close
    vAve = smooth(kSma, volume[1], fviPeriod)
    vMax = vAve * vCoef
    vC = min(volume, vMax)
    mf = avg - avg[1]
    vCp = iff(mf > cutOff, vC, iff(mf < -cutOff, -vC, 0))
    sVfi = sum(vCp, fviPeriod) / vAve
    vfi = smooth(smoothType, sVfi, smoothLen)
    
value_vfi = calc_vfi(vfi_length, vfi_smoothType, vfi_smoothLen, vfi_coef, vfi_volCutoff)
value_ma = smooth(vfi_maType, value_vfi, vfi_maLength)

longEMAval= ema(close, vfi_longEMA)
shortEMAval1= ema(close, vfi_shortEMA1)
shortEMAval2= ema(close, vfi_shortEMA2)

color_vfi = vfi_showTrend ? vfi_trendColor(value_vfi) : vfi_color(value_vfi)
color_osc = vfi_showFill ? osc_color(value_vfi) : na
color_ma = vfi_showMa ? kMaColor : na


// Drawings

plot_vfi = plot(value_vfi, title="VFI", color=color_vfi, linewidth=1)
plot_fill = plot(0, color=color_vfi, editable=false)
fill(plot_vfi, plot_fill, title="Oscillator Fill", color=color_osc, transp=75) 
hline(vfi_buyLine, color=color.green, title="Buy Line", linewidth=2, linestyle=hline.style_dashed)
hline(vfi_sellLine, color=color.purple, title="Sell Line", linewidth=2, linestyle=hline.style_dashed)
plot(value_ma, title="MA", color=color_ma, linewidth=2)

strategy.entry(id="VFI LE", long=true,  when=crossover(value_vfi,vfi_buyLine)  and ( shortEMAval1 >= longEMAval  ))

//strategy.close(id="VFI LE", comment="Exit",   when=crossunder(value_vfi,vfi_sellLine))
strategy.close(id="VFI LE", comment="TP Exit",   when=crossunder(value_vfi,vfi_sellLine) and close>strategy.position_avg_price)
//strategy.close(id="VFI LE", comment="Exit",   when=  (shortEMAval1 > shortEMAval2 )  and crossunder(close, shortEMAval2))

//stoploss
stopLossVal =   strategy.position_avg_price -  (strategy.position_avg_price*stopLoss*0.01) 
strategy.close(id="VFI LE", comment="SL Exit",   when=crossunder(value_vfi,vfi_sellLine) and close < stopLossVal)