اس مضمون میں آپ کو ڈیجیٹل کرنسی کے الگورتھم ٹریڈنگ کی حکمت عملی کے بارے میں بتایا جائے گا جس کا نام ہے کثیر حکمت عملی انٹیگریٹڈ کوانٹیگریٹڈ ٹریڈنگ سسٹم۔ یہ حکمت عملی متعدد واحد حکمت عملیوں کے فوائد کو مربوط کرکے ایک کثیر حکمت عملی کا مجموعہ بناتی ہے جس کا مقصد زیادہ سے زیادہ استحکام اور تنوع حاصل کرنا ہے۔
اس حکمت عملی میں چار عام مقدار کی تجارت کی حکمت عملی شامل ہیں:
چینل توڑنے کی حکمت عملی: ایک خاص دورانیے کی اعلی ترین قیمت اور کم ترین قیمت کے مطابق اوپر اور نیچے چینل کی تعمیر کریں ، اور جب قیمت چینل کو توڑتی ہے تو زیادہ جگہ خالی کریں۔
متحرک حکمت عملی: قیمت میں تبدیلی کی سمت کے مطابق ایک خاص دورانیے میں متحرک اندازہ لگائیں ، قیمت میں اضافے کی رفتار بڑھنے پر زیادہ کام کریں ، قیمت میں کمی کی رفتار بڑھنے پر خالی کریں۔
ایم اے سی ڈی حکمت عملی: تیزی سے اوسط لائن پر گولڈ فورکس اور ڈیڈ فورکس کی بنیاد پر فیصلہ کرنے کے لئے زیادہ سے زیادہ ڈیفیکٹیشن پوزیشن قائم کریں۔
حارامی فارمیشنز حکمت عملی: مستقبل میں قیمتوں میں ممکنہ الٹ جانے کا اندازہ لگانے کے لئے مخصوص فارمیشنز کی نشاندہی کرکے ، موڑ کے مقام کے قریب تجارت کریں۔
ان حکمت عملیوں میں سے ہر ایک کے فوائد ہیں ، اور ان کے ساتھ مل کر زیادہ مستحکم آمدنی حاصل کی جاسکتی ہے۔ خاص طور پر:
چینل توڑنے کی حکمت عملی مارکیٹ کے رجحانات کو پکڑ سکتی ہے۔ متحرک حکمت عملی قلیل مدتی رجحانات کا بروقت سراغ لگاسکتی ہے۔ MACD حکمت عملی درمیانی مدت کے رجحانات میں تبدیلی کا پتہ لگاسکتی ہے۔ حارامی حکمت عملی اہم تبدیلیوں کا فیصلہ کرسکتی ہے۔
ان کو ایک حکمت عملی میں ضم کرنے سے ، یہ ممکن ہے کہ رجحانات کے دوران گرنے کا پیچھا کیا جاسکے ، اور موڑ کے قریب جوابی پوزیشنیں کھولی جائیں۔ اس کے علاوہ ، مختلف حکمت عملیوں کے مابین خطرہ کی تقسیم بھی ممکن ہے۔
اس کے علاوہ، اس طرح کے ایک سے زیادہ حکمت عملی کے مجموعے میں کچھ خامیاں بھی ہیں:
حکمت عملی بہت پیچیدہ ہے، پیرامیٹرز کو ایڈجسٹ کرنا مشکل ہے
کچھ حکمت عملیوں میں تنازعہ ہو سکتا ہے
ٹرانزیکشن کی کثرت اور قیمت میں اضافہ
ایک ہی حکمت عملی کے مقابلے میں ریٹائرمنٹ کا اثر کم ہوسکتا ہے
لہذا ، صارفین کو اس کثیر حکمت عملی کا مجموعہ استعمال کرتے وقت ، پیرامیٹرز کو ایڈجسٹ کرنے میں دشواری پر توجہ دینی چاہئے ، تنازعات کے مابین باہمی اثر و رسوخ کی جانچ کرنا چاہئے ، تجارت کی فریکوئنسی کو کنٹرول کرنا چاہئے ، اور اس کی طویل مدتی استحکام کو یقینی بنانے کے لئے بھرپور ریٹرننگ کرنا چاہئے۔
مجموعی طور پر ، اس طرح کی کثیر حکمت عملی کے ساتھ مربوط ایک مقداری تجارتی نظام ، جس میں ایک بہت ہی بھرپور تجارتی پورٹ فولیو حاصل کیا جاسکتا ہے ، بڑے رجحانات میں بھی بہت عمدہ کارکردگی کا مظاہرہ کرتا ہے۔ یہ مختلف حکمت عملیوں کے فوائد کو مربوط کرتا ہے ، جو طویل مدتی مثبت منافع کو زیادہ مستحکم طریقے سے حاصل کرسکتا ہے۔ صارف کے لئے مزید تحقیق اور اصلاح کے قابل ہے تاکہ ایک طاقتور مقداری تجارتی حکمت عملی کا پورٹ فولیو تیار کیا جاسکے۔
/*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