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

دوہری دباؤ کی مقداری تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-02 13:56:23
ٹیگز:

img

جائزہ

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

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

سگنل خریدیں

اہم خرید سگنل اس وقت ٹرگر ہوتا ہے جب:

  1. دونوں K اور D لائنز oversold علاقے (مثال کے طور پر 20) کے نیچے کراس اور اوپر کی باری ہے، اور دونوں K اور D بڑھ رہے ہیں

  2. حجم ایک حد سے زیادہ ہے (مثال کے طور پر اوسط حجم کا 1.4 گنا)

  3. بند کھلے سے اوپر ہے (سفید موم بتی)

اضافی خرید سگنل مندرجہ ذیل سے آسکتے ہیں:

  1. گولڈن کراس: تیز EMA سست EMA سے تجاوز کرتا ہے ، دونوں میں اضافہ ہوتا ہے

  2. دونوں K اور D کم سے وسط زون میں بڑھتے ہیں (مثال کے طور پر 20 سے نیچے سے 20-80 تک)

سگنل فروخت کریں

اہم فروخت سگنل اس وقت ٹرگر ہوتے ہیں جب:

  1. K اور D دونوں زیادہ خریدنے والے علاقے میں داخل ہوتے ہیں (مثال کے طور پر 80 سے اوپر)

  2. موت کا کراس: تیز EMA سست EMA سے نیچے کراس کرتا ہے

  3. K D کے نیچے گزر جاتا ہے، اور K اور D دونوں گر رہے ہیں

سٹاپ نقصان

خریداری کی قیمت سے ایک فیصد (مثال کے طور پر 6٪) نیچے اسٹاپ نقصان کی سطح کے طور پر مقرر کیا جاتا ہے۔ اس سے نیچے گرنے سے اسٹاپ نقصان شروع ہوتا ہے۔

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

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

فائدہ 1: دوہری اسٹوکاسٹک غلط سگنل سے بچتا ہے

سنگل اسٹوکاسٹک بہت سے غلط سگنل پیدا کرسکتا ہے۔ ڈبل اسٹوکاسٹک امتزاج غلط سگنل کو فلٹر کرتا ہے اور وشوسنییتا کو بہتر بناتا ہے۔

فائدہ 2: حجم شور کو فلٹر کرتا ہے اور رجحان کو یقینی بناتا ہے

حجم کی حالت کم حجم کے غیر رجحان والے مقامات کو فلٹر کرتی ہے اور پھنس جانے کے خطرے کو کم کرتی ہے۔

فائدہ 3: متعدد سگنل درستگی کو بہتر بناتے ہیں

متعدد اشارے کو حقیقی ٹریڈنگ سگنل کو متحرک کرنے کے لئے سیدھ کرنا ضروری ہے۔ اس سے سگنل کی وشوسنییتا میں اضافہ ہوتا ہے۔

فائدہ 4: چلتی اوسط مجموعی رجحان کی مدد کرتی ہے

دوہری حرکت پذیر اوسط جیسے قواعد سگنل کو مجموعی رجحان کے مطابق بناتے ہیں۔ اس سے مخالف رجحان کی تجارت سے بچتا ہے۔

فائدہ 5: سٹاپ نقصان کا خطرہ کنٹرول کرتا ہے

سٹاپ نقصان منطق منافع کا احساس اور واحد تجارت پر نقصان کنٹرول کرتا ہے.

خطرے کا تجزیہ

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

خطرہ 1: پیرامیٹرز کو احتیاط سے بہتر بنانے کی ضرورت ہے

حکمت عملی میں متعدد پیرامیٹرز ہیں۔ انہیں مختلف آلات کے لئے اصلاح کی ضرورت ہے ، ورنہ کارکردگی متاثر ہوتی ہے۔

خطرہ 2: سٹاپ نقصان کی جگہ کا خطرہ فرق کو سمجھنا ضروری ہے

سٹاپ نقصان کا نقطہ قیمت کے فرق کے منظرناموں کا حساب لگانا چاہئے۔ اسے خریدنے کی قیمت کے بہت قریب نہیں ہونا چاہئے۔

خطرہ 3: لیکویڈیٹی کے خطرے کی نگرانی

غیر لیکویڈ آلات کے لئے ، حجم کے قواعد بہت زیادہ سگنل کو فلٹر کرسکتے ہیں۔ حجم کی حد کو نرم کرنے کی ضرورت ہے۔

خطرہ 4: وقت کے فریموں کے درمیان واپس دیکھنے کا مسئلہ

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

بہتر مواقع

اسٹریٹیجی کو مندرجہ ذیل شعبوں میں بہتر بنایا جاسکتا ہے:

  1. استحکام کے لئے پیرامیٹرز کو بہتر بنائیں

  2. موافقت پذیر پیرامیٹرز کے لئے مشین لرننگ متعارف کروانا

  3. سٹاپ نقصان کی شرح کو کم کرنے کے لئے سٹاپ نقصان کی حکمت عملی کو بہتر بنائیں

  4. تجارتی تعدد کو کم کرنے کے لئے فلٹرز شامل کریں

  5. معاوضے کو بہتر بنانے کے لئے مشروط احکامات یا منافع لینے کی تلاش کریں

موقع نمبر 1: استحکام کے لئے پیرامیٹرز کو بہتر بنائیں

جینیاتی الگورتھم جیسے طریقوں سے مارکیٹ کے نظام میں استحکام کے لئے پیرامیٹرز کو منظم طریقے سے بہتر بنایا جاسکتا ہے۔

موقع 2: موافقت پذیر پیرامیٹرز کے لئے مشین لرننگ متعارف کروانا

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

موقع 3: سٹاپ نقصان کی شرح کو کم کرنے کے لئے سٹاپ نقصان کی حکمت عملی کو بہتر بنائیں

بہتر سٹاپ نقصان الگورتھم خطرے کے کنٹرول کو برقرار رکھتے ہوئے غیر ضروری اسٹاپ کو کم کر سکتے ہیں.

موقع 4: تجارتی تعدد کو کم کرنے کے لئے فلٹرز شامل کریں

مضبوط فلٹرز تجارت کی تعدد کو کم کرسکتے ہیں ، لاگت کو کم کرسکتے ہیں ، اور فی تجارت واپسی کو بہتر بناسکتے ہیں۔

موقع 5: مشروط احکامات یا منافع لینے کی تلاش کریں

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

نتیجہ

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


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// SW SVE - Stochastic+Vol+EMAs [Sergio Waldoke]
// Script created by Sergio Waldoke (BETA VERSION v0.5, fine tuning PENDING)
// Stochastic process is the main source of signals, reinforced on buying by Volume. Also by Golden Cross.
// Selling is determined by K and D entering overselling zone or EMA's Death Cross signal, the first occurring,
// and some other signals combined.
// Buy Long when you see a long buy arrow.
// Sell when you see a close arrow.
// This is a version to be tuned and improved, but already showing excelent results after tune some parameters
// according to the kind of market.
// Strategy ready for doing backtests.

// SVE SYSTEM DESIGN:
// Buy Signal Trigger:
// - Both Stoch <= 20 crossing up and both growing and green candle and Vol/sma vol >= 1.40 Avg Vol
//   or
// - Both Stoch growing up and Vol/sma vol >= 1.40 Avg Vol and green candle and
//   both prior Stoch crossing up
//   or
//   [OPTIONAL]: (Bad for BTC 2018, excelent for 2017)
// - Crossingover(fast_ema, slow_ema) and growing(fast_ema) and growing(slow_ema) and green candle

// Exit position:
// - Both Stoch <= 20 and Both Stoch were > 20 during position
//   or
// - CrossingUnder(Fast EMA, Medium EMA)
//   or   [OPTIONAL] (Better for BTC 2018, Worse for BNB 1H)
// - CrossingUnder(k, d) and (k and d starting over over_buying) and (k and d descending) and k crossing down over_buying line

//calc_on_every_tick=true,
//calc_on_order_fills=true,   (affects historical calculation, triggers in middle of the bar, may be better for automatic orders)
strategy("SW SVE - Stochastic+Vol+EMAs [Sergio Waldoke]", shorttitle="SW SVE", overlay=true, max_bars_back=5000,
         default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency="USD",
         commission_type=strategy.commission.percent, commission_value=0.25)

//Strategy Parameters
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear  = input(defval = 2018, title = "From Year", minval = 2009, maxval = 2200)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToYear    = input(defval = 2030, title = "To Year", minval = 2009, maxval = 2200)

//Indicator Parameters
//Original defaults for 4HS: 14, 3, 80, 20,   14, 23, 40,   20, 40,   3:
stoch_k = input(title="Stoch K",  defval=14, minval=1)
stoch_d = input(title="Stoch D",  defval=3, minval=1)
over_buying  = input(title="Stoch Overbuying Zone",  defval=80, minval=0, maxval=100)
over_selling = input(title="Stoch Overselling Zone",  defval=20, minval=0, maxval=100)

fast_ema_periods = input(title="Fast EMA (Death Cross)",  defval=14, minval=1, maxval=600)
slow_ema_periods = input(title="Slow EMA (Death Cross)",  defval=23, minval=1, maxval=600)
trend_ema_periods = input(title="Slowest EMA (Trend Test)",  defval=40, minval=1, maxval=600)

volume_periods = input(title="Volume Periods",  defval=20, minval=1, maxval=600)
volume_factor = input(title="Min Volume/Media Increase (%)",  defval=80, minval=-100) / 100 + 1

threshold_sl_perc = input(title="[Sell Trigger] Stop Loss Threshold %", defval=6.0, type=float, minval=0, maxval=100)

//before_buy = input(title="# Growing Before Buy",  defval=2, minval=1)
//before_sell = input(title="# Decreasing Before Sell",  defval=1, minval=1)
//stepsignal = input(title="Show White Steps", type=bool, defval=true)
//steps_base = input(title="White Steps Base",  defval=242, minval=0)

//Signals
fast_ema = ema(close, fast_ema_periods)
slow_ema = ema(close, slow_ema_periods)
trend_ema = ema(close, trend_ema_periods)
k = stoch(close, high, low, stoch_k)
d = sma(k, stoch_d)
vol_ma = sma(volume, volume_periods)

//REVIEW CONSTANT 1.75:
in_middle_zone(a) => a > over_selling * 1.75 and a < over_buying
growing(a) => a > a[1] 

was_in_middle_zone = k == d
was_in_middle_zone := was_in_middle_zone[1] or in_middle_zone(k) and in_middle_zone(d)

//Buy Signal Trigger:
//- Both Stoch <= 20 crossing up and both growing and 
//  green candle and Vol/sma vol >= 1.40 Avg Vol
buy = k <= over_selling and d <= over_selling and crossover(k, d) and growing(k) and growing(d) and
      close > open and volume/vol_ma >= volume_factor

//or
//- Both Stoch growing up and Vol/sma vol >= 1.40 Avg Vol and green candle and
//  both prior Stoch crossing up
buy := buy or (growing(k) and growing(d) and volume/vol_ma >= volume_factor and close > open and
              crossover(k[1], d[1]) )
//Worse:
//              (crossover(k[1], d[1]) or (crossover(k, d) and k[1] <= over_selling and d[1] <= over_selling) ) )

//or
//  [OPTIONAL]: (Bad for BTC 2018, excelent for 2017)
//- Crossingover(fast_ema, slow_ema) and growing(fast_ema) and growing(slow_ema) and green candle
buy := buy or (crossover(fast_ema, slow_ema) and growing(fast_ema) and growing(slow_ema) and close > open)


//Debug:
//d1 = close > open  ? 400 : 0
//plot(d1+5200, color=white, linewidth = 3, style = stepline)

//Exit position:
//- Both Stoch <= 20 and Both Stoch were > 20 during position
sell = k <= over_selling and d <= over_selling and was_in_middle_zone

//  or
//- CrossingUnder(Fast EMA, Medium EMA)
sell := sell or crossunder(fast_ema, slow_ema)

//  or  [OPTIONAL] (Better for BTC 2018, Worse for BNB 1H)
//- CrossingUnder(k, d) and (k and d starting over over_buying) and (k and d descending) and k crossing down over_buying line
sell := sell or (crossunder(k, d) and k[1] >= over_buying and d[1] >= over_buying and
                 not growing(k) and not growing(d) and k <= over_buying)

color = buy ? green : red

bought_price = close
bought_price := nz(bought_price[1])

already_bought = false
already_bought := nz(already_bought[1], false)

//Date Ranges
buy  := buy and  not already_bought


//d1 = buy ? 400 : 0
//plot(d1+6500, color=white, linewidth = 3, style = stepline)

was_in_middle_zone := (not buy and was_in_middle_zone) or (in_middle_zone(k) and in_middle_zone(d))

already_bought   := already_bought[1] or buy
bought_price := buy ? close * (1 - threshold_sl_perc/100) : bought_price[1]
trigger_SL = close < bought_price[0]
sell := sell or trigger_SL

sell := sell and  
                 already_bought and not buy and (was_in_middle_zone or trigger_SL)

//plot((sell?400:0)+5200, title="Buy-Sell", color=yellow, linewidth = 3, style = stepline)
                 
already_bought   := already_bought[0] and not sell
bought_price := sell ? 0 : bought_price[0]

//plot((was_in_middle_zone?400:0)+5200, title="Buy-Sell", color=yellow, linewidth = 3, style = stepline)

was_in_middle_zone := not sell and was_in_middle_zone

//Plot signals
plot(fast_ema, title="Fast EMA", color=red, linewidth = 4)
plot(slow_ema, title="Slow EMA", color=blue, linewidth = 4)
plot(trend_ema, title="Trend EMA", color=yellow, linewidth = 4)

//Stop Loss
plot(bought_price, color=gray, linewidth=2, style=cross, join=true, title="Stop Loss")

//Y = stepsignal ? lowest(40) : na
//Y = steps_base
//plot(mysignal+Y, title="Steps", color=white, linewidth = 3, style = stepline)
//Unit steps - for debugging
//plot(mysteps+Y, title="Steps2", color=yellow, linewidth = 3, style = stepline)

//Bought or not - for debugging
//plot((already_bought?400:0)+5200, title="Buy-Sell", color=yellow, linewidth = 3, style = stepline)
//plot((sell?400:0)+5200, title="Buy-Sell", color=yellow, linewidth = 3, style = stepline)

plotshape(buy, title="Buy arrows", style=shape.arrowup, location=location.belowbar, color=color, text="Buy", textcolor=color, size=size.huge, transp=30)
plotshape(sell, title="Sell arrows", style=shape.arrowdown, location=location.abovebar, color=color, text="Sell", textcolor=color, size=size.huge, transp=30)

//if n>2000
strategy.entry("buy", strategy.long, when=buy)
strategy.close_all(when=sell)

//plot(strategy.equity, title="Equity", color=white, linewidth = 4, style = line)

//AlertS trigger
//msg = "[SW Magic Signals EMA] BUY/SELL Signal has been triggered." + "(" + tostring(fastema) + ", " + tostring(slowema) + ") on " + tickerid + ", " + period + "."
msg = "SW SVE BUY/SELL Signal has been triggered. (#, #) on EXCH:PAIR, period: #."

alertcondition(buy or sell, title="SW SVE (BUY/SELL SIGNAL)", message=msg)
alertcondition(buy, title="SW SVE (BUY SIGNAL)", message=msg)
alertcondition(sell, title="SW SVE (SELL SIGNAL)", message=msg)


مزید