آر بریکر حکمت عملی کو رچرڈ سائڈن برگ نے تیار کیا تھا اور 1994 میں شائع کیا تھا۔ اسے مسلسل 15 سالوں تک ریاستہائے متحدہ میں
آسان الفاظ میں ، آر بریکر حکمت عملی ایک قیمت کی حمایت اور مزاحمت کی حکمت عملی ہے۔ یہ کل کی سب سے زیادہ ، سب سے کم اور اختتامی قیمتوں کی بنیاد پر سات قیمتوں کا حساب لگاتا ہے: ایک مرکزی قیمت (پییوٹ) اور تین معاونت کی سطح (s1 s2 ، s3) ، تین مزاحمت کی سطح (r1 ، r2 ، r3) ۔ پھر موجودہ قیمت اور ان معاونت اور مزاحمت کی سطحوں کے مابین پوزیشنل تعلقات کے مطابق ، خرید و فروخت کے لئے ٹرگر حالات تشکیل دینے کے لئے ، اور ایک خاص الگورتھم ایڈجسٹمنٹ کے ذریعے ، ان سات قیمتوں کے مابین فاصلہ کو ایڈجسٹ کریں ، اس کے بعد لین دین کی ٹرگر ویلیو کو تبدیل کریں۔
خریدنے کی قیمت (مقاومت کی سطح r3) کے ذریعے توڑ = کل
فروخت کی قیمت کا مشاہدہ (مقاومت کی سطح r2) = مرکز کی قیمت + (کل کی سب سے زیادہ قیمت - کل کی کم قیمت)
ریورس فروخت کی قیمت (مقاومت کی سطح r1) = 2 * مرکز کی قیمت - کل کی کم قیمت
مرکزی قیمت (پیویٹ) = (گزشتہ روز کی بلند ترین قیمت + گذشتہ روز کی اختتامی قیمت + گذشتہ روز کی کم ترین قیمت) / 3
ریورس خریداری کی قیمت (سپورٹ لیول s1) = 2 * مرکزی قیمت - کل
خریداری کی قیمت کا مشاہدہ (سپورٹ لیول s2) = مرکزی قیمت - (گزشتہ روز کی اعلی ترین قیمت - گذشتہ روز کی کم ترین قیمت)
خریدی جانے والی قیمت (سپورٹ لیول s3) = کل کی سب سے کم قیمت - 2 * (کل کی سب سے زیادہ قیمت - وسط قیمت)
اس سے ہم دیکھ سکتے ہیں کہ آر بریکر حکمت عملی کل کی قیمت کی بنیاد پر گرڈ جیسی قیمت کی لائن بناتی ہے ، اور ان قیمتوں کی لائنوں کو ایک بار روزانہ اپ ڈیٹ کرتی ہے۔ تکنیکی تجزیہ میں ، سپورٹ اور مزاحمت کی سطح ، اور ان دونوں کا کردار ایک دوسرے میں تبدیل کیا جاسکتا ہے۔ جب قیمت کامیابی کے ساتھ مزاحمت کی سطح کو توڑتی ہے تو ، مزاحمت کی سطح سپورٹ کی سطح بن جاتی ہے۔ جب قیمت کامیابی کے ساتھ سپورٹ کی سطح کو توڑتی ہے تو ، سپورٹ کی سطح مزاحمت کی سطح بن جاتی ہے۔
اصل تجارت میں ، یہ معاونت اور مزاحمت کی سطح تاجر کو کھلنے اور بند ہونے والی پوزیشنوں کی سمت اور عین مطابق تجارتی مقامات کی نشاندہی کرتی ہے۔ مخصوص کھلنے اور بند ہونے کی شرائط والے تاجر دن کے اندر قیمتوں ، مرکزی قیمتوں ، مزاحمت کی سطحوں اور معاونت کی سطحوں کے مطابق لچکدار طور پر اپنی مرضی کے مطابق کرسکتے ہیں ، اور ان گرڈ قیمت لائنوں کی بنیاد پر پوزیشنوں کا انتظام بھی کرسکتے ہیں۔
اگلا ، آئیے دیکھتے ہیں کہ آر بریکر حکمت عملی ان معاونت اور مزاحمت کی سطحوں کا استعمال کس طرح کرتی ہے۔ اس کا منطق بالکل پیچیدہ نہیں ہے۔ اگر کوئی ہولڈنگ پوزیشن نہیں ہے تو ، ٹرینڈ موڈ میں داخل ہوں۔ جب قیمت توڑنے والی خریداری کی قیمت سے زیادہ ہو تو ، طویل پوزیشن کھولیں۔ جب قیمت توڑنے والی فروخت کی قیمت سے کم ہو تو ، مختصر پوزیشن کھولیں۔
کھلی طویل پوزیشن: اگر کوئی ہولڈنگ پوزیشن نہیں ہے اور قیمت توڑ خریدنے کی قیمت سے زیادہ ہے
کھلی مختصر پوزیشن: اگر کوئی ہولڈنگ پوزیشن نہیں ہے اور قیمت توڑ فروخت کی قیمت سے کم ہے
بند طویل پوزیشن: اگر آپ ایک طویل پوزیشن رکھتے ہیں، اور دن کی سب سے زیادہ قیمت مشاہدہ کی فروخت کی قیمت سے زیادہ ہے اور قیمت ریورس فروخت کی قیمت سے کم ہے
بند مختصر پوزیشن: اگر آپ ایک مختصر پوزیشن رکھتے ہیں، اور دن کی سب سے کم قیمت مشاہدہ خرید قیمت سے کم ہے اور قیمت ریورس خرید قیمت سے زیادہ ہے
کھلی لمبی پوزیشن: اگر آپ ایک مختصر پوزیشن رکھتے ہیں، اور دن کی سب سے کم قیمت مشاہدہ کی خریداری کی قیمت سے کم ہے اور قیمت ریورس خریداری کی قیمت سے زیادہ ہے
کھلی مختصر پوزیشن: اگر آپ ایک طویل پوزیشن رکھتے ہیں، اور دن کی سب سے زیادہ قیمت مشاہدہ کی فروخت کی قیمت سے زیادہ ہے اور قیمت ریورس فروخت کی قیمت سے کم ہے
بند طویل پوزیشن: اگر طویل پوزیشنیں رکھی جاتی ہیں اور قیمت توڑ فروخت کی قیمت سے کم ہے
بند مختصر پوزیشن: اگر مختصر پوزیشن رکھی جاتی ہے اور قیمت توڑ خریدنے کی قیمت سے زیادہ ہے
اگر ہولڈنگ پوزیشنز ہیں تو ، یہ الٹ موڈ میں داخل ہوتا ہے۔ جب ہولڈنگ لانگ پوزیشنز ہیں ، اور دن کی سب سے زیادہ قیمت مشاہدہ کرنے والی فروخت کی قیمت سے زیادہ ہے ، اور قیمت الٹ فروخت کی قیمت سے نیچے آجاتی ہے تو ، لمبی پوزیشن بند ہوجائے گی اور مختصر پوزیشن ہم آہنگ طور پر کھولی جائے گی۔ جب مختصر پوزیشنیں رکھیں ، اور دن کی سب سے کم قیمت مشاہدہ کرنے والی خریداری کی قیمت سے کم ہے ، اور قیمت الٹ خریداری کی قیمت کو توڑ دیتی ہے ، تو مختصر پوزیشن بند ہوجائے گی اور لمبی پوزیشن کھلی ہوگی۔
'''backtest
start: 2019-01-01 00:00:00
end: 2020-01-01 00:00:00
period: 5m
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
'''
# Strategy main function
def onTick():
# retrieve data
exchange.SetContractType(contract_type) # Subscribe to futures products
bars_arr = exchange.GetRecords(PERIOD_D1) # Get daily K line array
if len(bars_arr) < 2: # If the number of K lines is less than 2
return
yesterday_open = bars_arr[-2]['Open'] # Yesterday's opening price
yesterday_high = bars_arr[-2]['High'] # Yesterday's highest price
yesterday_low = bars_arr[-2]['Low'] # Yesterday's lowest price
yesterday_close = bars_arr[-2]['Close'] # Yesterday's closing price
# Calculation
pivot = (yesterday_high + yesterday_close + yesterday_low) / 3 # Pivot point
r1 = 2 * pivot - yesterday_low # Resistance level 1
r2 = pivot + (yesterday_high - yesterday_low) # Resistance level 2
r3 = yesterday_high + 2 * (pivot - yesterday_low) # Resistance level 3
s1 = 2 * pivot - yesterday_high # Support level 1
s2 = pivot - (yesterday_high - yesterday_low) # Support level 2
s3 = yesterday_low - 2 * (yesterday_high - pivot) # Support level 3
today_high = bars_arr[-1]['High'] # Today's highest price
today_low = bars_arr[-1]['Low'] # Today's lowest price
current_price = _C(exchange.GetTicker).Last # Current price
# Get positions
position_arr = _C(exchange.GetPosition) # Get array of positions
if len(position_arr) > 0: # If the position array length is greater than 0
for i in position_arr:
if i['ContractType'] == contract_type: # If the position variety equals the subscription variety
if i['Type'] % 2 == 0: # If it is long position
position = i['Amount'] # The number of assigned positions is positive
else:
position = -i['Amount'] # The number of assigned positions is negative
profit = i['Profit'] # Get position profit and loss
else:
position = 0 # The number of assigned positions is 0
profit = 0 # The value of the assigned position is 0
if position == 0: # If there is no position
if current_price > r3: # If the current price is greater than Resistance level 3
exchange.SetDirection("buy") # Set transaction direction and type
exchange.Buy(current_price + 1, 1) # open long position
if current_price < s3: # If the current price is less than Support level 3
exchange.SetDirection("sell") # Set transaction direction and type
exchange.Sell(current_price - 1, 1) # open short position
if position > 0: # if holding long position
if today_high > r2 and current_price < r1 or current_price < s3: # If today's highest price is greater than Resistance level 2, and the current price is less than Resistance level 1
exchange.SetDirection("closebuy") # Set transaction direction and type
exchange.Sell(current_price - 1, 1) # close long position
exchange.SetDirection("sell") # Set transaction direction and type
exchange.Sell(current_price - 1, 1) # open short position
if position < 0: # if holding short position
if today_low < s2 and current_price > s1 or current_price > r3: # If today's lowest price is less than Support level 2, and the current price is greater than Support level 1
exchange.SetDirection("closesell") # Set transaction direction and type
exchange.Buy(current_price + 1, 1) # close short position
exchange.SetDirection("buy") # Set transaction direction and type
exchange.Buy(current_price + 1, 1) # open long position
# Program main function
def main():
while True: # loop
onTick() # Execution strategy main function
Sleep(1000) # Sleep for 1 second
مکمل حکمت عملی FMZ پلیٹ فارم پر شائع کی گئی ہے (FMZ.COM), براہ راست کاپی کرنے کے لئے نیچے دیئے گئے لنک پر کلک کریں, اور آپ کو ترتیب کے بغیر backtest کر سکتے ہیں:https://www.fmz.com/strategy/187009
آر بریکر حکمت عملی کی مقبولیت کی وجہ یہ ہے کہ یہ خالص طور پر رجحان سے باخبر رہنے کی حکمت عملی نہیں ہے ، بلکہ رجحان الفا اور ریورس الفا دونوں آمدنی حاصل کرنے کے لئے ایک مرکب حکمت عملی ہے۔ اس مضمون میں حکمت عملی صرف مظاہرے کے لئے ہے ، مناسب پیرامیٹرز اور اقسام کو بہتر بنانے کے بغیر۔ اس کے علاوہ ، مکمل حکمت عملی میں اسٹاپ نقصان کی تقریب بھی شامل ہونی چاہئے ، اور دلچسپی رکھنے والے دوست اسے بہتر بنا سکتے ہیں۔