وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ای ٹی آر اتار چڑھاؤ فلٹر کے ساتھ ڈی ای ایم اے اور ای ایم اے کراس اوور پر مبنی رفتار کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-08 14:14:57
ٹیگز:

img

I. حکمت عملی کا جائزہ

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

II. حکمت عملی کی منطق

  1. ڈی ای ایم اے اشارے کا حساب لگائیں۔ ڈی ای ایم اے دوہری ای ایم اے کا استعمال کرتے ہوئے ڈبل ایکسپونینشل چلتی اوسط ہے ، جو قلیل مدتی مارکیٹ شور کو فلٹر کرسکتا ہے اور سگنل کی درستگی کو بہتر بنا سکتا ہے۔

  2. ای ایم اے اشارے کا حساب لگائیں۔ ای ایم اے ایکسپونینشل موونگ ایوریج ہے جو قیمتوں میں تبدیلیوں پر تیزی سے رد عمل ظاہر کرتی ہے۔

  3. اے ٹی آر اتار چڑھاؤ انڈیکس کا حساب لگائیں۔ اے ٹی آر مارکیٹ کی اتار چڑھاؤ اور خطرے کی سطح کی پیمائش کرتا ہے۔ بڑھتی ہوئی اے ٹی آر میں اتار چڑھاؤ میں اضافہ اور قلیل مدتی واپسی کا زیادہ امکان ظاہر ہوتا ہے۔

  4. جب ڈی ای ایم اے ای ایم اے سے نیچے گزرتا ہے اور اے ٹی آر حد سے اوپر بڑھتا ہے تو ، اس سے قلیل مدتی نیچے کے رجحان کا آغاز اور مارکیٹ کا خطرہ بڑھتا ہے۔ حکمت عملی سیکیورٹی کو مختصر کرتی ہے۔

  5. جب ڈی ای ایم اے ای ایم اے کے اوپر دوبارہ عبور کرتا ہے تو ، یہ قیمت کی حمایت اور اوپر کی چھلانگ کا اشارہ کرتا ہے۔ حکمت عملی مختصر پوزیشن کو بند کرتی ہے۔

III. فوائد

  1. ڈبل ای ایم اے اور ای ایم اے کا امتزاج سگنل کی درستگی کو مؤثر طریقے سے بہتر بنا سکتا ہے۔

  2. اے ٹی آر اتار چڑھاؤ فلٹر کم خطرے والے وِپسا تجارت کو ختم کرتا ہے۔

  3. مختصر انعقاد کی مدت مختصر مدت کی رفتار کی نگرانی کے لئے موزوں ہے اور طویل عرصے سے ہیجنگ سے بچتا ہے.

  4. سادہ اور واضح منطق، سمجھنے اور لاگو کرنے کے لئے آسان.

IV. خطرات

  1. غلط اے ٹی آر پیرامیٹرز تجارتی مواقع سے محروم ہوسکتے ہیں۔

  2. ایک ہی وقت میں طویل اور مختصر دونوں سگنلز کی نگرانی کرنے کی ضرورت ہے، آپریشن کی مشکل میں اضافہ.

  3. قلیل مدتی مارکیٹ کی اتار چڑھاؤ سے متاثر.

حل: بیک ٹسٹنگ کے ذریعے پیرامیٹر کی اصلاح۔ ایک طرف پر توجہ مرکوز کرنے کے لئے منطق کو آسان بنائیں۔ مناسب طریقے سے اسٹاپ نقصان کی سطح کو آرام کریں۔

V. اصلاح کی ہدایات

  1. بہترین مجموعے تلاش کرنے کے لئے DEMA اور EMA کے لئے پیرامیٹرز کو بہتر بنائیں.

  2. بہترین اتار چڑھاؤ بینچ مارک کا تعین کرنے کے لئے اے ٹی آر بیک بیک مدت کو بہتر بنائیں۔

  3. سگنل کی درستگی کو بہتر بنانے کے لئے BOLL بینڈ جیسے دیگر اشارے شامل کریں.

  4. سٹاپ نقصان متعارف کروائیں اور زیادہ مسلسل منافع میں مقفل کرنے کے لئے منافع کے قوانین کو لے لو.

VI. نتیجہ

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


/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 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/
// © Qorbanjf

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Qorbanjf

//@version=4
strategy("Qorban: DEMA/EMA & VOL Short ONLY", shorttitle="DEMA/EMA & VOL SHORT", overlay=true)

// DEMA
length = input(10, minval=1, title="DEMA LENGTH")
src = input(close, title="Source")
e1 = ema(src, length)
e2 = ema(e1, length)
dema1 = 2 * e1 - e2
plot(dema1, "DEMA", color=color.yellow)

//EMA
len = input(25, minval=1, title="EMA Length")
srb = input(close, title="Source")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
ema1 = ema(srb, len)
plot(ema1, title="EMA", color=color.blue, offset=offset)

// get ATR VALUE
atr = atr(14)

//ATRP (Average True Price in precentage)

// Inputs
atrTimeFrame = input("D", title="ATR Timeframe", type=input.resolution)
atrLookback = input(defval=14,title="ATR Lookback Period",type=input.integer)
useMA = input(title = "Show Moving Average?", type = input.bool, defval = true)
maType = input(defval="EMA", options=["EMA", "SMA"], title = "Moving Average Type")
maLength = input(defval = 20, title = "Moving Average Period", minval = 1)
slType = input(title="Stop Loss ATR / %", type=input.float, defval=5.0, step=0.1)
slMulti = input(title="SL Multiplier", type=input.float, defval=1.0, step=0.1)
minimumProfitPercent = input(title="Minimum profit %", type=input.float, defval=20.00)

// ATR Logic
// atrValue = atr(atrLookback)
// atrp = (atrValue/close)*100
// plot(atrp, color=color.white, linewidth=2, transp = 30)

atrValue = security(syminfo.tickerid, atrTimeFrame, atr(atrLookback))
atrp = (atrValue/close)*100

// Moving Average Logic
ma(maType, src, length) =>
    maType == "EMA" ? ema(src, length) : sma(src, length) //Ternary Operator (if maType equals EMA, then do ema calc, else do sma calc)
maFilter = security(syminfo.tickerid, atrTimeFrame, ma(maType, atrp, maLength))


// Determine percentage of open profit
var entry = 0.0
distanceProfit = low - entry
distanceProfitPercent = distanceProfit / entry

//Determin if we have a long entry signal OR a sell position signal
profitSignal = minimumProfitPercent == 0.0 or distanceProfitPercent >= minimumProfitPercent
shortSignal = crossunder(dema1, ema1) and atrp > maFilter and strategy.position_size == 0 and not na(atr)
exitSignal = profitSignal and strategy.position_size !=0 and  crossover(dema1, ema1)


// === INPUT BACKTEST RANGE ===
//FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
//FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
//FromYear  = input(defval = 2017, title = "From Year", minval = 2000)
//ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
//ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
//ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

//Invert trade direction & flipping 
//tradInvert = input(defval = false, title = "invert trade direction")
//MOM_MR = input(defval=1, title = "MOM = 1 / MR = -1", minval=-1, maxval=1)
//plots=input(false, title="Show plots?")

// Get stop loss (in pips AND percentage distance)
shortStop = highest(high, 4) - (atr * slMulti)
shortStopPercent = close - (close * slMulti)

// Save long stop & target prices (used for drawing data to the chart & deetermining profit)
var shortStopSaved = 0.0
var shortTargetSaved = 0.0
enterShort = false
if shortSignal
    shortStopSaved := slType ? shortStop : shortStopPercent
    enterShort:= true
    entry := close


// long conditions 
//enterLong = crossover(dema1, ema1) and atrp < maFilter
//exitSignal => crossunder(dema1, ema1)

//Enter trades when conditions are met
strategy.entry("short", strategy.short, when=enterShort, comment="SHORT")

//place exit orders (only executed after trades are active)
strategy.exit(id="Short exit",
 from_entry="short",
 limit=exitSignal ? close : na,
 stop=shortStopSaved,
 when=strategy.position_size > 0,
 comment="end short")
 

//short strategy
//goShort() => crossunder(dema1, ema1) and atrp > maFilter
//KillShort() => crossover(dema1, ema1) 
//strategy.entry("SHORT", strategy.short, when = goShort())
//strategy.close("COVER", when = KillShort())


مزید