ہموار موونگ ایوریج اسٹریٹجی پورٹ فولیو آپٹیمائزیشن


تخلیق کی تاریخ: 2024-01-26 14:57:08 آخر میں ترمیم کریں: 2024-01-26 14:57:08
کاپی: 1 کلکس کی تعداد: 583
1
پر توجہ دیں
1617
پیروکار

ہموار موونگ ایوریج اسٹریٹجی پورٹ فولیو آپٹیمائزیشن

جائزہ

یہ حکمت عملی ہموار حرکت پذیر اوسط اور اسٹوکاسٹک اشارے کے مجموعہ پر مبنی ہے جس کا مقصد رجحان میں زیادہ مواقع پر قبضہ کرنا ہے۔ یہ بنیادی طور پر دو مختلف ادوار کی اشاریہ حرکت پذیر اوسط کا استعمال کرتا ہے تاکہ حکمت عملی کا اشارہ بنایا جاسکے۔ اسٹوکاسٹک اشارے میں K لائن اور D لائن کے کراسنگ کو انٹری ٹائمنگ کے انتخاب کے طور پر استعمال کیا جاتا ہے تاکہ رجحان میں زیادہ سے زیادہ منافع کی توقع کی جاسکے۔

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

یہ حکمت عملی 12 دوروں اور 26 دوروں کی دو ہموار متحرک اوسط کا استعمال کرتی ہے۔ جب تیز لائن نیچے سے سست لائن کو عبور کرتی ہے تو ، زیادہ کام کریں؛ جب تیز لائن اوپر سے نیچے سے سست لائن کو عبور کرتی ہے تو ، خالی کریں۔ جعلی سگنل کو فلٹر کرنے کے ل it ، اس کی ضرورت ہوتی ہے کہ تیز لائن اور سست لائن ایک ہی سمت میں ہوں ، تیز لائن صرف سست لائن کے اوپر زیادہ کام کرسکتی ہے ، اور تیز لائن صرف سست لائن کے نیچے خالی ہے۔

اسٹاکسٹک اشارے میں K لائن اور D لائن کا کراسنگ ایک انٹری ٹائم سلیکشن ہے۔ K لائن جب D لائن کو اوورلوڈ لائن سے نیچے کی طرف سے کراس کرتی ہے تو ، زیادہ کام کریں۔ K لائن جب D لائن کو اوورلوڈ لائن سے نیچے کی طرف سے کراس کرتی ہے تو ، خالی کریں۔

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

اسٹریٹجک فوائد

  • ہموار حرکت پذیری اوسط حکمت عملی خود ہی ایک رجحان کی پیروی کرنے کے لئے آسان ہے.
  • Stochastic اشارے کا استعمال کرتے ہوئے Noise کو فلٹر کریں ، منافع کی امکانات کو بہتر بنائیں
  • سست لائن کے قریب واپس جانے کے لئے تیز اور سست لائن کا مجموعہ ، بہتر کھیلنے کے مواقع حاصل کریں
  • اسٹوکاسٹک اشارے میں K لائن اور D لائن کراس مجموعہ استعمال کیا جاتا ہے ، جس سے بہتر انٹری پوائنٹس کا انتخاب کیا جاسکتا ہے

لہذا، اس حکمت عملی کو موقع پر قبضہ کرنے کے لئے منتخب کیا جا سکتا ہے، جس سے زیادہ منافع بخش شرح حاصل ہوتی ہے.

خطرے کا تجزیہ

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

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

اصلاح کی سمت

اس حکمت عملی کو مزید بہتر بنانے کے لیے مندرجہ ذیل نکات پر غور کیا جا سکتا ہے:

  1. مختلف متحرک اوسط پیرامیٹرز کے مجموعے کی جانچ کریں اور بہتر پیرامیٹرز تلاش کریں
  2. مختلف stochastic پیرامیٹرز کے مجموعے کی جانچ
  3. زیادہ سے زیادہ سٹاپ نقصان کی حکمت عملی
  4. متحرک نقصانات میں اضافے کی شرح پر مبنی
  5. مختلف نسلوں کے لئے مختلف دورانیہ پیرامیٹرز کے مجموعے کو بہتر بنانے کی جانچ
  6. مشین لرننگ الگورتھم کو بہتر بنانے کے پیرامیٹرز کی جانچ

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-01-18 00:00:00
end: 2024-01-25 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// author SoftKill

strategy(title="Price EMA with stock", shorttitle="EMA STOCH", overlay=true)
src = input(title="Source", type=input.source, defval=close)

src_0 = src[0]
src_1 = src[1]
src_2 = src[2]
src_3 = src[3]
src_4 = src[4]

len50 = input(50, minval=1, title="Length")
src50 = input(close, title="Source")
out50 = ema(src50, len50)
len100 = input(100)
src100 = input(close, title="Source")
out100 = ema(src100, len100)

len1 = input(1, minval=1, title="Length")
src1 = input(close, title="Source")
out1 = sma(src1, len1)

length = input(5, minval=1)
OverBought = input(80)
OverSold = input(20)
smoothK = 3
smoothD = 3

k = sma(stoch(close, high, low, length), smoothK)
d = sma(k, smoothD)
cu = crossover(k,OverSold)
co = crossunder(k,OverBought)

sma_down = crossunder(out1, out50)
sma_up = crossover(out1,out50)

//if (not na(k) and not na(d))
  //  if (co and k < OverSold)
    //    strategy.entry("StochLE", strategy.long, comment="StochLE")
    //if (cu and k > OverBought)
     //   strategy.entry("StochSE", strategy.short, comment="StochSE")

crossCandle_4 = crossover(src[4],out50)
crossCandleUnder_4= cross(src[4],out50)
crossCandle_3 = crossover(src[3],out50)
crossCandleUnder_3= crossunder(src[3],out50)
crossCandle_2 = crossover(src[2],out50)
crossCandleUnder_2= crossunder(src[2],out50)
crossCandle_1 = crossover(src[1],out50)
crossCandleUnder_1= crossunder(src[1],out50)
crossCandle_0 = crossover(src[0],out50)
crossCandleUnder_0= crossunder(src[0],out50)

conditionOver = (crossCandle_4 or crossCandle_3 or crossCandle_2 or crossCandle_1 or crossCandle_0)
conditionUnder =(crossCandleUnder_4 or crossCandleUnder_3 or crossCandleUnder_2 or crossCandleUnder_1 or crossCandleUnder_0)

touch4 = (cross(low[4],out50) or cross(high[4],out50))
touch3 = (cross(low[3],out50) or cross(high[3],out50))
touch2 = (cross(low[2],out50) or cross(high[2],out50))
touch1 = (cross(low[1],out50) or cross(high[1],out50))

touch = touch1 or touch2 or touch3 or touch4

//and sma_up
//and sma_down

// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src_macd = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src_macd, fast_length) : ema(src_macd, fast_length)
slow_ma = sma_source ? sma(src_macd, slow_length) : ema(src_macd, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

//plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
//plot(macd, title="MACD", color=col_macd, transp=0)
//plot(signal, title="Signal", color=col_signal, transp=0)


// plot((conditionOver or conditionUnder or touch)  and src[0] >= out50 and close >= out50 and  (cu) and out50 > out100 and hist>=0 , title="Buy", style=plot.style_columns, color=color.lime)
// plot((conditionOver or conditionUnder or touch)  and src[0] <= out50 and close <= out50 and  (co) and out50< out100 and hist<=0 , title="sell", style=plot.style_columns, color=color.red)


long_cond = ((conditionOver or conditionUnder or touch)  and src[0] >= out50 and close > out50 and  (cu) and out50 > out100 and hist>=0)
short_cond = ((conditionOver or conditionUnder or touch)  and src[0] <= out50 and close < out50 and  (co) and out50< out100 and hist<=0)

tp=input(0.1)
sl=input(0.1)

strategy.entry("long",strategy.long, when=long_cond)
strategy.entry("short",strategy.short, when=short_cond)

strategy.exit("X_long", "long", profit=close * tp / syminfo.mintick,  loss=close * sl / syminfo.mintick, when=touch  )
strategy.exit("x_short", "short",profit=close * tp / syminfo.mintick,loss=close * sl / syminfo.mintick,when = touch )

// //tp = input(0.0003, title="tp")
// tp = 0.0003
// //sl = input(1.0 , title="sl")
// sl = 1.0
// strategy.exit("closelong", "long" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closelong")
// strategy.exit("closeshort", "short" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closeshort")