یہ حکمت عملی ٹریڈ حجم اشارے (VFI) کی بنیاد پر ٹریڈ ٹریکنگ ٹریڈنگ کو لاگو کرتی ہے۔ حکمت عملی اسٹاک کی قیمتوں میں اتار چڑھاؤ اور ٹریڈ حجم میں ہونے والی تبدیلیوں کا حساب کتاب کرکے ، مارکیٹ کے رجحان کی سمت کا اندازہ لگاتی ہے ، اور کم خرید و فروخت کو حاصل کرتی ہے۔
VFI اشارے کا حساب لگائیں: اسٹاک کی قیمتوں اور تجارت کی مقدار میں ارتقا کے مطابق VFI کی قدر کا حساب لگائیں ، جس میں ہموار علاج کے ذریعہ ہلچل ختم ہوجاتی ہے۔
رجحان کی سمت کا تعین کریں: VFI اشارے پر 0 محور کو پائیڈ سگنل کے طور پر ، نیچے 0 محور کو پائیڈ سگنل کے طور پر۔
ٹریڈنگ سگنل: تیز EMA پر سست EMA ، اور VFI پر خریدنے کی لائن پر زیادہ کام کریں؛ VFI کے نیچے فروخت کی لائن پر فین پوزیشن۔
سٹاپ نقصان کا طریقہ: مقررہ سٹاپ نقصان کا تناسب مقرر کریں۔
اس حکمت عملی کا انحصار بنیادی طور پر VFI اشارے پر ہوتا ہے جس میں رجحان کی سمت کا تعین ہوتا ہے ، اور اس کے ساتھ ہی ایک مساوی نظام ہوتا ہے۔ VFI اشارے اسٹاک کی قیمتوں میں اتار چڑھاؤ اور تجارت کی مقدار میں تبدیلی کے ذریعے مارکیٹ کے جذبات کی عکاسی کرتا ہے ، یہ ایک رجحان سے متعلق اشارے ہے۔ قیمت کے ایک ہی اشارے کے مقابلے میں ، VFI اشارے کے فیصلے زیادہ جامع ہیں ، جو رجحان کے موڑ کے مقامات کو بہتر طور پر پہچان سکتے ہیں ، فلٹرنگ کے جھٹکے۔
VFI اشارے ایک واحد قیمت اشارے کے مقابلے میں رجحانات کا اندازہ کرنے میں بہتر ہے ، جو زلزلے والے بازاروں اور جھوٹے وقفے کو مؤثر طریقے سے فلٹر کرسکتا ہے۔
مساوی لائن سسٹم معاون فیصلہ ، VFI اشارے کو ہلکے شہر میں غلط سگنل دینے سے بچنے کے لئے۔
فکسڈ سٹاپ نقصان پوائنٹ کنٹرول خطرے کا تعین، خطرے کے انتظام کے لئے فائدہ مند.
رجحانات کی پیروی کرنے والے ماڈل کا استعمال کرتے ہوئے ، آپ کو مارکیٹ کے موڑ کے بارے میں اندازہ لگانے کی ضرورت نہیں ہے ، اور رجحانات کی پیروی کرنے سے آپ کو اضافی منافع مل سکتا ہے۔
پیرامیٹرز کی ترتیب لچکدار ہے، مارکیٹ کے مطابق پیرامیٹرز کو ایڈجسٹ کیا جاسکتا ہے، مختلف ادوار اور اقسام کے مطابق.
بڑے پیمانے پر ہلچل والے بازاروں میں ، VFI اشارے غلط سگنل دے سکتے ہیں۔
فکسڈ اسٹاپ نقصان کا نقطہ بہت بڑا یا بہت چھوٹا ہوسکتا ہے ، جس کی وجہ سے اسٹاپ نقصان بہت جلد یا بہت دیر سے ہوتا ہے۔
اگر خرید و فروخت کے پیرامیٹرز کو غلط ترتیب دیا گیا ہے تو ، اس سے لین دین کی کثرت یا ضائع ہونے کا سبب بن سکتا ہے۔
ٹرینڈ ٹریکنگ کی حکمت عملیوں میں الٹ کو پکڑنے کی صلاحیت نہیں ہے اور اس کے لئے بروقت اسٹاپ نقصان کی ضرورت ہے۔
غلط پیرامیٹرز ابتدائی یا دیر سے داخلے کا سبب بن سکتے ہیں۔
VFI پیرامیٹرز کو ایڈجسٹ کریں ، اشارے کے حساب کو بہتر بنائیں۔
اوسط لائن کی مدت کو ایڈجسٹ کریں ، سگنل ٹائمنگ کو بہتر بنائیں۔
متحرک طور پر اسٹاپ نقصان کو ایڈجسٹ کریں ، اسٹاپ نقصان کو بہتر بنائیں۔
دوسرے اشارے کے ساتھ مل کر ، سگنل کے معیار کو بہتر بنانے کے لئے فلٹر کریں۔
بڑے اور چھوٹے دوروں کے لئے پیرامیٹرز کے مجموعے کو بہتر بنائیں۔
مختلف اقسام کے پیرامیٹرز کی مضبوطی کی جانچ کرنا ، پیرامیٹرز کی موافقت کو بہتر بنانا۔
یہ حکمت عملی 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)