حجم قیمت اشارے متوازن تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-24 14:35:13
ٹیگز:

img

جائزہ

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

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

اس حکمت عملی کے اہم نکات یہ ہیں:

  1. جب آر ایس آئی oversold سطح سے نیچے ہے اور حالیہ 10 باروں کے لئے oversold رہتا ہے، یہ ایک oversold سگنل سمجھا جاتا ہے
  2. حجم کی قیمت کے شرائط کے متعدد سیٹ کی وضاحت کی جاتی ہے ، اور حجم کی قیمت کے اشارے کے طویل سگنل کو متحرک کرنے کے لئے ان تمام شرائط کو ایک ہی وقت میں پورا کرنے کی ضرورت ہے۔
  3. جب قریبی قیمت 13 پیریڈ ایس ایم اے سے اوپر ٹوٹ جاتی ہے تو اسے قیمت توڑنے کا اشارہ سمجھا جاتا ہے
  4. ATR چھوٹے دورانیے ATR بڑے دورانیے کے مقابلے میں کم ہونے کی وجہ سے بھی ایک اہم طویل سگنل ہے
  5. یہ حکمت عملی آخری طویل اندراج کا فیصلہ کرنے کے لئے مذکورہ بالا تمام اشاروں کو یکجا کرتی ہے۔

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

اس کے علاوہ ، حکمت عملی میں 3 حجم کی حدیں طے کی گئی ہیں اور مختلف ٹائم فریم کے اعداد و شمار کی بنیاد پر حجم کی قیمت کی متعدد شرائط طے کی گئی ہیں۔ مثال کے طور پر ، 90 کی مدت کی حجم کی قیمت 49 کی مدت سے 1.5 گنا زیادہ ہے۔ جب ان تمام حجم کی قیمت کی شرائط ایک ہی وقت میں پوری ہوجاتی ہیں تو ، حجم کی قیمت کا اشارے ایک طویل سگنل تیار کرتا ہے۔

قیمت کے پہلو پر ، حکمت عملی 13 مدت کے ایس ایم اے کا حساب لگاتی ہے اور جب قیمت ایس ایم اے سے اوپر ٹوٹ جاتی ہے تو باروں کی تعداد گنتی ہے۔ جب قیمت ایس ایم اے سے اوپر ٹوٹ جاتی ہے اور توڑنے کے بعد باروں کی تعداد 5 سے کم ہوتی ہے تو ، اسے قیمت توڑنے کا اشارہ سمجھا جاتا ہے۔

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

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

فوائد

اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:

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

  2. اوور سیلڈ + حجم قیمت + قیمت بریک آؤٹ کی ٹرپل تصدیق کا طریقہ کار قابل اعتماد انٹری سگنلز کو یقینی بناتا ہے۔ اوور سیلڈ کی حالت اندراجات کے لئے بنیادی وقت فراہم کرتی ہے ، جبکہ حجم قیمت اور قیمت کے اشارے سے اضافی تصدیق طویل سگنلز کی وشوسنییتا کو مزید یقینی بناتی ہے۔

  3. اسٹاپ نقصان اور منافع حاصل کرنے کا طریقہ کار ہر تجارت کے خطرے کو سختی سے کنٹرول کرتا ہے۔ ہر تجارت کے خطرے کو معقول حد تک کنٹرول کرتے ہوئے منافع کو زیادہ سے زیادہ کرنے کے لئے ذاتی رسک اشتہار کی بنیاد پر اسٹاپ نقصان اور منافع لینے کے پیرامیٹرز کو ایڈجسٹ کیا جاسکتا ہے۔

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

خطرات اور جوابی اقدامات

اس حکمت عملی کے ساتھ کچھ خطرات بھی ہیں:

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

  2. محدود منافع کی صلاحیت۔ اجتماعی فیصلے کے لئے متعدد اشارے کو مربوط کرنے والی حکمت عملی کی حیثیت سے ، اس کے اشارے نسبتا less کم تجارت فی یونٹ وقت کے ساتھ زیادہ محتاط ہوتے ہیں ، لہذا منافع کی صلاحیت میں کچھ حدود ہیں۔

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

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

اس حکمت عملی کو مندرجہ ذیل پہلوؤں میں مزید بہتر بنایا جاسکتا ہے:

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

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

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

  4. دوسرے اشارے کے ساتھ ٹیسٹ کے مجموعے۔ یہ حکمت عملی بنیادی طور پر RSI ، ATR اور SMA جیسے اشارے کا استعمال کرتی ہے۔ تجارتی سگنل کے ذرائع کو متنوع اور بہتر بنانے کے لئے بولنگر بینڈ اور KDJ جیسے دوسرے اشارے کو بھی جوڑا جاسکتا ہے۔

نتیجہ

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


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

// © Kimply_Tr
//@version=5

// Strategy settings and parameters
strategy(title='Volume ValueWhen Velocity', overlay=true)

// Define the stop-loss and take-profit percentages for the long strategy
long_stoploss_value = input.float(defval=3, title='Stop-Loss (SL) %', minval=0, group='▶ Stop Loss/Take Profit => Long-Strategy', inline='2')
long_stoploss_percentage = close * (long_stoploss_value / 100) / syminfo.mintick  // Calculate long stop-loss percentage
long_takeprofit_value = input.float(defval=2, title='Take-Profit (TP) %', minval=0, group='▶ Stop Loss/Take Profit => Long-Strategy', inline='2')
long_takeprofit_percentage = close * (long_takeprofit_value / 100) / syminfo.mintick  // Calculate long take-profit percentage

// Define parameters related to ValueWhen occurrences
occurrence_ValueWhen_1 = input.int(title='occurrence_ValueWhen_1', defval=1, maxval=100, step=1, group="▶ ValueWhen",tooltip ="Its value must be smaller than (occurrence_ValueWhen_2)")  
occurrence_ValueWhen_2 = input.int(title='occurrence_ValueWhen_2', defval=5, maxval=100, step=1, group="▶ ValueWhen" ,tooltip="Its value must be greater than (occurrence_ValueWhen_1)")
distance_value=input.int(title='distance_value_occurrence', defval=170, maxval=5000, step=1, group="▶ ValueWhen" ,tooltip="It indicates the minimum distance between the occurrences of 1 and 2, i.e. the difference between the occurrences of 1 and 2 is greater than (distance_value_occurrence)")

// Define RSI-related parameters
rsi_over_sold = input.int(defval=60, minval=1, title='Oversold Level', group='▶ RSI',inline ='2')  // Input for oversold level in RSI
rsi_length = input.int(defval=40, minval=1, title='RSI Length', group='▶ RSI',inline ='2')  // Input for RSI length
rsi = ta.rsi(close, rsi_length)  // Calculate RSI

// Define volume thresholds
volume_threshold1 = input.float(title='volume_threshold_1', defval=0.5, maxval=10, step=0.1, group="▶ Volume")  
volume_threshold2 = input.float(title='volume_threshold_2', defval=0.4, maxval=10, step=0.1, group="▶ Volume")  
volume_threshold3 = input.float(title='volume_threshold_3', defval=0.62, maxval=10, step=0.1, group="▶ Volume")  

// ATR (Average True Range)
// Define ATR parameters
atr_small = input.int(title='ATR_Small', defval=5, maxval=500, step=1, group="▶ Atr",inline ='2') 
atr_big = input.int(title='ATR_Big ', defval=14, maxval=500, step=1, group="▶ Atr",inline ='2') 

atr_value3 = ta.atr(15)  // Calculate ATR value 3
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Date Range
// Define the date range for back-testing
start_date = input.int(title='Start Day', defval=1, minval=1, maxval=31, group='▶ Time-Period for Back-Testing', inline='1')  // Input for start day
end_date = input.int(title='until Day', defval=1, minval=1, maxval=31, group='▶ Time-Period for Back-Testing', inline='1')  // Input for end day
start_month = input.int(title='Start Month', defval=7, minval=1, maxval=12, group='▶ Time-Period for Back-Testing', inline='2')  // Input for start month
end_month = input.int(title='until Month', defval=1, minval=1, maxval=12, group='▶ Time-Period for Back-Testing', inline='2')  // Input for end month
start_year = input.int(title='Start Year', defval=2022, minval=1800, maxval=3000, group='▶ Time-Period for Back-Testing', inline='3')  // Input for start year
end_year = input.int(title='until Year', defval=2077, minval=1800, maxval=3000, group='▶ Time-Period for Back-Testing', inline='3')  // Input for end year
in_date_range = time >= timestamp(syminfo.timezone, start_year, start_month, start_date, 0, 0) and time < timestamp(syminfo.timezone, end_year, end_month, end_date, 0, 0)  // Check if the current time is within the specified date range
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
was_over_sold = ta.barssince(rsi <= rsi_over_sold) <= 10  // Check if RSI was oversold in the last 10 bars
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
getVolume(symbol, bar) =>
    request.security(syminfo.tickerid, "D", volume)[bar]  // Function to get volume data for a specific symbol and bar

getVolume2(symbol, bar) =>
    request.security(syminfo.tickerid, "39", volume)[bar]  // Function to get volume data for a specific symbol and bar 2
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

firstCandleColor1 = request.security(syminfo.tickerid, "D", close[2] > open[1] ? 1 : 0)
firstCandleColor2 = request.security(syminfo.tickerid, "1", close[2] > open[0] ? 1 : 0)
firstCandleColor3 = request.security(syminfo.tickerid, "W", close[1] > open[1] ? 1 : 0)

firstCandleColor= ((firstCandleColor1+firstCandleColor2)) > firstCandleColor3 ? 1 : 0

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sma = ta.sma(close, 13)  // Calculate the simple moving average (SMA) of the close price over 13 periods
numCandles = ta.barssince(close > sma)  // Count the number of candles since the close price crossed above the SMA
atr1=request.security(syminfo.tickerid, "30", ta.atr(atr_small)<ta.atr(atr_big))  // Get the ATR value for the specific security and timeframe (30 minutes) and check if ATR_small is less than ATR_big

prevClose = ta.valuewhen(close > sma, close, occurrence_ValueWhen_1)  // Get the close price when it first crosses above the SMA based on occurrence_ValueWhen_1
prevCloseBarsAgo = ta.valuewhen(close > sma, close, occurrence_ValueWhen_2)  // Get the close price when it first crosses above the SMA based on occurrence_ValueWhen_2
prevCloseChange =  (prevCloseBarsAgo - prevClose )  // Calculate the change in the close price between the occurrences of crossing above the SMA

atrval=(atr_value3>140) or (atr_value3 < 123)  // Check if atr_value3 is either greater than 140 or less than 123

Condition =  getVolume(syminfo.tickerid, 90) > volume_threshold1 * getVolume(syminfo.tickerid, 49)   and getVolume(syminfo.tickerid, 110) > volume_threshold3 * getVolume(syminfo.tickerid, 49)  and getVolume2(syminfo.tickerid, 30) > volume_threshold2 * getVolume2(syminfo.tickerid, 55) and getVolume2(syminfo.tickerid, 7) > volume_threshold2 * getVolume2(syminfo.tickerid, 3)  // Check multiple volume conditions

buy_signal=Condition  and atrval and firstCandleColor==0 and  was_over_sold and  prevCloseChange> distance_value and atr1 and  numCandles<5  // Determine if the buy signal is generated based on various conditions

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Long Strategy
// Enter long position if the buy signal conditions are met and within the specified date range
if buy_signal and in_date_range
    strategy.entry('Long', strategy.long, alert_message='Open Long Position')  // Enter long position
    strategy.exit('Long SL/TP', from_entry='Long', loss=long_stoploss_percentage, profit=long_takeprofit_percentage, alert_message='Your SL/TP-Limit for the Long-Strategy has been activated.')  // Exit long position with stop-loss and take-profit




مزید