وسائل لوڈ ہو رہے ہیں... لوڈنگ...

SPARK متحرک پوزیشن سائزنگ اور دوہری اشارے ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-04-12 17:22:47
ٹیگز:سپر ٹرینڈآر ایس آئیاے ٹی آر

img

جائزہ

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

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

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

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

حکمت عملی کے فوائد

  1. دوہری اشارے کی تصدیق: سپر ٹرینڈ اور آر ایس آئی اشارے کو جوڑ کر ، سپارک حکمت عملی ممکنہ اندراج اور باہر نکلنے کے مقامات کو زیادہ درست طریقے سے پہچان سکتی ہے ، جس سے غلط اشاروں کے امکان کو کم کیا جاسکتا ہے۔
  2. متحرک پوزیشن سائزنگ: اس حکمت عملی میں متحرک پوزیشن سائزنگ میکانزم استعمال کیا گیا ہے جو پورٹ فولیو فیصد اور بیعانہ تناسب کی بنیاد پر ہر تجارت کے لئے سرمایہ کی تخصیص کو خود بخود بہتر بناتا ہے ، جس سے سرمایہ کی کارکردگی میں اضافہ ہوتا ہے۔
  3. لچکدار رسک مینجمنٹ: یہ حکمت عملی لچکدار منافع اور سٹاپ نقصان کی ترتیبات پیش کرتی ہے، جس سے صارفین کو ان کی رسک کی ترجیحات کی بنیاد پر مقررہ فیصد یا متحرک طور پر حساب کردہ سطحوں کے درمیان انتخاب کرنے کی اجازت ملتی ہے، جس سے رسک کنٹرول کا عمل ممکن ہوتا ہے۔
  4. اپنی مرضی کے مطابق پیرامیٹرز: حکمت عملی صارفین کو مختلف مارکیٹ کے حالات اور تجارتی ترجیحات کو اپنانے کے ل multiple متعدد ان پٹ پیرامیٹرز ، جیسے اے ٹی آر لمبائی ، ضرب اور آر ایس آئی کی حد کو ایڈجسٹ کرنے کی اجازت دیتی ہے۔

حکمت عملی کے خطرات

  1. مارکیٹ کا خطرہ: سپارک کی حکمت عملی کی دوہری اشارے کی تصدیق اور متحرک پوزیشن سائزنگ میکانزم کے باوجود ، اسے مارکیٹ کے انتہائی حالات میں نقصانات کا خطرہ لاحق ہوسکتا ہے۔
  2. پیرامیٹر کی اصلاح کا خطرہ: حکمت عملی کی کارکردگی بڑی حد تک ان پٹ پیرامیٹرز کے انتخاب پر منحصر ہے۔ پیرامیٹر کی نامناسب ترتیبات سے حکمت عملی کی کارکردگی ناقص ہوسکتی ہے۔
  3. اوور فٹنگ کا خطرہ: اگر حکمت عملی کے پیرامیٹرز کو زیادہ سے زیادہ بہتر بنایا جاتا ہے تو ، اس کا نتیجہ مستقبل میں مارکیٹ کے حالات میں خراب کارکردگی کا باعث بن سکتا ہے۔

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

  1. اضافی اشارے شامل کرنا: سگنل کی تصدیق کی درستگی کو مزید بڑھانے کے لئے دیگر تکنیکی اشارے شامل کرنے پر غور کریں ، جیسے ایم اے سی ڈی ، بولنگر بینڈ وغیرہ۔
  2. فائدہ اٹھانے اور نقصان کو روکنے کے طریقہ کار کو بہتر بنانا: منافع کو بہتر طور پر بچانے اور نقصانات کو محدود کرنے کے ل more ، زیادہ اعلی درجے کی منافع اور نقصان کو روکنے کی حکمت عملیوں ، جیسے ٹریلنگ اسٹاپ ، متحرک منافع کی سطح وغیرہ کی تلاش کریں۔
  3. انکولی پیرامیٹر ایڈجسٹمنٹ: ایک انکولی میکانزم تیار کریں جو مارکیٹ کے حالات کی بنیاد پر حکمت عملی کے پیرامیٹرز کو متحرک طور پر ایڈجسٹ کرے تاکہ مارکیٹ کے بدلتے ہوئے ماحول کو اپنانے کے ل.

خلاصہ

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


/*backtest
start: 2024-03-12 00:00:00
end: 2024-04-11 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("SPARK", shorttitle="SPARK", overlay=true)

// Choose whether to activate the minimal bars in trade feature
minBarsEnabled = input(true, title="Activate Minimal Bars in Trade")
portfolioPercentage = input(10, title="Portfolio Percentage", minval=1, maxval=100)
// Leverage Input
leverage = input(1, title="Leverage", minval=1)

// Calculate position size according to portfolio percentage and leverage
positionSizePercent = portfolioPercentage / 100 * leverage
positionSize = (strategy.initial_capital / close) * positionSizePercent

// Take Profit and Stop Loss settings
useFixedTPSL = input(1, title="Use Fixed TP/SL", options=[1, 0])
tp_sl_step = 0.1
fixedTP = input(2.0, title="Fixed Take Profit (%)", step=tp_sl_step)
fixedSL = input(1.0, title="Fixed Stop Loss (%)", step=tp_sl_step)

// Calculate Take Profit and Stop Loss Levels
takeProfitLong = close * (1 + fixedTP / 100)
takeProfitShort = close * (1 - fixedTP / 100)
stopLossLong = close * (1 - fixedSL / 100)
stopLossShort = close * (1 + fixedSL / 100)

// Plot TP and SL levels on the chart
plotshape(series=takeProfitLong, title="Take Profit Long", color=color.green, style=shape.triangleup, location=location.abovebar)
plotshape(series=takeProfitShort, title="Take Profit Short", color=color.red, style=shape.triangledown, location=location.belowbar)
plotshape(series=stopLossLong, title="Stop Loss Long", color=color.red, style=shape.triangleup, location=location.abovebar)
plotshape(series=stopLossShort, title="Stop Loss Short", color=color.green, style=shape.triangledown, location=location.belowbar)

// Minimum Bars Between Trades Input
minBarsBetweenTrades = input(5, title="Minimum Bars Between Trades")

// Inputs for selecting trading direction
tradingDirection = input("Both", "Choose Trading Direction", options=["Long", "Short", "Both"])

// SuperTrend Function
trendFlow(src, atrLength, multiplier) =>
    atr = atr(atrLength)
    up = hl2 - (multiplier * atr)
    dn = hl2 + (multiplier * atr)
    trend = 1
    trend := nz(trend[1], 1)
    up := src > nz(up[1], 0) and src[1] > nz(up[1], 0) ? max(up, nz(up[1], 0)) : up
    dn := src < nz(dn[1], 0) and src[1] < nz(dn[1], 0) ? min(dn, nz(dn[1], 0)) : dn
    trend := src > nz(dn[1], 0) ? 1 : src < nz(up[1], 0)? -1 : nz(trend[1], 1)
    [up, dn, trend]

// Inputs for SuperTrend settings
atrLength1 = input(7, title="ATR Length for Trend 1")
multiplier1 = input(4.0, title="Multiplier for Trend 1")
atrLength2 = input(14, title="ATR Length for Trend 2")
multiplier2 = input(3.618, title="Multiplier for Trend 2")
atrLength3 = input(21, title="ATR Length for Trend 3")
multiplier3 = input(3.5, title="Multiplier for Trend 3")
atrLength4 = input(28, title="ATR Length for Trend 4")
multiplier4 = input(3.382, title="Multiplier for Trend 4")

// Calculate SuperTrend
[up1, dn1, trend1] = trendFlow(close, atrLength1, multiplier1)
[up2, dn2, trend2] = trendFlow(close, atrLength2, multiplier2)
[up3, dn3, trend3] = trendFlow(close, atrLength3, multiplier3)
[up4, dn4, trend4] = trendFlow(close, atrLength4, multiplier4)

// Entry Conditions based on SuperTrend and Elliott Wave-like patterns
longCondition = trend1 == 1 and trend2 == 1 and trend3 == 1 and trend4 == 1
shortCondition = trend1 == -1 and trend2 == -1 and trend3 == -1 and trend4 == -1

// Calculate bars since last trade
barsSinceLastTrade = barssince(tradingDirection == "Long" ? longCondition : shortCondition)

// Strategy Entry logic based on selected trading direction and minimum bars between trades
if tradingDirection == "Long" or tradingDirection == "Both"
    if longCondition and (not minBarsEnabled or barsSinceLastTrade >= minBarsBetweenTrades)
        strategy.entry("Long", strategy.long, qty=positionSize)
        strategy.exit("TP/SL Long", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)

if tradingDirection == "Short" or tradingDirection == "Both"
    if shortCondition and (not minBarsEnabled or barsSinceLastTrade >= minBarsBetweenTrades)
        strategy.entry("Short", strategy.short, qty=positionSize)
        strategy.exit("TP/SL Short", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)

// Color bars based on position
var color barColor = na
barColor := strategy.position_size > 0 ? color.green : strategy.position_size < 0 ? color.red : na

// Plot colored bars
plotcandle(open, high, low, close, color=barColor)

// Plot moving averages
plot(sma(close, 50), color=color.blue)
plot(sma(close, 200), color=color.orange)

// More customizable trading bot - adding a new indicator
// This indicator is the RSI (Relative Strength Index)

// RSI Inputs
rsi_length = input(14, title="RSI Length")
rsi_oversold = input(30, title="RSI Oversold")
rsi_overbought = input(70, title="RSI Overbought")

// Calculate RSI
rsi = rsi(close, rsi_length)

// Plot RSI
plot(rsi, color=color.purple, title="RSI")

// Entry Conditions based on RSI
rsi_long_condition = rsi < rsi_oversold
rsi_short_condition = rsi > rsi_overbought

// Strategy Entry logic based on RSI
if tradingDirection == "Long" or tradingDirection == "Both"
    if rsi_long_condition and (not minBarsEnabled or barsSinceLastTrade >= minBarsBetweenTrades)
        strategy.entry("Long_RSI", strategy.long, qty=positionSize)
        strategy.exit("TP/SL Long_RSI", from_entry="Long_RSI", stop=stopLossLong, limit=takeProfitLong)

if tradingDirection == "Short" or tradingDirection == "Both"
    if rsi_short_condition and (not minBarsEnabled or barsSinceLastTrade >= minBarsBetweenTrades)
        strategy.entry("Short_RSI", strategy.short, qty=positionSize)
        strategy.exit("TP/SL Short_RSI", from_entry="Short_RSI", stop=stopLossShort, limit=takeProfitShort)


متعلقہ

مزید