ڈبل EMA گولڈن کراس ٹریڈنگ حکمت عملی


تخلیق کی تاریخ: 2023-12-07 15:08:57 آخر میں ترمیم کریں: 2023-12-07 15:08:57
کاپی: 0 کلکس کی تعداد: 701
1
پر توجہ دیں
1619
پیروکار

ڈبل EMA گولڈن کراس ٹریڈنگ حکمت عملی

جائزہ

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

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

یہ حکمت عملی 8 اور 20 دوروں کے ای ایم اے کا استعمال کرتے ہوئے ڈبل ای ایم اے گولڈ کراس سسٹم کی تعمیر کرتی ہے۔ جب مختصر دورانیہ ای ایم اے پر طویل دورانیہ ای ایم اے کو عبور کرتا ہے تو خریدنے کا اشارہ پیدا ہوتا ہے۔

اس کے علاوہ، پالیسی میں فلٹرنگ کے لیے کئی معاون اشارے بھی رکھے گئے ہیں:

  1. 14 سائیکل اے ٹی آر ، معیاری علاج کے بعد ، مارکیٹ میں قیمتوں میں معمولی اتار چڑھاؤ کو فلٹر کرتا ہے۔

  2. 14 دورانیہ ADX ، رجحان کی شناخت کے لئے استعمال ہونے والی طاقت صرف ایک مضبوط رجحان کے دوران تجارتی سگنل پر غور کریں

  3. 14 سائیکل ٹرانزیکشن ایس ایم اے ، کم ٹرانزیکشن ٹائم پوائنٹس کو فلٹر کریں۔

  4. 414 سائیکل سپر ٹرینڈ اشارے ، جو ڈوبے ہوئے بازار کی سمت کا تعین کرتا ہے۔

ای ایم اے گولڈ کراسنگ رجحان کی سمت ، اے ٹی آر معیاری ، ADX اور حجم کی شرائط کو پورا کرنے کے بعد ہی خریدنے کا اشارہ کرتا ہے۔

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

  1. ملٹی انڈیکیٹرز کا مجموعہ ، زیادہ قابل اعتماد

اس حکمت عملی میں ای ایم اے ، اے ٹی آر ، اے ڈی ایکس ، سپر ٹرینڈ اور دیگر متعدد اشارے شامل ہیں ، جو ایک دوسرے کے ساتھ مل کر ایک مضبوط سگنل فلٹرنگ سسٹم تشکیل دیتے ہیں ، جس میں اعلی وشوسنییتا ہے۔

  1. پیرامیٹرز کو ایڈجسٹ کیا جا سکتا ہے

اے ٹی آر معیاری قیمت کی قیمت ، اے ڈی ایکس قیمت ، اور پوزیشن کی مدت جیسے پیرامیٹرز کو عملی حالات کے مطابق بہتر بنایا جاسکتا ہے ، اور حکمت عملی میں زیادہ لچک ہے۔

  1. فرسودہ مارکیٹوں کی تفریق

سپر ٹرینڈ انڈیکس کے ذریعہ خالی بازاروں کا فیصلہ کریں ، خالی بازاروں کے لئے مختلف پیرامیٹرز کے معیار کا استعمال کریں ، تاکہ مواقع سے محروم نہ ہوں۔

اسٹریٹجک رسک

  1. پیرامیٹرز کو بہتر بنانا مشکل ہے

حکمت عملی کے پیرامیٹرز کا مجموعہ پیچیدہ ہے ، اصلاح کرنا مشکل ہے ، اور زیادہ سے زیادہ پیرامیٹرز کو تلاش کرنے کے لئے بہت زیادہ ریٹرننگ کی ضرورت ہے۔

  1. اشارے کی خرابی کا خطرہ

متعدد فلٹرنگ کے باوجود ، غلط ٹرگر کا خطرہ موجود ہے کیونکہ اشارے کی نوعیت پسماندہ ہے۔ اسٹاپ نقصان کی تھیوری کو مکمل طور پر غور کرنے کی ضرورت ہے۔

  1. تجارت کی کم تعدد

متعدد اشارے اور ہلچل کی وجہ سے ، اسٹریٹجک تجارت کی تعدد کم ہے ، اور طویل عرصے تک کوئی تجارت نہیں ہوسکتی ہے۔

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

  1. اصلاحی پیرامیٹرز کا مجموعہ

زیادہ سے زیادہ ریٹرننگ کے اعداد و شمار کے ذریعہ اشارے کے پیرامیٹرز کا بہترین مجموعہ تلاش کریں.

  1. مشین سیکھنے میں اضافہ

بہت سارے تاریخی اعداد و شمار کی بنیاد پر ، مشین لرننگ الگورتھم کا استعمال کرتے ہوئے حکمت عملی کے پیرامیٹرز کو خود بخود بہتر بنانا ، حکمت عملی کی موافقت کو یقینی بنانا۔

  1. مارکیٹ کے مزید عوامل پر غور کریں

مارکیٹ کی ساخت، جذبات اور دیگر عوامل کے بارے میں مزید اشارے کے ساتھ، حکمت عملی کی تنوع کو فروغ دینا.

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//Description:
//This strategy is a refactored version of an EMA cross strategy with a normalized ATR filter and ADX control. 
//It aims to provide traders with signals for long positions based on market conditions defined by various indicators.

//How it Works:
//1. EMA: Uses short (8 periods) and long (20 periods) EMAs to identify crossovers.
//2. ATR: Uses a 14-period ATR, normalized to its 20-period historical range, to filter out noise.
//3. ADX: Uses a 14-period RMA to identify strong trends.
//4. Volume: Filters trades based on a 14-period SMA of volume.
//5. Super Trend: Uses a Super Trend indicator to identify the market direction.

//How to Use:
//- Buy Signal: Generated when EMA short crosses above EMA long, and other conditions like ATR and market direction are met.
//- Sell Signal: Generated based on EMA crossunder and high ADX value.

//Originality and Usefulness:
//This script combines EMA, ATR, ADX, and Super Trend indicators to filter out false signals and identify more reliable trading opportunities. 
//USD Strength is not working, just simulated it as PSEUDO CODE: [close>EMA(50)]

//Strategy Results:
//- Account Size: $1000
//- Commission: Not considered
//- Slippage: Not considered
//- Risk: Less than 5% per trade
//- Dataset: Aim for more than 100 trades for sufficient sample size

//Note: This script should be used for educational purposes and should not be considered as financial advice.

//Chart:
//- The script's output is plotted as Buy and Sell signals on the chart.
//- No other scripts are included for clarity.
//- Have tested with 30mins period
//- You are encouraged to play with parameters, let me know if you 

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

// Initialize variables
var bool hasBought = false
var int barCountSinceBuy = 0

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

// Define ATR parameters
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

// Calculate USD strength
// That's not working as usd strenght, since I couldn't manage to get usd strength 
//I've just simulated it as if the current close price is above 50 days average (it's likely a bullish trend), usd is strong (usd_strenth variable is positive)
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

// Market direction using Super Trend indicator
[supertrendValue, supertrendDirection] = ta.supertrend(4, 14)
bool isBullMarket = supertrendDirection < 0
bool isBearMarket = supertrendDirection > 0

// Buy conditions for Bull and Bear markets
buyConditionBull = isBullMarket and ta.crossover(emaShort, emaLong) and normalizedATR > 0.2
buyConditionBear = isBearMarket and ta.crossover(emaShort, emaLong) and normalizedATR > 0.5
buyCondition = buyConditionBull or buyConditionBear

// Sell conditions for Bull and Bear markets
sellConditionBull = isBullMarket and (ta.crossunder(emaShort, emaLong) or isADXHigh)
sellConditionBear = isBearMarket and (ta.crossunder(emaShort, emaLong) or isADXHigh)
sellCondition = sellConditionBull or sellConditionBear

// Final Buy and Sell conditions
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    positionPrice := close
    hasBought := true
    barCountSinceBuy := 0

if (hasBought)
    barCountSinceBuy := barCountSinceBuy + 1

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

// Final Sell condition
finalSellCondition = sellCondition and hasBought and barCountSinceBuy >= 3 and isVolumeHigh

if (finalSellCondition)
    strategy.close("Buy")
    positionPrice := na
    hasBought := false
    barCountSinceBuy := 0

// Implement stop-loss and take-profit
strategy.exit("Stop Loss", "Buy", stop=longStopLoss)
strategy.exit("Take Profit", "Buy", limit=longTakeProfit)

// 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")