انٹیگریٹڈ ملٹی اسٹریٹیجی کوانٹیٹیٹیو ٹریڈنگ سسٹم

مصنف:چاؤ ژانگ، تاریخ: 2023-09-15 12:29:33
ٹیگز:

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

اس حکمت عملی میں چار مشترکہ مقداری تجارتی حکمت عملی شامل ہیں:

  1. چینل بریک آؤٹ کی حکمت عملی: ایک مخصوص مدت کے دوران سب سے زیادہ اور سب سے کم قیمتوں کی بنیاد پر اوپری اور نچلے چینلز کی تعمیر کریں اور جب قیمت چینل سے باہر نکلتی ہے تو پوزیشن لیں.

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

  3. ایم اے سی ڈی حکمت عملی: ایم اے سی ڈی گولڈن کراس اور ڈیڈ کراس کی بنیاد پر طویل اور مختصر پوزیشنوں کا تعین کریں۔

  4. حرامی پیٹرن کی حکمت عملی: شمعدان کے مخصوص نمونوں کو پہچان کر اور موڑ کے مقامات کے ارد گرد تجارت کرکے ممکنہ مستقبل کے الٹ کی نشاندہی کریں۔

ان حکمت عملیوں میں سے ہر ایک کے فوائد ہیں۔ ایک ساتھ مل کر ، وہ زیادہ مستحکم واپسی حاصل کرسکتے ہیں۔ خاص طور پر:

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

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

یقینا، اس طرح کے کثیر حکمت عملی کے مجموعے میں کچھ نقصانات بھی ہیں:

  1. حکمت عملی بہت پیچیدہ ہے اور پیرامیٹرز کو ایڈجسٹ کرنا مشکل ہے۔

  2. بعض حکمت عملیوں کے درمیان تنازعات ہو سکتے ہیں۔

  3. اس سے تجارتی تعدد اور لین دین کے اخراجات میں اضافہ ہوتا ہے۔

  4. بیک ٹسٹنگ کے نتائج ایک واحد حکمت عملی سے بدتر ہوسکتے ہیں۔

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

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


/*backtest
start: 2023-09-07 00:00:00
end: 2023-09-14 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

//Channel breakout
strategy("all_strategy", overlay=true)

length = input(title="Length", minval=1, maxval=1000, defval=5)

upBound = highest(high, length)
downBound = lowest(low, length)

if (not na(close[length]))
    strategy.entry("ChBrkLE", strategy.long, stop=upBound + syminfo.mintick, comment="ChBrkLE")
    strategy.entry("ChBrkSE", strategy.short, stop=downBound - syminfo.mintick, comment="ChBrkSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)


//Momentum
length1 = input(12)
price = close

momentum(seria, length) =>
    mom = seria - seria[length1]
    mom

mom0 = momentum(price, length1)
mom1 = momentum( mom0, 1)

if (mom0 > 0 and mom1 > 0)
    strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE")
else
    strategy.cancel("MomLE")

if (mom0 < 0 and mom1 < 0)
    strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE")
else
    strategy.cancel("MomSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)


//MACD Strategy
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

if (crossover(delta, 0))
    strategy.entry("MacdLE", strategy.long, comment="MacdLE")

if (crossunder(delta, 0))
    strategy.entry("MacdSE", strategy.short, comment="MacdSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)


//Harami

pctDw = input(60,minval=0,maxval=90,title="Doji, Min % of Range of Candle for Wicks")
pipMin= input(0,minval=0,title="Doji, Previous Candle Min Pip Body Size")
sname=input(true,title="Show Price Action Bar Names")
cbar = input(false,title="Highlight Harami & Doji Bars")
sHm    = input(false,title="Show Only Harami Style Doji's")
setalm = input(true, title="Generate Alert for Harami & Doji Bars")
uha   =input(true, title="Use Heikin Ashi Candles for Calculations")
bars = input(3,minval=1,maxval=3,step=1, title="Doji, Number of Lookback Bars")
//
// Use only Heikinashi Candles for all calculations
srcclose = uha ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
srcopen = uha ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
srchigh = uha ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
srclow = uha ?security(heikinashi(syminfo.tickerid), timeframe.period, low) : low

//
pip = syminfo.mintick
range = srchigh - srclow


// Calculate Doji/Harami Candles
pctCDw = (pctDw/2) * 0.01
pctCDb = (100-pctDw) * 0.01

//Lookback Candles for bulls or bears
lbBull = bars==1? srcopen[1]>srcclose[1]: bars==2? (srcopen[1]>srcclose[1] and srcopen[2]>srcclose[2]): bars==3?(srcopen[1]>srcclose[1] and srcopen[2]>srcclose[2] and srcopen[3]>srcclose[3]):false
lbBear = bars==1? srcopen[1]<srcclose[1]: bars==2? (srcopen[1]<srcclose[1] and srcopen[2]<srcclose[2]): bars==3?(srcopen[1]<srcclose[1] and srcopen[2]<srcclose[2] and srcopen[3]<srcclose[3]):false

//Lookback Candle Size only if mininum size is > 0
lbSize = pipMin==0? true : bars==1 ? (abs(srcopen[1]-srcclose[1])>pipMin*pip) :
  bars==2 ? (abs(srcopen[1]-srcclose[1])>pipMin*pip and abs(srcopen[2]-srcclose[2])>pipMin*pip) :
  bars==3 ? (abs(srcopen[1]-srcclose[1])>pipMin*pip and abs(srcopen[2]-srcclose[2])>pipMin*pip and abs(srcopen[3]-srcclose[3])>pipMin*pip) :
  false

dojiBu = (srcopen[1] >= max(srcclose,srcopen) and srcclose[1]<=min(srcclose,srcopen)) and lbSize and
  (abs(srcclose-srcopen)<range*pctCDb and (srchigh-max(srcclose,srcopen))>(pctCDw*range) and (min(srcclose,srcopen)-srclow)>(pctCDw*range))? 1 : 0

dojiBe = (srcclose[1] >= max(srcclose,srcopen) and srcopen[1]<=min(srcclose,srcopen)) and lbSize and
  (abs(srcclose-srcopen)<range*pctCDb and (srchigh-max(srcclose,srcopen))>(pctCDw*range) and (min(srcclose,srcopen)-srclow)>(pctCDw*range))? 1 : 0
  
haramiBull = (srcopen<=srcclose or (max(srcclose,srcopen)-min(srcclose,srcopen))<pip*0.5) and lbBull and dojiBu
haramiBear = (srcopen>=srcclose or (max(srcclose,srcopen)-min(srcclose,srcopen))<pip*0.5) and lbBear and dojiBe

dojiBull = not sHm and not haramiBull and not haramiBear and lbBull and dojiBu
dojiBear = not sHm and not haramiBull and not haramiBear and lbBear and dojiBe

//
plotshape(haramiBear and sname?srchigh:na,title="Bearish Harami",text='Bearish\nHarami',color=red, style=shape.arrowdown,location=location.abovebar)
plotshape(haramiBear and cbar?max(srcopen,srcclose):na,title="Bear Colour Harami",color=red, style=shape.circle,location=location.absolute,size=size.normal)
//
plotshape(haramiBull and sname?srclow:na,title="Bullish Harami",text='Bullish\nHarami',color=green, style=shape.arrowup,location=location.belowbar)
plotshape(haramiBull and cbar?max(srcopen,srcclose):na,title="Bull Colour Harami",color=green, style=shape.circle,location=location.absolute,size=size.normal)
//
plotshape(dojiBear and sname?srchigh:na,title="Bearish Doji",text='Bearish\nDoji',color=fuchsia, style=shape.arrowdown,location=location.abovebar)
plotshape(dojiBear and cbar?max(srcopen,srcclose):na,title="Bear Colour Doji",color=fuchsia, style=shape.circle,location=location.absolute,size=size.normal)
//
plotshape(dojiBull and sname?srclow:na,title="Bullish Doji",text='Bullish\nDoji',color=aqua, style=shape.arrowup,location=location.belowbar)
plotshape(dojiBull and cbar?max(srcopen,srcclose):na,title="Bull Colour Doji",color=aqua, style=shape.circle,location=location.absolute,size=size.normal)

// Only Alert harami Doji's
bcolor = haramiBull ? 1 : haramiBear ? 2 : dojiBull ? 3 : dojiBear ? 4 : 0
baralert = setalm and bcolor>0
alertcondition(baralert,title="PACDOJI Alert",message="PACDOJI Alert")

//
plotshape(na(baralert[1])?na:baralert[1], transp=0,style=shape.circle,location=location.bottom, offset=-1,title="Bar Alert Confirmed", 
  color=bcolor[1]==1 ? green : bcolor[1]==2? red : bcolor[1]==3? aqua : bcolor[1]==4? fuchsia : na)

//EOF

مزید