
یہ حکمت عملی خرید و فروخت کے سگنل پیدا کرنے کے لئے قیمتوں اور حرکت پذیر اوسط کے ساتھ کراس پر مبنی ہے۔ یہ متعدد قسم کی حرکت پذیر اوسط اور جعلی بریک کو فلٹر کرنے کے لئے ایک فرق کے پیرامیٹرز فراہم کرتا ہے۔ اس حکمت عملی کا مقصد قیمتوں کے رجحانات کے موڑ کو پکڑنا ہے تاکہ رجحانات کی پیروی کی جاسکے۔
یہ حکمت عملی قیمت کے اختتامی قیمت پر مبنی ہے ، جس میں N لمبائی کی ایک چلتی اوسط کا حساب لگایا جاتا ہے۔ عام طور پر چلتی اوسط کی اقسام میں سادہ چلتی اوسط ((SMA) ، اشاریہ چلتی اوسط ((EMA)) ، وزن والی چلتی اوسط ((WMA)) وغیرہ شامل ہیں۔ پھر ایک کمیشن کی سطح مقرر کی جاتی ہے ، جیسے 5٪ ، اور اس کا حساب لگایا جاتا ہے اوپر کی پٹری ((موبائل اوسط کا 1.05 گنا) اور نیچے کی پٹری (موبائل اوسط کا 0.95 گنا) ۔ جب قیمت کھڑی قیمت سے اوپر کی پٹری سے گزرتی ہے تو ، خریدنے کا سگنل پیدا ہوتا ہے۔ جب قیمت کھڑی قیمت سے نیچے کی پٹری سے گزرتی ہے تو ، فروخت کا سگنل پیدا ہوتا ہے۔ اس طرح ، کچھ جعلی توڑ کو نظرانداز کیا جاسکتا ہے۔ اس کے علاوہ ، یہ حکمت عملی ایک بول پیرامیٹر شارٹ لائن آپریشنز فراہم کرتی ہے ، اس پیرامیٹر کو چالو کرنے کے لئے ، صرف فروخت کا سگنل پیدا کرنے کے لئے ، خالی استعمال کریں۔
یہ حکمت عملی مجموعی طور پر ایک زیادہ عام رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ قیمتوں اور چلتی اوسط کے تعلقات کا استعمال رجحانات کا فیصلہ کرنے کے لئے کرتا ہے ، اور کچھ لچک فراہم کرتا ہے۔ پیرامیٹرز کی اصلاح اور مناسب سگنل فلٹرنگ کے ذریعہ ، یہ ایک اچھی طرح سے کام کرنے والی مقداری حکمت عملی بن سکتی ہے۔
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
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/
// © RafaelPiccolo
//@version=4
strategy("Price X MA Cross", overlay=true)
typ = input("HMA", "MA Type", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "TEMA"])
len = input(100, minval=1, title="Length")
src = input(close, "Source", type=input.source)
tol = input(0, minval=0, title="Tolerance (%)", type=input.float)
shortOnly = input(false, "Short only")
tema(src, len)=>
ema1 = ema(src, len)
ema2 = ema(ema1, len)
ema3 = ema(ema2, len)
return = 3 * (ema1 - ema2) + ema3
getMAPoint(type, len, src)=>
return = type == "SMA" ? sma(src, len) : type == "EMA" ? ema(src, len) : type == "WMA" ? wma(src, len) : type == "HMA" ? hma(src, len) : type == "VWMA" ? vwma(src, len) : type == "RMA" ? rma(src, len) : tema(src, len)
ma = getMAPoint(typ, len, src)
upperTol = ma * (1 + tol/100)
lowerTol = ma * (1 - tol/100)
longCondition = crossover(close, upperTol)
shortCondition = crossunder(close, lowerTol)
if (shortCondition)
strategy.entry("Short", strategy.short)
if (longCondition)
if (shortOnly)
strategy.close("Short")
else
strategy.entry("Long", strategy.long)
plot(ma, "Moving Average", close > ma ? color.green : color.red, linewidth = 2)
t1 = plot(tol > 0 ? upperTol : na, transp = 70)
t2 = plot(tol > 0 ? lowerTol : na, transp = 70)
fill(t1, t2, color = tol > 0 ? color.blue : na)