اے ٹی آر اور اے ڈی ایکس فلٹرز کے ساتھ دوہری ای ایم اے کراس اوور ٹرینڈ کی پیروی کرنے والی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-15 15:53:57
ٹیگز:

img

جائزہ

یہ حکمت عملی مضبوط رجحانات کو ٹریک کرنے اور استحکام کے دوران خطرے کو کنٹرول کرنے کے لئے ATR اور ADX اشارے سے اضافی فلٹرز کے ساتھ رجحانات کی پیروی کے لئے کلاسیکی ڈبل EMA کراس اوور سسٹم کا استعمال کرتی ہے۔

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

یہ حکمت عملی بنیادی طور پر مندرجہ ذیل پر مبنی ہے:

  1. کراس اوور سگنل پیدا کرنے کے لئے تیز تر 8 پیریڈ ای ایم اے اور سست 20 پیریڈ ای ایم اے استعمال کریں۔ ای ایم اے خود رجحان کی پیروی کرنے والی خصوصیات رکھتے ہیں۔

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

  3. اے ڈی ایکس اشارے رجحان کی طاقت کا تعین کرتا ہے۔ 30 سے اوپر کی اے ڈی ایکس پڑھنے سے ایک مضبوط رجحان کی نشاندہی ہوتی ہے ، جس سے بروقت اسٹاپ نقصان ہوتا ہے۔

  4. طویل / مختصر انٹری ٹائمنگ کا تعین کرنے کے لئے بیل / ریچھ کے رجحانات کے ساتھ مل کر۔ بیل مارکیٹ میں سنہری صلیبوں پر طویل اور ریچھ مارکیٹ میں موت کے صلیبوں پر مختصر جائیں۔

  5. حجم فلٹر حجم میں توسیع جب داخل کرنے کے لئے.

  6. امریکی ڈالر کی طاقت کا تعین کرنے کے لئے ایک سادہ امریکی ڈالر انڈیکس کا استعمال کریں، مضبوط امریکی ڈالر کے دوران سٹاپ اور منافع کی حد میں توسیع کریں.

  7. اضافی طویل / مختصر وقت کی مدد کے لئے مارکیٹ کی مجموعی سمت کا تعین کرنے کے لئے سپر ٹرینڈ اشارے کا استعمال کریں۔

حکمت عملی میں رجحان اور نوسانات کے اشارے کو متحرک طور پر پیرامیٹرز کو ایڈجسٹ کرنے کے لئے جوڑتا ہے ، خطرات کو کنٹرول کرتے ہوئے رجحانات کو ٹریک کرتا ہے۔

حکمت عملی کے فوائد

  1. دوہری ای ایم اے نظام رجحان کا تعین فراہم کرتا ہے، ای ایم اے کی ہموار غلطیوں کو فلٹر کرنے کے ساتھ.

  2. اے ٹی آر-معمولی فلٹرز مختلف مارکیٹ کے ماحول کے لئے لچک کی اجازت دیتے ہیں.

  3. اے ڈی ایکس اور حجم اضافی جانچ پڑتال فراہم کرتے ہیں تاکہ کنسلٹیشن کے دوران وپساؤ سے بچنے کے لئے.

  4. امریکی ڈالر اور سپر ٹرینڈ کو مدنظر رکھتے ہوئے میکرو ٹرینڈ پر فیصلے کی درستگی میں اضافہ ہوتا ہے۔

  5. امریکی ڈالر کی طاقت کی بنیاد پر خطرے کا انتظام خود بخود ایڈجسٹ ہوتا ہے۔

  6. سادہ سنہری / مردہ کراس سگنل اور سٹاپ / منافع لے منطق کو لاگو کرنے اور بیک ٹسٹ کرنے میں آسان بناتا ہے.

اسٹریٹجی کے خطرات

  1. ڈبل ای ایم اے رجحان موڑ کے مقامات کا پتہ لگانے میں تاخیر کرتی ہے۔

  2. خراب اے ٹی آر پیرامیٹرز کا انتخاب بہت جارحانہ یا قدامت پسند ہوسکتا ہے۔

  3. ADX پیرامیٹرز کو بہتر بنانے کی ضرورت ہے، غلط طریقے سے مقرر اعلی پوائنٹس رجحانات کو یاد کر سکتے ہیں.

  4. امریکی ڈالر اور سپر ٹرینڈ رجحان کا تعین غلط ہوسکتا ہے۔

  5. سٹاپ نقصان بہت تنگ نقصانات میں اضافہ، بہت وسیع خطرات whipsaws.

بہتری کے خیالات

  1. ٹرن اوور پوائنٹ کا بہتر پتہ لگانے کے لئے MACD جیسے اشارے شامل کرنے پر غور کریں۔

  2. زیادہ تاریخی اعداد و شمار کے مقابلے میں ATR پیرامیٹرز کو بہتر بنائیں.

  3. مختلف ADX پیرامیٹرز کی جانچ کریں اور اعلی نقطہ کی حد کو بہتر بنائیں.

  4. امریکی ڈالر اور مارکیٹ کے رجحان تجزیہ کے لئے مزید متغیرات شامل کریں.

  5. بیک ٹیسٹ کے اعداد و شمار سے زیادہ سے زیادہ سٹاپ نقصان کا فیصد شمار کریں.

  6. ٹریلنگ یا لوڈشیلٹر اسٹاپ کے ساتھ تجربہ.

  7. انٹری سائز اور انعقاد کی مدت کو بہتر بنانا جاری رکھیں.

نتیجہ

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


/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Refactored Advanced EMA Cross with Normalized ATR Filter, Controlling ADX", shorttitle="ALP V5", overlay=true)

// Initialize variables to track if a buy order has been placed and number of periods since the last buy
var bool hasBought = false
var int barCountSinceBuy = 0

// Define EMA periods
emaShort = ta.ema(close, 8)
emaLong = ta.ema(close, 20)

// Define ATR period and normalization
atrLength = 14
atrValue = ta.atr(atrLength)
maxHistoricalATR = ta.highest(atrValue, 20)
minHistoricalATR = ta.lowest(atrValue, 20)
normalizedATR = (atrValue - minHistoricalATR) / (maxHistoricalATR - minHistoricalATR)

// Define ADX parameters
adxValue = ta.rma(close, 14)
adxHighLevel = 30
isADXHigh = adxValue > adxHighLevel

// Initialize risk management variables
var float stopLossPercent = na
var float takeProfitPercent = na
var float trailingStop = na

// Calculate USD strength (simplified)
usd_strength = close / ta.ema(close, 50) - 1

// Adjust risk parameters based on USD strength
if (usd_strength > 0)
    stopLossPercent := 3
    takeProfitPercent := 6
else
    stopLossPercent := 4
    takeProfitPercent := 8

// Initialize position variable
var float positionPrice = na

// Volume filter
minVolume = ta.sma(volume, 14) * 1.5
isVolumeHigh = volume > minVolume



// Piyasa yönü için süper trend göstergesi
[supertrendValue, supertrendDirection] = ta.supertrend(4, 14)  // Use a factor of 3 and ATR period of 10
bool isBullMarket = supertrendDirection < 0
bool isBearMarket = supertrendDirection > 0

// Yükselen piyasa için alım koşulu
buyConditionBull = isBullMarket and ta.crossover(emaShort, emaLong) and normalizedATR > 0.2
// Düşen piyasa için alım koşulu
buyConditionBear = isBearMarket and ta.crossover(emaShort, emaLong) and normalizedATR > 0.5
// Genel alım koşulu
buyCondition = buyConditionBull or buyConditionBear

// Yükselen ve düşen piyasalar için farklı satış koşulları
sellConditionBull = isBullMarket and (ta.crossunder(emaShort, emaLong) or isADXHigh)
sellConditionBear = isBearMarket and (ta.crossunder(emaShort, emaLong) or isADXHigh)
// Genel satış koşulu
sellCondition = sellConditionBull or sellConditionBear


// Buy condition
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    positionPrice := close
    hasBought := true // Set the flag to true when a buy order is placed
    barCountSinceBuy := 0 // Reset the bar counter when a buy order is placed

// Increase the bar counter if a buy has been executed
if (hasBought)
    barCountSinceBuy := barCountSinceBuy + 1

// Calculate stop-loss and take-profit levels
longStopLoss = positionPrice * (1 - stopLossPercent / 100)
longTakeProfit = positionPrice * (1 + takeProfitPercent / 100)


// Final Sell condition, now also checks if a buy has occurred before and if at least 5 periods have passed
finalSellCondition = sellCondition and hasBought and barCountSinceBuy >= 3 and isVolumeHigh

if (finalSellCondition)
    strategy.close("Buy")
    positionPrice := na
    hasBought := false // Reset the flag when a sell order is placed
    barCountSinceBuy := 0 // Reset the bar counter when a buy order is closed

// Implement stop-loss, take-profit, and trailing stop
strategy.exit("Stop Loss", "Buy", stop=longStopLoss)
strategy.exit("Take Profit", "Buy", limit=longTakeProfit)
//strategy.exit("Trailing Stop", "Buy", trail_price=close, trail_offset=trailingStop * close / 100)


var label l = na

if (buyCondition)
    l := label.new(bar_index, high, text="buy triggered " + str.tostring(usd_strength))
    label.delete(l[1])

if (finalSellCondition)
    l := label.new(bar_index, high, text="sell triggered " + str.tostring(usd_strength))
    label.delete(l[1])

// Plot signals
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=finalSellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")


مزید