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


تخلیق کی تاریخ: 2023-11-02 13:56:23 آخر میں ترمیم کریں: 2023-11-02 13:56:23
کاپی: 0 کلکس کی تعداد: 633
1
پر توجہ دیں
1617
پیروکار

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

جائزہ

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

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

خرید سگنل

خریدنے کے اشارے کے لئے بنیادی محرکات یہ ہیں:

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

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

  3. بند ہونے کی قیمت کھلنے کی قیمت سے زیادہ (سفید K لائن)

مزید خریدنے کے اشارے شاید اس طرح سے ہوں:

  1. اوسط لائن گولڈ فورک: تیز رفتار ای ایم اے لائن پر سست رفتار ای ایم اے لائن کو عبور کریں ، اور دونوں اوسط لائنیں بیک وقت اوپر جائیں

  2. K لائن اور D لائن بیک وقت کم سے زیادہ فروخت ہونے والے علاقے میں داخل ہوتی ہے (جیسے 20 سے نیچے سے 20 سے 80 تک کی حد میں اضافہ)

سگنل فروخت

فروخت کے اشارے کے لئے بنیادی محرکات یہ ہیں:

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

  2. اوسط لکیری ڈیڈ فورک: فاسٹ ای ایم اے لائن کے نیچے سست ای ایم اے لائن کو عبور کریں

  3. K لائن نیچے D لائن کو پار کرتی ہے اور K لائن اور D لائن دونوں نیچے کی طرف رجحان میں ہیں

سٹاپ نقصان سگنل

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

حکمت عملی کا تجزیہ

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

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

ایک ہی بے ترتیب اشارے سے بہت سارے جعلی سگنل پیدا ہوسکتے ہیں۔ اس حکمت عملی میں K لائن اور D لائن (K لائن کی متحرک اوسط) دوہری بے ترتیب اشارے کا مجموعہ استعمال کیا جاتا ہے ، جو جعلی سگنل کو مؤثر طریقے سے فلٹر کرسکتا ہے اور سگنل کی وشوسنییتا کو یقینی بناتا ہے۔

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

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

فائدہ 3: متعدد سگنل اوورلیپنگ ، بہتر درستگی

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

طاقت 4: اوسط لائنیں بڑے رجحانات کی سمت کا تعین کرنے میں معاون ہیں

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

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

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

خطرے کا تجزیہ

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

خطرہ 1: حکمت عملی کے پیرامیٹرز کو اچھی طرح سے ڈیبگ کیا جانا چاہئے

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

خطرہ 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)