منتقل اوسط اچھال کی حکمت عملی


تخلیق کی تاریخ: 2023-12-08 16:47:39 آخر میں ترمیم کریں: 2023-12-08 16:47:39
کاپی: 0 کلکس کی تعداد: 925
1
پر توجہ دیں
1621
پیروکار

منتقل اوسط اچھال کی حکمت عملی

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

ایک متحرک اوسط کی واپسی کی حکمت عملی ایک ایسی حکمت عملی ہے جو قیمتوں کی نقل و حرکت کی اوسط کو توڑنے کی پیروی کرتی ہے۔ یہ چیک کرتا ہے کہ آیا بھوک چلتی اوسط سے نیچے سے اچھال آتی ہے ، اگر ایسا ہے تو ، یہ ایک کثیر سر سگنل ہے۔ اگر بھوک چلتی اوسط سے اوپر کی سمت سے اچھال آتی ہے تو ، یہ ایک خالی سر سگنل ہے۔

حکمت عملی کا نام

Exponential Moving Average Bounce Strategy

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

یہ حکمت عملی ایکسپونینشل موونگ اوسط پر مبنی ہے۔ یہ ایک ای ایم اے لائن کا حساب لگاتا ہے اور پھر چیک کرتا ہے کہ آیا قیمت ای ایم اے لائن کے اوپر یا نیچے سے اچھالتی ہے یا نہیں:

  • اگر قیمت پہلے EMA لائن سے نیچے گرتی ہے اور پھر EMA لائن کے اوپر دوبارہ بڑھتی ہے تو یہ ایک کثیر سگنل ہے
  • اگر قیمت پہلے EMA لائن کو توڑ دیتی ہے اور پھر EMA لائن کے نیچے بند ہونے کے لئے واپس آتی ہے تو ، یہ ایک خالی سر سگنل ہے

اس طرح کے ردعمل حکمت عملی کے لئے ابتدائی سگنل ہیں.

حکمت عملی کا تجزیہ

آپریٹنگ سستے سے بچنے کے

ای ایم اے کی واپسی کی حکمت عملی صرف اس وقت داخل ہوتی ہے جب قیمت کی واپسی کا تعین کیا جاتا ہے ، جس سے اس کے برعکس آپریشن کو روکنے سے بچا جاسکتا ہے۔

چھوٹی واپسی، تاریخی منافع

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

سمجھنے میں آسان، پیرامیٹرز کو ایڈجسٹ کرنے میں لچکدار

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

خطرے کا تجزیہ

غلط سگنل

ای ایم اے لائن کے قریب کثرت سے جھوٹی توڑ پھوڑ ہوتی ہے ، جس سے غلط سگنل پیدا ہوسکتے ہیں۔ ان شوروں کو فلٹر کرنے کے لئے ای ایم اے پیرامیٹرز کو ایڈجسٹ کرنے کی ضرورت ہے۔

تبدیلی کی پیش گوئی نہیں کی جا سکتی

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

سٹاپ نقصان کی پوزیشن کو توڑنے کے لئے آسان ہے

حرکت پذیر اوسط کے قریب اسٹاپ نقصان کی سطح کبھی کبھی توڑ دی جاتی ہے ، جس سے نقصان میں توسیع ہوتی ہے۔ اس کے لئے زیادہ لچکدار اسٹاپ استعمال کرنے کی ضرورت ہے۔

اصلاح کی سمت

دوسرے اشارے کے ساتھ مل کر فلٹر سگنل

قیمتوں میں ردوبدل کی تصدیق کرنے کے لئے RSI ، MACD اور دیگر اشارے شامل کیے جاسکتے ہیں ، جعلی سگنل کو فلٹر کریں۔

زیادہ سے زیادہ نقصان کو روکنے کے طریقوں

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

پیرامیٹرز کی اصلاح

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
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/
// © tweakerID

// Simple strategy that checks for price bounces over an Exponential Moving Average. If the CLOSE of the candle bounces
// back from having it's LOW below the EMA, then it's a Bull Bounce. If the CLOSE of the candle bounces down from having it's
// high above the EMA, then it's a Bear Bounce. This logic can be reverted.

//@version=4
strategy("EMA Bounce", overlay=true, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100, 
     initial_capital=10000, 
     commission_value=0.04, 
     calc_on_every_tick=false, 
     slippage=0)

direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

/////////////////////// STRATEGY INPUTS ////////////////////////////////////////
title1=input(true, "-----------------Strategy Inputs-------------------")  

i_EMA=input(20, title="EMA Length")

/////////////////////// BACKTESTER /////////////////////////////////////////////
title2=input(true, "-----------------General Inputs-------------------")  

// Backtester General Inputs
i_SL=input(true, title="Use Swing Stop Loss and Take Profit")
i_SPL=input(defval=10, title="Swing Point Loopback")
i_PercIncrement=input(defval=.2, step=.1, title="Swing Point SL Perc Increment")*0.01
i_TPRRR = input(1.2, step=.1, title="Take Profit Risk Reward Ratio")

// Bought and Sold Boolean Signal
bought = strategy.position_size > strategy.position_size[1] 
 or strategy.position_size < strategy.position_size[1]

// Price Action Stop and Take Profit
LL=(lowest(i_SPL))*(1-i_PercIncrement)
HH=(highest(i_SPL))*(1+i_PercIncrement)
LL_price = valuewhen(bought, LL, 0)
HH_price = valuewhen(bought, HH, 0)
entry_LL_price = strategy.position_size > 0 ? LL_price : na 
entry_HH_price = strategy.position_size < 0 ? HH_price : na 
tp=strategy.position_avg_price + (strategy.position_avg_price - entry_LL_price)*i_TPRRR
stp=strategy.position_avg_price - (entry_HH_price - strategy.position_avg_price)*i_TPRRR


/////////////////////// STRATEGY LOGIC /////////////////////////////////////////

EMA=ema(close, i_EMA)
LowAboveEMA=low > EMA
LowBelowEMA=low < EMA
HighAboveEMA=high > EMA
HighBelowEMA=high < EMA
BullBounce=LowAboveEMA[1] and LowBelowEMA and close > EMA //and close > open
BearBounce=HighBelowEMA[1] and HighAboveEMA and close < EMA //and close < open
plot(EMA)

BUY=BullBounce
SELL=BearBounce

//Inputs
DPR=input(false, "Allow Direct Position Reverse")
reverse=input(false, "Reverse Trades")

// Entries
if reverse
    if not DPR
        strategy.entry("long", strategy.long, when=SELL and strategy.position_size == 0)
        strategy.entry("short", strategy.short, when=BUY and strategy.position_size == 0)
    else     
        strategy.entry("long", strategy.long, when=SELL)
        strategy.entry("short", strategy.short, when=BUY)
else
    if not DPR 
        strategy.entry("long", strategy.long, when=BUY and strategy.position_size == 0)
        strategy.entry("short", strategy.short, when=SELL and strategy.position_size == 0)
    else
        strategy.entry("long", strategy.long, when=BUY)
        strategy.entry("short", strategy.short, when=SELL)


SL=entry_LL_price
SSL=entry_HH_price
TP=tp
STP=stp

strategy.exit("TP & SL", "long", limit=TP, stop=SL, when=i_SL)
strategy.exit("TP & SL", "short", limit=STP, stop=SSL, when=i_SL)

/////////////////////// PLOTS //////////////////////////////////////////////////

plot(strategy.position_size > 0 ? SL : na , title='SL', style=plot.style_cross, color=color.red)
plot(strategy.position_size < 0 ? SSL : na , title='SSL', style=plot.style_cross, color=color.red)
plot(strategy.position_size > 0 ? TP : na, title='TP', style=plot.style_cross, color=color.green)
plot(strategy.position_size < 0 ? STP : na, title='STP', style=plot.style_cross, color=color.green)
// Draw price action setup arrows
plotshape(BUY ? 1 : na, style=shape.triangleup, location=location.belowbar, 
 color=color.green, title="Bullish Setup", transp=80, size=size.auto)
plotshape(SELL ? 1 : na, style=shape.triangledown, location=location.abovebar, 
 color=color.red, title="Bearish Setup", transp=80, size=size.auto)