تجارتی حکمت عملی جب قیمت حرکت پذیر اوسط سے ٹوٹ جاتی ہے۔


تخلیق کی تاریخ: 2023-12-15 16:28:12 آخر میں ترمیم کریں: 2023-12-15 16:28:12
کاپی: 0 کلکس کی تعداد: 575
1
پر توجہ دیں
1621
پیروکار

تجارتی حکمت عملی جب قیمت حرکت پذیر اوسط سے ٹوٹ جاتی ہے۔

جائزہ

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

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

اس حکمت عملی کی بنیادی منطق یہ ہے:

  1. ای ایم اے فنکشن کا استعمال کرتے ہوئے ایک مخصوص مدت ((مثال کے طور پر 200 دن) کے لئے منتقل اوسط ((ای ایم اے) }} کا حساب لگائیں۔

  2. EMA کے ساتھ بند ہونے والی قیمت کے بڑے پیمانے پر تعلقات کا موازنہ کریں ، فیصلہ کریں کہ آیا قیمت EMA سے ٹوٹ گئی ہے۔ خاص طور پر ، اس دن بند ہونے والی قیمت EMA سے زیادہ ہونے پر ، قیمت کو EMA پہننا سمجھا جاتا ہے۔ اس دن بند ہونے والی قیمت EMA سے کم ہونے پر ، قیمت کو EMA پہننا سمجھا جاتا ہے۔

  3. قیمتوں میں اضافے اور کمی کی بنیاد پر خرید و فروخت کا وقت طے کریں۔ جب قیمتوں میں ای ایم اے ہوتا ہے تو ، خریدنے کا اشارہ پیدا ہوتا ہے۔ جب قیمتوں میں ای ایم اے کی کمی ہوتی ہے تو ، فروخت کا اشارہ پیدا ہوتا ہے۔

  4. جب سگنل پیدا ہوتا ہے تو ، ایک خاص تناسب ((جیسے مکمل اسٹاک) پر آرڈر دیں ، اور پھر اسٹاپ نقصان اور اسٹاپ قیمت طے کریں۔

  5. جب قیمت اسٹاپ نقصان یا اسٹاپ اپ قیمت تک پہنچ جائے تو پوزیشن کو ختم کریں۔

  6. اس طرح ، قیمتوں میں اوسط سے تجاوز کرنے کے وقت سے فائدہ اٹھانے کے لئے سائیکلنگ۔

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

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

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

اسٹریٹجک رسک

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

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

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 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/

// Credits to the original Script - Range Filter DonovanWall https://www.tradingview.com/script/lut7sBgG-Range-Filter-DW/
// This version is the old version of the Range Filter with less settings to tinker with

//@version=5
strategy(title='Range Filter - B&S Signals', shorttitle='RF - B&S Signals', initial_capital=1000, currency=currency.GBP, default_qty_value=100, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.075, overlay=true)


i_startTime = input(defval=timestamp('01 Jan 2020 12:00 +0000'), title='Backtest Start')
i_endTime = input(defval=timestamp('01 Jan 2024 12:00 +0000'), title='Backtest End')

inDateRange     = true
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
//Functions
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
longLossPerc = input.float(title='Long Stop Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01
shortLossPerc = input.float(title='Short Stop Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01

longTakePerc = input.float(title='Long Take(%)', minval=0.0, step=0.1, defval=1) * 0.01
shortTakePerc = input.float(title='Short Take (%)', minval=0.0, step=0.1, defval=1) * 0.01

emaLength = input.int(200, title="EMA Length")

    // Determine stop loss price

//Range Size Function
rng_size(x, qty, n) =>
//    AC       = Cond_EMA(abs(x - x[1]), 1, n)
    wper = n * 2 - 1
    avrng = ta.ema(math.abs(x - x[1]), n)
    AC = ta.ema(avrng, wper) * qty
    rng_size = AC
    rng_size

//Range Filter Function
rng_filt(x, rng_, n) =>
    r = rng_
    var rfilt = array.new_float(2, x)
    array.set(rfilt, 1, array.get(rfilt, 0))
    if x - r > array.get(rfilt, 1)
        array.set(rfilt, 0, x - r)
    if x + r < array.get(rfilt, 1)
        array.set(rfilt, 0, x + r)
    rng_filt1 = array.get(rfilt, 0)

    hi_band = rng_filt1 + r
    lo_band = rng_filt1 - r
    rng_filt = rng_filt1
    [hi_band, lo_band, rng_filt]

//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
//Inputs
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------

//Range Source
rng_src = input(defval=close, title='Swing Source')

//Range Period
rng_per = input.int(defval=20, minval=1, title='Swing Period')

//Range Size Inputs
rng_qty = input.float(defval=3.5, minval=0.0000001, title='Swing Multiplier')

//Bar Colors
use_barcolor = input(defval=false, title='Bar Colors On/Off')

//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
//Definitions
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------

//Range Filter Values
[h_band, l_band, filt] = rng_filt(rng_src, rng_size(rng_src, rng_qty, rng_per), rng_per)

//Direction Conditions
var fdir = 0.0
fdir := filt > filt[1] ? 1 : filt < filt[1] ? -1 : fdir
upward = fdir == 1 ? 1 : 0
downward = fdir == -1 ? 1 : 0

//Trading Condition
longCond = rng_src > filt and rng_src > rng_src[1] and upward > 0 or rng_src > filt and rng_src < rng_src[1] and upward > 0
shortCond = rng_src < filt and rng_src < rng_src[1] and downward > 0 or rng_src < filt and rng_src > rng_src[1] and downward > 0

CondIni = 0
CondIni := longCond ? 1 : shortCond ? -1 : CondIni[1]
longCondition = longCond and CondIni[1] == -1
shortCondition = shortCond and CondIni[1] == 1

//Colors
filt_color = upward ? #05ff9b : downward ? #ff0583 : #cccccc
bar_color = upward and rng_src > filt ? rng_src > rng_src[1] ? #05ff9b : #00b36b : downward and rng_src < filt ? rng_src < rng_src[1] ? #ff0583 : #b8005d : #cccccc


ema = ta.ema(close,emaLength)

//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
//Outputs
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
longStopPrice = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)

longTakePrice = strategy.position_avg_price * (1 + longTakePerc)
shortTakePrice = strategy.position_avg_price * (1 - shortTakePerc)

//Filter Plot
filt_plot = plot(filt, color=filt_color, linewidth=3, title='Filter', transp=67)

//Band Plots
h_band_plot = plot(h_band, color=color.new(#05ff9b, 100), title='High Band')
l_band_plot = plot(l_band, color=color.new(#ff0583, 100), title='Low Band')

//Band Fills
fill(h_band_plot, filt_plot, color=color.new(#00b36b, 92), title='High Band Fill')
fill(l_band_plot, filt_plot, color=color.new(#b8005d, 92), title='Low Band Fill')

//Bar Color
barcolor(use_barcolor ? bar_color : na)

if  inDateRange and close>ema
    strategy.entry("Long", strategy.long, when=longCondition)
    
if   inDateRange and close<ema
    strategy.entry("Short", strategy.short, when=shortCondition)


plot(ema)




//Plot Buy and Sell Labels
plotshape(longCondition, title='Buy Signal', text='BUY', textcolor=color.white, style=shape.labelup, size=size.normal, location=location.belowbar, color=color.new(color.green, 0))
plotshape(shortCondition, title='Sell Signal', text='SELL', textcolor=color.white, style=shape.labeldown, size=size.normal, location=location.abovebar, color=color.new(color.red, 0))

//Alerts
alertcondition(longCondition, title='Buy Alert', message='BUY')
alertcondition(shortCondition, title='Sell Alert', message='SELL')

if strategy.position_size > 0
    strategy.exit(id='Long', stop=longStopPrice, limit=longTakePrice)

if strategy.position_size < 0
    strategy.exit(id='Short', stop=shortStopPrice, limit=shortTakePrice)