ایس ٹی آئی سی آئی ہل چلتی اوسط ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-18 17:17:52
ٹیگز:

جائزہ

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

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

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

فوائد

  • ایس ٹی آئی مضبوطی سے رجحان کی سمت کی نشاندہی کرتا ہے
  • CCI مؤثر طریقے سے overbought/oversold کا پتہ لگاتا ہے
  • Hull MA فلٹرز جھوٹے breakouts بہتر سگنل
  • منافع کے اہداف سے زیادہ منافع بخش ہونے پر باہر نکلنے کی اجازت ملتی ہے
  • متعدد اشارے کا امتزاج استحکام کو بہتر بناتا ہے

خطرات

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

انڈیکیٹرز کو ٹوننگ کرکے، منافع کے الگورتھم کو بہتر بنا کر وغیرہ خطرات کو کم کیا جاسکتا ہے۔

بہتری

  • حساسیت کو بہتر بنانے کے لئے ٹیسٹ TSI/CCI کے مجموعے
  • متحرک / ٹریلر منافع کے اہداف پر غور کریں
  • ریورسز کا تعین کرنے کے لئے دیگر اشارے شامل کریں
  • مضبوطی کو بہتر بنانے کے لئے مختلف مصنوعات پر ٹیسٹ

نتیجہ

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


/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title="TSI CCI Hull", shorttitle="TSICCIHULL", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= false, calc_on_every_tick=true, pyramiding=0, commission_type=strategy.commission.percent, commission_value=0.018)
long = input(title="Long Length", type=input.integer, defval=50)
short = input(title="Short Length", type=input.integer, defval=50)
signal = input(title="Signal Length", type=input.integer, defval=25)
price=input(title="Source",type=input.source,defval=close)
Period=input(26, minval=1)
lineupper = input(title="Upper Line", type=input.integer, defval=100)
linelower = input(title="Lower Line", type=input.integer, defval=-100)
p=price
length= Period
double_smooth(src, long, short) =>
    fist_smooth = ema(src, long)
    ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
keh = tsi_value*5 > linelower ? color.red : color.lime
teh = ema(tsi_value*5, signal*5) > lineupper ? color.red : color.lime
meh = ema(tsi_value*5, signal*5) > tsi_value*5 ? color.red : color.lime
i1=plot(tsi_value*5, title="TSI Value", color=color.black, linewidth=1,transp=100)
i2=plot(ema(tsi_value*5, signal*5), title="TSI Signal", color=color.black, linewidth=1,transp=100)
fill(i1,i2,color=meh,transp=85)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=color.black, linewidth=10)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=color.white, linewidth=8,transp=0)
plot(cross(tsi_value*5, ema(tsi_value*5, signal*5)) ? tsi_value*5 : na, style=plot.style_circles, color=meh, linewidth=5)
n2ma = 2 * wma(p, round(length / 2))
nma = wma(p, length)
diff = n2ma - nma
sqn = round(sqrt(length))
n1 = wma(diff, sqn)
cci = (p - n1) / (0.015 * dev(p, length))
c = cci > 0 ? color.lime : color.red
c1 = cci > 20 ? color.lime : color.silver
c2 = cci < -20 ? color.red : color.silver
cc=plot(cci, color=c, title="CCI Line", linewidth=2)
cc2=plot(cci[1], color=color.gray, linewidth=1,transp=100)
fill(cc,cc2,color=c,transp=85)
plot(cross(20, cci) ? 20 : na, style=plot.style_cross,title="CCI cross UP",  color=c1, linewidth=2,transp=100,offset=-2)
plot(cross(-20, cci) ? -20 : na, style=plot.style_cross,title="CCI cross down",  color=c2, linewidth=2,transp=100,offset=-2)

TSI1=ema(tsi_value*5, signal*5)
TSI2=ema(tsi_value*5, signal*5)[2]

hullma_smoothed = wma(2*wma(n1, Period/2)-wma(n1, Period), round(sqrt(Period)))
//plot(hullma_smoothed*200)

// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2018, minval=1800, maxval=2100)

endDate = input(title="End Date", type=input.integer,
     defval=1, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
     defval=7, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
     defval=9999, minval=1800, maxval=2100)
     
// Look if the close time of the current bar
// falls inside the date range
inDateRange = (time >= timestamp(syminfo.timezone, startYear,
         startMonth, startDate, 0, 0)) and
     (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))
     
LongProfitPercent=input(0.5)
ShortProfitPercent=input(0.5)
LP=(LongProfitPercent/100)+1
SP=(ShortProfitPercent/100)+1

LongProfitSource=input(title="profit long source",type=input.source,defval=close)
ShortProfitSource=input(title="profit short source",type=input.source,defval=close)

longCondition = TSI1>TSI2 and hullma_smoothed<price and cci>0
shortCondition = TSI1<TSI2 and hullma_smoothed>price and cci<0

if (longCondition and cci>cci[1] and cci > 0 and n1>n1[1] and inDateRange)
    strategy.entry("buy", strategy.long)
strategy.close("buy", when = shortCondition and cci<cci[1] and cci < 0 and n1<n1[1] or LongProfitSource>strategy.position_avg_price*LP and inDateRange)
if (shortCondition and cci<cci[1] and cci < 0 and n1<n1[1] and inDateRange)
    strategy.entry("sell", strategy.short)
strategy.close("sell", when = longCondition and cci>cci[1] and cci > 0 and n1>n1[1] or ShortProfitSource<strategy.position_avg_price/SP and inDateRange)

مزید