رفتار سے چلنے والی اوسط استحکام کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-25 11:39:00
ٹیگز:

img

جائزہ

یہ حکمت عملی بنیادی طور پر خریدنے کے وقت کا تعین کرنے کے لئے حرکت پذیر اوسط لائنوں HMA اور EMA کے ذریعہ تشکیل شدہ استحکام کا استعمال کرتی ہے۔ جب HMA EMA سے تجاوز کرتا ہے تو ، یہ سمجھا جاتا ہے کہ استحکام ختم ہو گیا ہے اور ایک نیا عروج کا رجحان تشکیل دیا گیا ہے ، لہذا خریدیں جب HMA EMA سے اوپر ایک ہی وقت میں عبور کرتا ہے۔

یہ حکمت عملی اوور بک اور اوور سیلڈ حالات کا پتہ لگانے کے لئے آر ایس آئی اشارے کو بھی جوڑتی ہے۔ جب آر ایس آئی 70 سے نیچے ہوتا ہے تو یہ خریدنے کی اجازت دیتا ہے اور جب آر ایس آئی 80 سے اوپر ہوتا ہے تو جزوی منافع لینے پر غور کرتا ہے۔

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

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

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

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

فوائد کا تجزیہ

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

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

خطرے کا تجزیہ

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

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

اصلاح کی ہدایات

مذکورہ بالا خطرات کو مدنظر رکھتے ہوئے، اس حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:

  1. مارکیٹ کی اتار چڑھاؤ کی بنیاد پر پوزیشنوں کو متحرک طور پر ایڈجسٹ کرنے کے لئے اتار چڑھاؤ کے اشارے کو یکجا کریں.

  2. غیر ضروری واپسی کی تجارت سے بچنے کے لئے رجحان اشارے کے فیصلوں کو بڑھانا۔

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

  4. بڑے پیمانے پر واحد نقصانات سے بچنے کے لئے ٹائم اسٹاپ استعمال کریں۔

خلاصہ

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


/*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
    

مزید