مرکزی کشش ثقل چینل کی حکمت عملی کے بعد رجحان


تخلیق کی تاریخ: 2023-09-19 21:30:23 آخر میں ترمیم کریں: 2023-09-19 21:30:23
کاپی: 0 کلکس کی تعداد: 747
1
پر توجہ دیں
1617
پیروکار

جائزہ

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

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

  1. کمپیوٹنگ سینٹر گرویٹی اشارے ، جس میں اوپری اور نچلے ریل قیمتوں میں اضافے اور کمی کی رجحان کی حد ہیں۔

  2. ایس ایس ایل چینل کے اشارے کا حساب لگائیں ، چینل کے اندرونی حصے کو مجموعی حد اور چینل کے بیرونی حصے کو رجحان کی سمت کے طور پر۔

  3. جب قیمت اوپر کی ٹریک یا چینل کو توڑتی ہے تو اس کا فیصلہ اوپر کی طرف ہوتا ہے اور زیادہ ہوتا ہے۔ جب قیمت نیچے کی ٹریک یا چینل کو توڑتی ہے تو اس کا فیصلہ نیچے کی طرف ہوتا ہے اور خالی ہوتا ہے۔

  4. اسٹاپ نقصان کو ٹریک کرنے کے لئے متحرک اے ٹی آر اسٹاپ کا استعمال کرتے ہوئے پوزیشنیں رکھیں ، تاکہ نقصانات میں توسیع نہ ہو۔

  5. اصل ٹریڈنگ سگنل کے لئے ریٹرننگ ٹائم فریم کے ساتھ مل کر.

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

طاقت کا تجزیہ

  1. یہ دونوں اشارے کے استعمال سے رجحانات کا تعین کرنے میں مدد ملتی ہے، جس سے درستگی میں اضافہ ہوتا ہے۔

  2. مرکز کشش ثقل کے اشارے رجحان کی تبدیلیوں کے لئے حساس ہیں ، ایس ایس ایل چینل نے رجحان کی سمت کا تعین کیا cleared。

  3. متحرک اے ٹی آر اسٹاپ مارکیٹ میں اتار چڑھاؤ کے مطابق ریئل ٹائم اسٹاپ ایڈجسٹمنٹ کے ساتھ لچکدار ہے۔

  4. حکمت عملی کے قواعد سادہ اور واضح ہیں، ان کو سمجھنا اور ان پر عمل درآمد کرنا آسان ہے۔

  5. پیرامیٹرز کو بہتر بنانے کے لئے کافی جگہ ہے، مختلف مارکیٹوں کے لئے ایڈجسٹ کیا جا سکتا ہے.

  6. آپ کی حکمت عملی کے نتائج کی تصدیق کرنے کے لئے ریٹرننگ کی تقریب مکمل ہے.

خطرے کا تجزیہ

  1. مرکز کشش ثقل کے اشارے اور ایس ایس ایل چینل دونوں کی خرابی ہوسکتی ہے ، جس کی وجہ سے تجارتی سگنل کی غلطی ہوتی ہے۔ تصدیق کے لئے دوسرے اشارے شامل کیے جاسکتے ہیں۔

  2. متحرک اسٹاپ نقصان بہت زیادہ ہو سکتا ہے، مناسب طریقے سے اسٹاپ نقصان کی حد کو کم کر سکتا ہے.

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

  4. ٹرانزیکشن لاگت کے اثرات پر غور کرنے کی ضرورت ہے۔

اصلاح کی سمت

  1. مختلف پیرامیٹرز کے مجموعے کی جانچ کریں اور بہترین پیرامیٹرز جوڑے تلاش کریں۔

  2. متحرک سٹاپ نقصان کے لئے اے ٹی آر کی مدت اور ضرب پیرامیٹرز کو بہتر بنائیں۔

  3. دیگر اشارے متعارف کرانے کے لئے سگنل فلٹرنگ، جیسے MACD، KDJ وغیرہ

  4. مشین لرننگ ماڈل شامل کریں تاکہ رجحانات کا اندازہ لگایا جا سکے۔

  5. پیسے کے انتظام کو بہتر بنانے اور پوزیشن کنٹرول قائم کرنا۔

  6. مخصوص پرجاتیوں کے لئے پیرامیٹرز کو ایڈجسٹ اور بہتر بنائیں۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Thanks to HPotter for the original code for Center of Gravity Backtest
strategy("CoG SSL BF 🚀", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075)

/////////////// Time Frame ///////////////
_0 = input(false,  "════════ Test Period ═══════")
testStartYear = input(2017, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

/////////////// SSL Channels /////////////// 
_1 = input(false,  "═════════ SSL ══════════")
len1=input(title="SMA Length 1", defval=12)
len2=input(title="SMA Length 2", defval=13)

smaHigh = sma(high, len1)
smaLow = sma(low, len2)

Hlv = 0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh

///////////// Center of Gravity /////////////
_2 = input(false,  "═════════ CoG ══════════")
Length = input(25, minval=1)
m = input(5, minval=0)
Percent = input(6, minval=0, title="COG %")

xLG = linreg(close, Length, m)
xLG1r = xLG + ((close * Percent) / 100)
xLG1s = xLG - ((close * Percent) / 100)

pos = 0.0
pos := iff(close > xLG1r, 1, iff(close < xLG1s, -1, nz(pos[1], 0))) 
possig = iff(pos == 1, 1, iff(pos == -1, -1, pos))

///////////// Rate Of Change ///////////// 
_3 = input(false,  "══════ Rate of Change ══════")
source = close
roclength = input(2, "ROC Length",  minval=1)
pcntChange = input(10, "ROC % Change", minval=1)
roc = 100 * (source - source[roclength]) / source[roclength]
emaroc = ema(roc, roclength / 2)
isMoving() => emaroc > (pcntChange / 2) or emaroc < (0 - (pcntChange / 2))

/////////////// Srategy ///////////////
long = possig == 1 or (sslUp > sslDown and isMoving())
short = possig == -1 or (sslUp < sslDown and isMoving())

last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

last_open_long_signal = 0.0
last_open_short_signal = 0.0
last_open_long_signal := long_signal ? open : nz(last_open_long_signal[1])
last_open_short_signal := short_signal ? open : nz(last_open_short_signal[1])

last_long_signal = 0.0
last_short_signal = 0.0
last_long_signal := long_signal ? time : nz(last_long_signal[1])
last_short_signal := short_signal ? time : nz(last_short_signal[1])

in_long_signal = last_long_signal > last_short_signal
in_short_signal = last_short_signal > last_long_signal

last_high = 0.0
last_low = 0.0
last_high := not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1])
last_low := not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1])

since_longEntry = barssince(last_open_long_signal != last_open_long_signal[1]) 
since_shortEntry = barssince(last_open_short_signal != last_open_short_signal[1]) 

/////////////// Dynamic ATR Stop Losses ///////////////
_4 = input(false,  "════════ Stop Loss ═══════")
atrLkb = input(1, minval=1, title='ATR Stop Period')
atrMult = input(2, step=0.25, title='ATR Stop Multiplier') 
atr1 = atr(atrLkb)

longStop = 0.0
longStop :=  short_signal ? na : long_signal ? close - (atr1 * atrMult) : longStop[1]
shortStop = 0.0
shortStop := long_signal ? na : short_signal ? close + (atr1 * atrMult) : shortStop[1]

/////////////// Execution ///////////////
if testPeriod()
    strategy.entry("L",  strategy.long, when=long)
    strategy.entry("S", strategy.short, when=short)
    strategy.exit("L SL", "L", stop=longStop, when=since_longEntry > 0)
    strategy.exit("S SL", "S", stop=shortStop, when=since_shortEntry > 0)

/////////////// Plotting ///////////////
p1 = plot(sslDown, linewidth = 1, color=color.red, title="SSL down")
p2 = plot(sslUp, linewidth = 1, color=color.lime, title="SSL up")
fill(p1, p2,  color = not isMoving() ? color.white : sslDown < sslUp ? color.lime : color.red, transp=80)
plot(xLG1r, color=color.lime, title="LG1r")
plot(xLG1s, color=color.red, title="LG1s")
plot(strategy.position_size <= 0 ? na : longStop, title="Long Stop Loss", color=color.yellow, style=plot.style_circles, linewidth=1)
plot(strategy.position_size >= 0 ? na : shortStop, title="Short Stop Loss", color=color.orange, style=plot.style_circles, linewidth=1)
bgcolor(long ? color.green : short ? color.red : not isMoving() ? color.white : na, transp=80)
bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=60)