روڈ فیوچرز آر بریکر حکمت عملی

مصنف:نیکی, تخلیق: 2020-06-02 08:57:10, تازہ کاری: 2023-11-02 19:52:44

img

خلاصہ

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

مزاحمت اور حمایت

آسان الفاظ میں ، آر بریکر حکمت عملی ایک قیمت کی حمایت اور مزاحمت کی حکمت عملی ہے۔ یہ کل کی سب سے زیادہ ، سب سے کم اور اختتامی قیمتوں کی بنیاد پر سات قیمتوں کا حساب لگاتا ہے: ایک مرکزی قیمت (پییوٹ) اور تین معاونت کی سطح (s1 s2 ، s3) ، تین مزاحمت کی سطح (r1 ، r2 ، r3) ۔ پھر موجودہ قیمت اور ان معاونت اور مزاحمت کی سطحوں کے مابین پوزیشنل تعلقات کے مطابق ، خرید و فروخت کے لئے ٹرگر حالات تشکیل دینے کے لئے ، اور ایک خاص الگورتھم ایڈجسٹمنٹ کے ذریعے ، ان سات قیمتوں کے مابین فاصلہ کو ایڈجسٹ کریں ، اس کے بعد لین دین کی ٹرگر ویلیو کو تبدیل کریں۔

  • خریدنے کی قیمت (مقاومت کی سطح r3) کے ذریعے توڑ = کلسب سے زیادہ قیمت + 2 * (مرکز کی قیمت - کلسب سے کم قیمت) / 2

  • فروخت کی قیمت کا مشاہدہ (مقاومت کی سطح 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

خلاصہ

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


متعلقہ

مزید