لچکدار سٹاپ نقصان کے ساتھ اسٹوکاسٹک اشارے پر مبنی قلیل مدتی تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-28 10:45:41
ٹیگز:

جائزہ

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

حکمت عملی منطق

انٹری منطق

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

خاص طور پر ، جب اسٹوکاسٹک اشارے پر سنہری کراس ہوتا ہے ، اگر٪ K کی قیمت 80 سے کم ہے (زیادہ نہیں خریدی گئی) ، تو ایک طویل پوزیشن لی جائے گی۔ اسٹوکاسٹک ڈیتھ کراس پر ، اگر٪ K کی قیمت 20 سے زیادہ ہے (زیادہ فروخت نہیں ہوئی) ، تو ایک مختصر پوزیشن شروع کی جائے گی۔

GoLong=crossover(k,d) and k<80
GoShort=crossunder(k,d) and k>20

نقصان کی منطق کو روکیں

یہ حکمت عملی ایک لچکدار سٹاپ نقصان نقطہ نظر کا استعمال کرتا ہے، پچھلے محور پوائنٹس کی بنیاد پر سٹاپ کی قیمت مقرر کرتا ہے، جیسا کہ ذیل میں دکھایا گیا ہے:

piv_high = pivothigh(high,1,1)
piv_low = pivotlow(low,1,1)

stoploss_long=valuewhen(piv_low,piv_low,0)
stoploss_short=valuewhen(piv_high,piv_high,0) 

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

اس کے علاوہ سٹاپ قیمت میں مزید اصلاح کے لیے موجودہ مدت کی سب سے زیادہ اور سب سے کم قیمتوں پر بھی غور کیا جاتا ہے۔

if GoLong
    stoploss_long := low<pl ? low : pl
if GoShort
    stoploss_short := high>ph ? high : ph

فوائد

  1. اوپر اور نیچے کا پیچھا کرنے سے بچنے کے لئے اسٹوکاسٹک کا استعمال کرتے ہوئے؛

  2. لچکدار سٹاپ نقصان مارکیٹ کی تبدیلیوں پر عمل کرتا ہے اور سٹاپ قیمت کو بہتر بناتا ہے۔

  3. سٹاپ نقصان کی بنیاد پر محور نقطہ توڑ زیادہ مؤثر ہے؛

  4. موجودہ سب سے زیادہ اور سب سے کم قیمتوں کا استعمال کرتے ہوئے سٹاپ قیمت کی اصلاح سٹاپ کو زیادہ درست بنا دیتا ہے.

خطرات اور حل

  1. اسٹوکاسٹک سے غلط سگنل کا خطرہ

    • حل: غلط سگنل سے بچنے کے لئے سگنل کو دوسرے اشارے سے تصدیق کریں
  2. اسٹاپ نقصان کا خطرہ اور نقصان میں اضافہ

    • حل: رکنے کا فاصلہ کم کریں، یا Chandelier Exit جیسے طریقوں کا استعمال کریں
  3. تجارت کی اعلی تعدد اور کمیشن کا خطرہ

    • حل: تجارت کی تعداد کو کم کرنے کے لئے اندراج کے قوانین کو نرم کریں

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

  1. سٹاپ نقصان کو بہتر بنانے کے لئے، Chandelier باہر نکلیں، پیچھے سٹاپ، oscillating سٹاپ نقصان وغیرہ جیسے طریقوں کا استعمال کرتے ہوئے

  2. اسٹوکاسٹک غلط سگنل سے بچنے کے لئے دوسرے اشارے کے ساتھ اندراج کے قوانین کو بہتر بنائیں

  3. منافع حاصل کرنے کو بہتر بنائیں ، منافع میں اضافے کے لئے ٹریلنگ منافع کا ہدف ، آسکیلنگ منافع کا ہدف وغیرہ کا استعمال کریں

  4. ہر تجارت کے خطرے کے کنٹرول میں پوزیشن کا سائز شامل کریں، جیسے فی تجارت مقررہ مقدار، مقررہ خطرے کا فیصد وغیرہ

  5. مختلف مارکیٹوں کی بنیاد پر K، D ادوار، ہموار وغیرہ جیسے پیرامیٹرز کو بہتر بنائیں

خلاصہ

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


/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 2h
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/
// © Peter_O

//@version=4
//strategy(title="TradingView Alerts to MT4 MT5 example with cancelling pending orders", commission_type=strategy.commission.cash_per_order, commission_value=0.00003, overlay=true, default_qty_value=100000, initial_capital=1000)

// This script was created for educational purposes only.
// It is showing how to create pending orders and cancel them
// Together with syntax to send these events through TradingView alerts system
// All the way to brokers for execution

TakeProfitLevel=input(400)

// **** Entries logic **** {
periodK = 13 //input(13, title="K", minval=1)
periodD = 3 //input(3, title="D", minval=1)
smoothK = 4 //input(4, title="Smooth", minval=1)
k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)
// plot(k, title="%K", color=color.blue)
// plot(d, title="%D", color=color.orange)
// h0 = hline(80)
// h1 = hline(20)
// fill(h0, h1, color=color.purple, transp=75)

GoLong=crossover(k,d) and k<80
GoShort=crossunder(k,d) and k>20
// } End of entries logic

// **** Pivot-points and stop-loss logic **** {
piv_high = pivothigh(high,1,1)
piv_low = pivotlow(low,1,1)
var float stoploss_long=low
var float stoploss_short=high

pl=valuewhen(piv_low,piv_low,0)
ph=valuewhen(piv_high,piv_high,0)

if GoLong 
    stoploss_long := low<pl ? low : pl
if GoShort 
    stoploss_short := high>ph ? high : ph
plot(stoploss_long, color=color.lime, title="stoploss_long")
plot(stoploss_short, color=color.red, title="stoploss_short")
// } End of Pivot-points and stop-loss logic

CancelLong=crossunder(low,stoploss_long) and strategy.position_size[1]<=0 and strategy.position_size<=0
CancelShort=crossover(high,stoploss_short) and strategy.position_size[1]>=0 and strategy.position_size>=0
entry_distance=input(10, title="Entry distance for stop orders")

plotshape(CancelLong ? stoploss_long[1]-10*syminfo.mintick : na, location=location.absolute, style=shape.labelup, color=color.gray, textcolor=color.white, text="cancel\nlong", size=size.tiny)
plotshape(CancelShort ? stoploss_short[1]+10*syminfo.mintick : na, location=location.absolute, style=shape.labeldown, color=color.gray, textcolor=color.white, text="cancel\nshort", size=size.tiny)

strategy.entry("Long", strategy.long, when=GoLong, stop=close+entry_distance*syminfo.mintick)
strategy.exit("XLong", from_entry="Long", stop=stoploss_long, profit=TakeProfitLevel)
strategy.cancel("Long", when = CancelLong)
strategy.entry("Short", strategy.short, when=GoShort, stop=close-entry_distance*syminfo.mintick)
strategy.exit("XShort", from_entry="Short", stop=stoploss_short, profit=TakeProfitLevel)
strategy.cancel("Short", when = CancelShort)

if GoLong
    alertsyntax_golong='long offset=' + tostring(entry_distance) + ' slprice=' + tostring(stoploss_long) + ' tp=' + tostring(TakeProfitLevel)
    alert(message=alertsyntax_golong, freq=alert.freq_once_per_bar_close)
if GoShort
    alertsyntax_goshort='short offset=' + tostring(-entry_distance) + ' slprice=' + tostring(stoploss_short) + ' tp=' + tostring(TakeProfitLevel)
    alert(message=alertsyntax_goshort, freq=alert.freq_once_per_bar_close)
if CancelLong
    alertsyntax_cancellong='cancel long'
    alert(message=alertsyntax_cancellong, freq=alert.freq_once_per_bar_close)
if CancelShort
    alertsyntax_cancelshort='cancel short'
    alert(message=alertsyntax_cancelshort, freq=alert.freq_once_per_bar_close)
    


مزید