
یہ حکمت عملی بنیادی طور پر خریدنے کے وقت کا تعین کرنے کے لئے متحرک اوسط HMA اور EMA کی تشکیل کی مساوی لائن کی صف بندی کا استعمال کرتی ہے۔ جب HMA پر EMA پہننا صف بندی کے اختتام کے طور پر سمجھا جاتا ہے ، تو ایک نیا اوپر کا رجحان پیدا ہوتا ہے ، لہذا HMA پر EMA پہننے کے ساتھ ساتھ خریدیں۔
یہ حکمت عملی RSI اشارے کے ساتھ مل کر اوورلوڈ اور اوور سیل کا پتہ لگانے کے لئے استعمال کی جاتی ہے۔ آر ایس آئی 70 سے نیچے خریدنے کی اجازت دیتا ہے ، اور آر ایس آئی 80 سے اوپر ہونے پر جزوی اسٹاپ پر غور کرتا ہے۔
اس حکمت عملی میں 200 ادوار کے ای ایم اے اور ایچ ایم اے کا استعمال کیا گیا ہے تاکہ ایک اوسط لکیری نظام بنایا جاسکے۔ اس میں ، ایچ ایم اے اشارے ای ایم اے میں بہتری کے ڈیزائن کے مطابق ایک زیادہ حساس حرکت پذیر اوسط اشارے ہیں۔ جب ایچ ایم اے پر ای ایم اے پہنا جاتا ہے ، تو اس کا مطلب ہے کہ صفائی کا مرحلہ ختم ہوچکا ہے اور اسٹاک کی قیمت بڑھنے لگی ہے۔ اس وقت اگر آر ایس آئی اشارے میں کوئی زیادہ خریداری نہیں دکھائی دیتی ہے تو ، اس سے خریدنے کا اشارہ ملتا ہے۔
اگر اسٹاک کی قیمت میں کمی واقع ہوتی ہے تو ، ایچ ایم اے ایک بار پھر ای ایم اے کو نیچے لے جاتا ہے ، جس سے یہ ظاہر ہوتا ہے کہ نئی صف بندی کا آغاز ہوا ہے ، تو یہ مکمل طور پر صاف ہے۔ اس کے علاوہ ، اگر آر ایس آئی 80 پر پہنتا ہے تو ، نقصان سے بچنے کے لئے 20٪ کی طرف سے جزوی طور پر روک دیا جائے گا۔
اس حکمت عملی کی تجارت کا منطق نسبتا simple آسان ہے ، بنیادی طور پر ایچ ایم اے اور ای ایم اے کے کثیر قطب کراسنگ ، جو آر ایس آئی کے اعلی اور کم فیصلے کے ساتھ مل کر ایک زیادہ مستحکم تجارتی حکمت عملی تشکیل دیتے ہیں۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ ای ایم اے اور ایچ ایم اے کے تالے کی تجارت کی شکل کا استعمال کرتے ہوئے ، زیادہ تر جھوٹے وقفے کو فلٹر کیا جاسکتا ہے ، جس سے منافع کی شرح میں اضافہ ہوتا ہے۔ اس کے علاوہ ، آر ایس آئی اشارے کی معاونت بھی خطرے کو مؤثر طریقے سے کنٹرول کرسکتی ہے ، اور ان دونوں کا امتزاج اس حکمت عملی کو تالے کی اتار چڑھاؤ والی مارکیٹوں کے لئے بہت موزوں بنا دیتا ہے۔
اس کے علاوہ، یہ حکمت عملی صرف 3 اشارے کا استعمال کرتا ہے اور منطقی طور پر آسان ہے، جس سے اس کے پیرامیٹرز کو بہتر بنانے اور پیمائش کرنا آسان ہے، جو حکمت عملی کی توثیق اور بہتری کے لئے فائدہ مند ہے.
اگرچہ اس حکمت عملی کے کچھ فوائد ہیں ، لیکن اس میں کچھ خطرات موجود ہیں جن پر دھیان دینے کی ضرورت ہے۔ مثال کے طور پر ، پوزیشن کی مدت نسبتا long طویل ہوسکتی ہے ، جس میں کافی مالی اعانت کی ضرورت ہوتی ہے۔ اگر افقی صفائی کے اوقات کا سامنا کرنا پڑتا ہے تو ، نقصان سے باہر نکلنے کو جلدی سے روکنا ممکن نہیں ہے ، تو نقصانات میں اضافے کا خطرہ ہے۔
اس کے علاوہ ، یہ حکمت عملی بنیادی طور پر ایکویریم اشارے پر انحصار کرتی ہے ، اور اگر قیمت میں غیر معمولی توڑ پڑتا ہے تو ، روک تھام کے اقدامات کام نہیں کرسکتے ہیں ، جس سے زیادہ خطرہ لاحق ہوتا ہے۔ اس کے علاوہ ، پیرامیٹرز کی ترتیب حکمت عملی کی کارکردگی کو بھی متاثر کرتی ہے ، جس میں بہترین پیرامیٹرز تلاش کرنے کے لئے بہت زیادہ جانچ کی ضرورت ہوتی ہے۔
مندرجہ بالا خطرات کو مدنظر رکھتے ہوئے ، اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے۔
مارکیٹ میں اتار چڑھاو کے مطابق پوزیشنوں کو متحرک طور پر ایڈجسٹ کرنے کے لئے اتار چڑھاو کے اشارے کے ساتھ مل کر۔
ٹرینڈ انڈیکیٹرز میں اضافہ کریں اور غیر ضروری تجارت سے بچیں.
متحرک اوسط پیرامیٹرز کو بہتر بنائیں تاکہ وہ موجودہ مارکیٹ کی خصوصیات کے قریب ہوں۔
وقت کے ضیاع کو روکنے کے لئے استعمال کیا جاتا ہے، زیادہ سے زیادہ ممکنہ طور پر انفرادی نقصانات سے بچنے کے لئے.
یہ حکمت عملی مجموعی طور پر ایک نسبتا کلاسیکی سادہ مجموعی جھٹکا حکمت عملی ہے۔ یہ بنیادی طور پر اسٹاک انڈیکس اور مشہور اسٹاک کے مختصر اور درمیانی مدت کے کاروبار میں لاگو ہوتا ہے ، جس سے نسبتا مستحکم الفا کی قیمت حاصل کی جاسکتی ہے۔ پیرامیٹرز کی اصلاح اور ہوا کے کنٹرول کے اقدامات میں اضافے کے ساتھ ، اس حکمت عملی کی کارکردگی میں بہتری کی گنجائش ہے۔
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © mohanee
//@version=4
strategy(title="EMA_HMA_RSI_Strategy", overlay=true, pyramiding=2, default_qty_type=strategy.cash, default_qty_value=10000, initial_capital=10000, currency=currency.USD) //default_qty_value=10, default_qty_type=strategy.fixed,
//longCondition = crossover(sma(close, 14), sma(close, 28))
//if (longCondition)
//strategy.entry("My Long Entry Id", strategy.long)
//shortCondition = crossunder(sma(close, 14), sma(close, 28))
//if (shortCondition)
// strategy.entry("My Short Entry Id", strategy.short)
//HMA
HMA(src1, length1) => wma(2 * wma(src1, length1/2) - wma(src1, length1), round(sqrt(length1)))
var stopLossVal=0.00
//variables BEGIN
length=input(200,title="EMA and HMA Length") //square root of 13
rsiLength=input(13, title="RSI Length")
takePartialProfits = input(true, title="Take Partial Profits (if this selected, RSI 13 higher reading over 80 is considered for partial closing ) ")
stopLoss = input(title="Stop Loss%", defval=8, minval=1)
//variables END
//RSI
rsi13=rsi(close,rsiLength)
ema200=ema(close,length)
hma200=HMA(close,length)
//exitOnAroonOscCrossingDown = input(true, title="Exit when Aroon Osc cross down zero ")
// Drawings
//Aroon oscillator
arronUpper = 100 * (highestbars(high, length+1) + length)/length
aroonLower = 100 * (lowestbars(low, length+1) + length)/length
aroonOsc = arronUpper - aroonLower
aroonMidpoint = 0
//oscPlot = plot(aroonOsc, color=color.green)
//midLine= plot(aroonMidpoint, color=color.green)
//topLine = plot(90,style=plot.style_circles, color=color.green)
//bottomLine = plot(-90,style=plot.style_circles, color=color.red)
//fill(oscPlot, midLine, color=aroonOsc>0?color.green:color.red, transp=50)
//fill(topLine,bottomLine, color=color.blue)
//fill(topLine,oscPlot, color=aroonOsc>90?color.purple:na, transp=25)
// RSI
//plot(rsi13, title="RSI", linewidth=2, color=color.purple)
//hline(50, title="Middle Line", linestyle=hline.style_dotted)
//obLevel = hline(80, title="Overbought", linestyle=hline.style_dotted)
//osLevel = hline(30, title="Oversold", linestyle=hline.style_dotted)
//fill(obLevel, osLevel, title="Background", color=rsi13 >=30 ? color.green:color.purple, transp=65) // longTermRSI >=50
hullColor = hma200 > hma200[2] ? #00ff00 : #ff0000
plot(hma200, title="HULL 200", color=hullColor, transp=25)
plot(ema200, title="EMA 200", color=color.orange)
//Entry--
strategy.initial_capital = 50000
strategy.entry(id="Long Entry", comment="LE", qty=(strategy.initial_capital * 0.10)/close, long=true, when=strategy.position_size<1 and hma200 < ema200 and hma200 > hma200[2] and rsi13<70 ) // // aroonOsc<0
//Add
if(strategy.position_size>=1 and close < strategy.position_avg_price and ( crossover(rsi13,30) or crossover(rsi13,40) ) ) // hma200 < ema200 and hma200 > hma200[2] and hma200[2] < hma200[3] ) //and crossover(rsi13,30) aroonOsc<0 //and hma200 > hma200[2] and hma200[2] <= hma200[3] //crossover(rsi13,30)
qty1=(strategy.initial_capital * 0.10)/close
//stopLossVal:= abs(strategy.position_size)>1 ? ( (close > close[1] and close > open and close>strategy.position_avg_price) ? close[1]*(1-stopLoss*0.01) : stopLossVal ) : 0.00
strategy.entry(id="Long Entry", comment="Add", qty=qty1, long=true ) //crossover(close,ema34) //and close>ema34 //crossover(rsi5Val,rsiBuyLine) -- SL="+tostring(stopLossVal, "####.##")
//stopLossVal:= abs(strategy.position_size)>1 ? strategy.position_avg_price*(1-0.5) : 0.00
stopLossVal:= abs(strategy.position_size)>1 ? ( (close > close[1] and close > open and close>strategy.position_avg_price) ? close[1]*(1-stopLoss*0.01) : stopLossVal ) : 0.00
//stopLossVal:= abs(strategy.position_size)>1 ? strategy.position_avg_price*(1-stopLoss*0.01) : 0.00
barcolor(color=strategy.position_size>=1? rsi13>80 ? color.purple: color.blue:na)
//close partial
if(takePartialProfits==true)
strategy.close(id="Long Entry", comment="Partial X points="+tostring(close - strategy.position_avg_price, "####.##"), qty_percent=20 , when=abs(strategy.position_size)>=1 and crossunder(rsi13, 80) and close > strategy.position_avg_price ) //close<ema55 and rsi5Val<20 //ema34<ema55
//close All
//if(exitOnAroonOscCrossingDown)
// strategy.close(id="Long Entry", comment="Exit All points="+tostring(close - strategy.position_avg_price, "####.##"), when=abs(strategy.position_size)>=1 and crossunder(aroonOsc, 0) ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89
//close All on stop loss
strategy.close(id="Long Entry", comment="Stoploss X points="+tostring(close - strategy.position_avg_price, "####.##"), when=abs(strategy.position_size)>=1 and close < stopLossVal ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89
strategy.close(id="Long Entry", comment="hmaXema X points="+tostring(close - strategy.position_avg_price, "####.##"), when=abs(strategy.position_size)>=1 and close > strategy.position_avg_price and crossunder(hma200,ema200) ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89