ای ایم اے ڈیلپ کراس ٹرینڈ اسٹریٹیجی کے بعد

مصنف:چاؤ ژانگ، تاریخ: 2023-10-17 17:02:30
ٹیگز:

img

جائزہ

یہ حکمت عملی سگنل کے بعد رجحان پیدا کرنے کے لئے مختلف لمبائی کے دو EMAs کے ڈھلوانوں کے کراس کا استعمال کرتی ہے۔ ڈیفالٹ کے طور پر ، 130 اور 400 استعمال کیے جاتے ہیں ، جو بہت اچھی کارکردگی کا مظاہرہ کرتے ہیں۔

اسٹریٹجی کو مارکیٹ میں داخل کرنے کی شرائط یہ ہیں:

  • تیز جھکاو > سست جھکاو اور قیمت > ای ایم اے 200: لانگ جائیں
  • تیز ڈیلپ < سست ڈیلپ اور قیمت < ای ایم اے 200: شارٹ میں جائیں

جب سادہ ڈھلوان مخالف سمت میں عبور کرتے ہیں، تو یہ پوزیشن بند کر دیتا ہے۔

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

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

اس کا لطف اٹھائیں!

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

اس حکمت عملی کا بنیادی مقصد مختلف لمبائی کے ساتھ دو EMAs کے جھکاو کا موازنہ کرنا ہے.

سب سے پہلے، 130 اور 400 کی لمبائی کے ساتھ EMAs کا حساب لگایا جاتا ہے، پھر ہر ایک کے ڈھلوانوں کا حساب لگایا جاتا ہے، پھر لمبائی 3 کے EMAs ہر ڈھلوان پر ہموار ڈھلوان منحنی خطوط حاصل کرنے کے لئے حساب لگایا جاتا ہے.

جب تیز EMA ڈھلوان سست EMA ڈھلوان کے اوپر عبور کرتا ہے تو ، خرید کا اشارہ پیدا ہوتا ہے۔ جب تیز EMA ڈھلوان سست EMA ڈھلوان سے نیچے عبور کرتا ہے تو ، فروخت کا اشارہ پیدا ہوتا ہے۔

شور کو فلٹر کرنے کے لئے، 200 مدت EMA کو رجحان فلٹر کے طور پر استعمال کیا جا سکتا ہے، صرف اس وقت طویل سگنل پر غور کیا جاتا ہے جب قیمت EMA سے اوپر ہے، اور مختصر سگنل صرف اس وقت جب نیچے ہے.

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

جب تیز اور سست جھکاو الٹ کر پار ہوتے ہیں تو، منافع / نقصانات کو روکنے کے لئے پوزیشنیں بند کردی جاتی ہیں.

فوائد کا تجزیہ

  1. اشارے پیدا کرنے کے لئے ڈھلوان کراس کا استعمال کرتے ہوئے مؤثر طریقے سے رجحانات کو ٹریک کر سکتا ہے

  2. EMA مدت کے مجموعوں کو ایڈجسٹ کرنا مختلف مارکیٹ کے حالات کے مطابق ڈھال سکتا ہے

  3. ٹرینڈ فلٹر ہلکی قیمت کی کارروائی سے گمراہ ہونے سے بچتا ہے

  4. اتار چڑھاؤ فلٹر غلط سگنل کو فلٹر کرتا ہے

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

  6. متعدد ٹائم فریم پر استعمال کیا جا سکتا ہے

خطرے کا تجزیہ

  1. بڑے پیمانے پر مارکیٹوں میں اکثر کھولنے اور بند ہونے کا امکان ہے

  2. غیر مناسب EMA ادوار رجحان موڑ کے مقامات کو یاد کر سکتے ہیں

  3. پیرامیٹرز کو بدلتے ہوئے مارکیٹ کے حالات کے مطابق ایڈجسٹ کیا جانا چاہئے

  4. ایم اے سسٹم کی طرح، بڑے رجحانات انتہائی حد تک الٹ سکتے ہیں

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

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

  2. اثاثوں کی خصوصیات اور مارکیٹ کے حالات کے مطابق پیرامیٹرز کا انتخاب کریں

  3. خطرے کو کنٹرول کرنے کے لئے سٹاپ نقصان کی حکمت عملی شامل کرنے پر غور کریں

  4. ای ایم اے کی مدت کو متحرک طور پر ایڈجسٹ کرنے پر غور کریں

  5. مختلف اتار چڑھاؤ کی حد کی قیمتوں کا تجربہ کریں

  6. وقت کے فریموں میں ٹیسٹ کی تاثیر

خلاصہ

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


/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// strategy(title="Slopes",initial_capital=1000, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.06, slippage = 2, default_qty_value=30, overlay=false)

//definizione input

start = timestamp(input(2018, "start year"), input(1, "start month"), input(1, "start day"), 00, 00)
end = timestamp(input(2020, "end year"), input(1, "end month"), input(1, "end day"), 00, 00)

average = input (title="Source MA Type", type=input.string, defval="EMA",options=["EMA","SMA"])

len1=input(130,title="Fast MA Length")
len2=input(400,title="Slow MA Length")

smoothingavg = input (title="Smoothing MAs Type", type=input.string, defval="EMA",options=["EMA","SMA"])
smoothingavglen = input (3,title="Smoothing MAs Length")

trendfilter=input(true,title="Trend Filter")
trendfilterperiod=input(200,title="Trend Filter MA Period")
trendfiltertype=input (title="Trend Filter MA Type", type=input.string, defval="EMA",options=["EMA","SMA"])

volatilityfilter=input(false,title="Volatility Filter")
volatilitydelta=input(0.0003,step=0.0001,title="Delta Slopes EMA")

//variabili

m1 = if average == "EMA" 
    ema(close,len1)
else
    sma(close,len1)

m2=if average == "EMA" 
    ema(close,len2)
else
    sma(close,len2)

slp1=(m1-m1[1])/m1
slp2=(m2-m2[1])/m2

e1=if smoothingavg == "EMA" 
    ema(slp1,smoothingavglen)
else
    sma(slp1,smoothingavglen)

e2=if smoothingavg == "EMA" 
    ema(slp2,smoothingavglen)
else
    sma(slp2,smoothingavglen)

plot(e1,color=color.yellow)
plot(e2,color=color.red)
//plot (abs(e1-e2),color=color.white)
//plot (ema(e1-e2,9),color=color.yellow)

//variabili accessorie e condizioni

TrendConditionL=if trendfiltertype =="EMA"
    close>ema(close,trendfilterperiod)
else
    close>sma(close,trendfilterperiod)
    
TrendConditionS=if trendfiltertype =="EMA"
    close<ema(close,trendfilterperiod)
else
    close<sma(close,trendfilterperiod)
    
VolatilityCondition = abs(e1-e2) > volatilitydelta

ConditionEntryL= if trendfilter == true
    if volatilityfilter == true
        e1>e2 and TrendConditionL and VolatilityCondition
    else
        e1>e2 and TrendConditionL
else
    if volatilityfilter == true
        e1>e2 and VolatilityCondition
    else 
        e1>e2

ConditionEntryS= if trendfilter == true
    if volatilityfilter == true
        e1<e2 and TrendConditionS and VolatilityCondition
    else 
        e1<e2 and TrendConditionS
else
    if volatilityfilter == true
        e1<e2 and VolatilityCondition
    else
        e1<e2

ConditionExitL=crossunder(e1,e2)
ConditionExitS=crossover(e1,e2)

if true
    if ConditionExitS
        if strategy.position_size < 0
            strategy.close("SLPShort")

if true
    if ConditionExitL
        if strategy.position_size > 0
            strategy.close("SLPLong")

if true
    if ConditionEntryL
        strategy.entry ("SLPLong",long=true)
        
if true
    if ConditionEntryS 
        strategy.entry("SLPShort",long=false)

مزید