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