قدم بہ قدم پیرامائڈنگ منتقل اوسط بریک آؤٹ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-05 14:09:14
ٹیگز:

img

جائزہ

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

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

  1. موجودہ بار کی قریبی قیمت (قریبی) سے پچھلے بار کی قریبی قیمت (قریبی) کا موازنہ کریں۔ اگر قریبی > قریبی [1] ہے تو ، اس کا تعین طویل موقع کے طور پر کیا جاتا ہے اور longCondition=1 مقرر کیا جاتا ہے۔ اگر قریبی < قریبی [1] ہے تو ، اس کا تعین مختصر موقع کے طور پر کیا جاتا ہے اور shortCondition=1 مقرر کیا جاتا ہے۔

  2. اجازت یافتہ تجارتی وقت کے فریم کے اندر ، اگر longCondition=1 ، یہ متعدد تدریجی اندراجات کے ساتھ طویل ہوجائے گا۔ اگر shortCondition=1 ، تو یہ متعدد تدریجی اندراجات کے ساتھ مختصر ہوجائے گا۔

  3. اندراجات کی تعداد پرامڈائڈنگ پیرامیٹر کے ذریعے مقرر کی جاتی ہے، جسے 1 سے 5 تک ترتیب دیا جاسکتا ہے، 4 کے ساتھ ڈیفالٹ کے طور پر.

  4. اسٹاپ نقصان کی شرط ہر اندراج کے بعد مقرر کی جاتی ہے اگر مارکیٹ الٹ جاتی ہے.

  5. تجارتی سگنل مختلف تجارتی انٹرفیس جیسے ٹوسٹ یا ٹیلیگرام پر آؤٹ پٹ ہوسکتے ہیں۔

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

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

  1. قدم بہ قدم pyramiding رجحانات کی پیروی بہتر ہے.

  2. اندراجات کی سایڈست تعداد اسے زیادہ لچکدار بناتی ہے۔

  3. توسیع پذیری کے لئے مختلف ٹریڈنگ انٹرفیس کی حمایت کرتا ہے۔

  4. خطرات کو کنٹرول کرنے کے لئے سٹاپ نقصان کے طریقہ کار ہیں.

  5. ٹائم فریم فلٹر غلط سگنل سے بچتا ہے۔

خطرے کا تجزیہ

  1. غلط پیرامیٹر کی ترتیبات زیادہ نقصانات کا باعث بن سکتی ہیں.

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

  3. مختلف مصنوعات کے لئے پیرامیٹرز کو ایڈجسٹ کرنے کی ضرورت ہے.

  4. منافع میں مقفل کرنے کے لئے بروقت سٹاپ نقصان کی ضرورت ہے.

حل:

  1. ڈیفالٹ 4 اندراجات مناسب ہے.

  2. نیٹ ورک کنکشن چیک کریں.

  3. مصنوعات کی خصوصیات کے مطابق پیرامیٹرز کو ایڈجسٹ کریں.

  4. سٹاپ نقصان کی سطح مقرر کریں.

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

  1. سگنل کی طاقت کا اندازہ کرنے کے لئے مزید اشارے شامل کرنے پر غور کریں.

  2. مختلف مصنوعات میں ٹیسٹ پیرامیٹر کی اصلاح کے نتائج.

  3. پیرامیٹرز کو بہتر بنانے کے لیے مشین لرننگ الگورتھم شامل کریں۔

  4. خطرے کے انتظام کے طریقہ کار کو بہتر بنانا۔

خلاصہ

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


/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © torresbitmex

//@version=5
strategy("torres_strategy_real_test_v1.0", process_orders_on_close=true, overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.03, calc_on_order_fills=false, pyramiding=4)

in_trade(int start_time, int end_time) =>    
    allowedToTrade = (time>=start_time) and (time<=end_time)
    if barstate.islastconfirmedhistory
        var myLine = line(na)
        line.delete(myLine)
        myLine := line.new(start_time, low, start_time, high, xloc=xloc.bar_time, color = color.rgb(255, 153, 0, 50), width = 3, extend = extend.both, style = line.style_dashed)
    allowedToTrade

// 매매시간세팅
start_time = input(timestamp("31 Jan 2024 00:00 +0900"), title="매매 시작", group='매매 시간세팅')
end_time = input(timestamp("31 Dec 2030 00:00 +0900"), title="매매 종료", group='매매 시간세팅')
start_trade = true
bgcolor(start_trade ? color.new(color.gray, 90)   : color(na))


var bool Alarm_TVExtbot = false
var bool Alarm_Alert = false

bot_mode = input.string(title='봇선택', defval = "POA", options = ["TVEXTBOT", "POA"], group = "봇선택", inline = '1')
if bot_mode == "TVEXTBOT"
    Alarm_TVExtbot := true
else if bot_mode == "POA"
    Alarm_Alert := true
else
    Alarm_TVExtbot := false
    Alarm_Alert := false

// 계정정보
account = input.string(title='계정', defval='아무거나입력', inline='1', group='계정정보')
token = input.string(title='TVExtBot 인증키', defval='', inline='1', group='계정정보')

mul_input = input.float(4, minval=1, maxval=5, step=1, title="분할진입수", group='진입 세팅', inline='1')
// 진입주문메세지입력
buyOrderid = input.string(title='롱 진입1', defval='', group='진입주문 메세지입력', inline='2')
buyOrderid2 = input.string(title='롱 진입2', defval='', group='진입주문 메세지입력', inline='3')
buyOrderid3 = input.string(title='롱 진입3', defval='', group='진입주문 메세지입력', inline='4')
buyOrderid4 = input.string(title='롱 진입4', defval='', group='진입주문 메세지입력', inline='5')
buyOrderid5 = input.string(title='롱 진입5', defval='', group='진입주문 메세지입력', inline='6')
sellOrderid = input.string(title='숏 진입1', defval='', group='진입주문 메세지입력', inline='2')
sellOrderid2 = input.string(title='숏 진입2', defval='', group='진입주문 메세지입력', inline='3')
sellOrderid3 = input.string(title='숏 진입3', defval='', group='진입주문 메세지입력', inline='4')
sellOrderid4 = input.string(title='숏 진입4', defval='', group='진입주문 메세지입력', inline='5')
sellOrderid5 = input.string(title='숏 진입5', defval='', group='진입주문 메세지입력', inline='6')

// 종료주문메세지입력
buycloseOrderid = input.string(title='롱 전체종료', defval='', group='종료주문 메세지입력', inline='1')
sellcloseOrderid = input.string(title='숏 전체종료', defval='', group='종료주문 메세지입력', inline='1')

longCondition = 0, shortCondition = 0

if(close[1] < close)
    longCondition := 1
else
    longCondition := 0
if(close[1] > close)
    shortCondition := 1
else
    shortCondition := 0

if start_trade
    if Alarm_Alert
        if strategy.position_size == 0
            if (longCondition == 1)
                strategy.entry("buy1", strategy.long, alert_message = buyOrderid)

            if (shortCondition == 1)
                strategy.entry("sell1", strategy.short, alert_message = sellOrderid)

        if strategy.position_size > 0
            if (longCondition == 1)
                if (strategy.opentrades == 1) and (mul_input == 2 or mul_input == 3 or mul_input == 4 or mul_input == 5)
                    strategy.entry("buy2", strategy.long, alert_message = buyOrderid2)  
                if (strategy.opentrades == 2) and (mul_input == 3 or mul_input == 4 or mul_input == 5)
                    strategy.entry("buy3", strategy.long, alert_message = buyOrderid3)  
                if (strategy.opentrades == 3) and (mul_input == 4 or mul_input == 5)
                    strategy.entry("buy4", strategy.long, alert_message = buyOrderid4)  
                if (strategy.opentrades == 4) and (mul_input == 5)
                    strategy.entry("buy5", strategy.long, alert_message = buyOrderid5)  

        if strategy.position_size < 0
            if (shortCondition == 1)
                if (strategy.opentrades == 1) and (mul_input == 2 or mul_input == 3 or mul_input == 4 or mul_input == 5)
                    strategy.entry("sell2", strategy.short, alert_message = sellOrderid2)  
                if (strategy.opentrades == 2) and (mul_input == 3 or mul_input == 4 or mul_input == 5)
                    strategy.entry("sell3", strategy.short, alert_message = sellOrderid3)  
                if (strategy.opentrades == 3) and (mul_input == 4 or mul_input == 5)
                    strategy.entry("sell4", strategy.short, alert_message = sellOrderid4)
                if (strategy.opentrades == 4) and (mul_input == 5)
                    strategy.entry("sell5", strategy.short, alert_message = sellOrderid5)

        if (longCondition == 1 and strategy.position_size > 0)
            if mul_input == 1 and strategy.opentrades == 1
                strategy.close_all(comment='롱전체종료', alert_message = buycloseOrderid)
            if mul_input == 2 and strategy.opentrades == 2
                strategy.close_all(comment='롱전체종료', alert_message = buycloseOrderid)
            if mul_input == 3 and strategy.opentrades == 3
                strategy.close_all(comment='롱전체종료', alert_message = buycloseOrderid)
            if mul_input == 4 and strategy.opentrades == 4
                strategy.close_all(comment='롱전체종료', alert_message = buycloseOrderid)
            if mul_input == 5 and strategy.opentrades == 5
                strategy.close_all(comment='롱전체종료', alert_message = buycloseOrderid)
        if (shortCondition == 1 and strategy.position_size < 0)
            if mul_input == 1 and strategy.opentrades == 1
                strategy.close_all(comment='숏전체종료', alert_message = sellcloseOrderid)
            if mul_input == 2 and strategy.opentrades == 2
                strategy.close_all(comment='숏전체종료', alert_message = sellcloseOrderid)
            if mul_input == 3 and strategy.opentrades == 3
                strategy.close_all(comment='숏전체종료', alert_message = sellcloseOrderid)
            if mul_input == 4 and strategy.opentrades == 4
                strategy.close_all(comment='숏전체종료', alert_message = sellcloseOrderid)
            if mul_input == 5 and strategy.opentrades == 5
                strategy.close_all(comment='숏전체종료', alert_message = sellcloseOrderid)
    else if Alarm_TVExtbot
        if strategy.position_size == 0
            if (longCondition == 1)
                strategy.entry("buy1", strategy.long, alert_message = '롱 1차 진입 📈📈 TVM:{"orderid":"' + buyOrderid + '","memo":"' + account + '","token":"' + token + '"}:MVT')

            if (shortCondition == 1)
                strategy.entry("sell1", strategy.short, alert_message = '숏 1차 진입 📉📉 TVM:{"orderid":"' + sellOrderid + '","memo":"' + account + '","token":"' + token + '"}:MVT')

        if strategy.position_size > 0
            if (longCondition == 1)
                if (strategy.opentrades == 1) and (mul_input == 2 or mul_input == 3 or mul_input == 4 or mul_input == 5)
                    strategy.entry("buy2", strategy.long, alert_message = '롱 2차 진입 📈📈 TVM:{"orderid":"' + buyOrderid2 + '","memo":"' + account + '","token":"' + token + '"}:MVT')  
                if (strategy.opentrades == 2) and (mul_input == 3 or mul_input == 4 or mul_input == 5)
                    strategy.entry("buy3", strategy.long, alert_message = '롱 3차 진입 📈📈 TVM:{"orderid":"' + buyOrderid3 + '","memo":"' + account + '","token":"' + token + '"}:MVT')  
                if (strategy.opentrades == 3) and (mul_input == 4 or mul_input == 5)
                    strategy.entry("buy4", strategy.long, alert_message = '롱 4차 진입 📈📈 TVM:{"orderid":"' + buyOrderid4 + '","memo":"' + account + '","token":"' + token + '"}:MVT')  
                if (strategy.opentrades == 4) and (mul_input == 5)
                    strategy.entry("buy5", strategy.long, alert_message = '롱 5차 진입 📈📈 TVM:{"orderid":"' + buyOrderid5 + '","memo":"' + account + '","token":"' + token + '"}:MVT') 

        if strategy.position_size < 0
            if (shortCondition == 1)
                if (strategy.opentrades == 1) and (mul_input == 2 or mul_input == 3 or mul_input == 4 or mul_input == 5)
                    strategy.entry("sell2", strategy.short, alert_message = '숏 2차 진입 📉📉 TVM:{"orderid":"' + sellOrderid2 + '","memo":"' + account + '","token":"' + token + '"}:MVT')  
                if (strategy.opentrades == 2) and (mul_input == 3 or mul_input == 4 or mul_input == 5)
                    strategy.entry("sell3", strategy.short, alert_message = '숏 3차 진입 📉📉 TVM:{"orderid":"' + sellOrderid3 + '","memo":"' + account + '","token":"' + token + '"}:MVT')  
                if (strategy.opentrades == 3) and (mul_input == 4 or mul_input == 5)
                    strategy.entry("sell4", strategy.short, alert_message = '숏 4차 진입 📉📉 TVM:{"orderid":"' + sellOrderid4 + '","memo":"' + account + '","token":"' + token + '"}:MVT')
                if (strategy.opentrades == 4) and (mul_input == 5)
                    strategy.entry("sell5", strategy.short, alert_message = '숏 5차 진입 📉📉 TVM:{"orderid":"' + sellOrderid5 + '","memo":"' + account + '","token":"' + token + '"}:MVT')
        
        if (longCondition == 1 and strategy.position_size > 0)
            if mul_input == 1 and strategy.opentrades == 1
                strategy.close_all(comment='롱전체종료', alert_message = '롱 종료 📈⛔TVM:{"orderid":"' + buycloseOrderid + '","memo":"' + account + '","token":"' + token + '"}:MVT')
            if mul_input == 2 and strategy.opentrades == 2
                strategy.close_all(comment='롱전체종료', alert_message = '롱 종료 📈⛔TVM:{"orderid":"' + buycloseOrderid + '","memo":"' + account + '","token":"' + token + '"}:MVT')
            if mul_input == 3 and strategy.opentrades == 3
                strategy.close_all(comment='롱전체종료', alert_message = '롱 종료 📈⛔TVM:{"orderid":"' + buycloseOrderid + '","memo":"' + account + '","token":"' + token + '"}:MVT')
            if mul_input == 4 and strategy.opentrades == 4
                strategy.close_all(comment='롱전체종료', alert_message = '롱 종료 📈⛔TVM:{"orderid":"' + buycloseOrderid + '","memo":"' + account + '","token":"' + token + '"}:MVT')
            if mul_input == 5 and strategy.opentrades == 5
                strategy.close_all(comment='롱전체종료', alert_message = '롱 종료 📈⛔TVM:{"orderid":"' + buycloseOrderid + '","memo":"' + account + '","token":"' + token + '"}:MVT')            
        if (shortCondition == 1 and strategy.position_size < 0)
            if mul_input == 1 and strategy.opentrades == 1
                strategy.close_all(comment='숏전체종료', alert_message = '숏 종료 📉⛔TVM:{"orderid":"' + sellcloseOrderid + '","memo":"' + account + '","token":"' + token + '"}:MVT')
            if mul_input == 2 and strategy.opentrades == 2
                strategy.close_all(comment='숏전체종료', alert_message = '숏 종료 📉⛔TVM:{"orderid":"' + sellcloseOrderid + '","memo":"' + account + '","token":"' + token + '"}:MVT')
            if mul_input == 3 and strategy.opentrades == 3
                strategy.close_all(comment='숏전체종료', alert_message = '숏 종료 📉⛔TVM:{"orderid":"' + sellcloseOrderid + '","memo":"' + account + '","token":"' + token + '"}:MVT')
            if mul_input == 4 and strategy.opentrades == 4
                strategy.close_all(comment='숏전체종료', alert_message = '숏 종료 📉⛔TVM:{"orderid":"' + sellcloseOrderid + '","memo":"' + account + '","token":"' + token + '"}:MVT')
            if mul_input == 5 and strategy.opentrades == 5
                strategy.close_all(comment='숏전체종료', alert_message = '숏 종료 📉⛔TVM:{"orderid":"' + sellcloseOrderid + '","memo":"' + account + '","token":"' + token + '"}:MVT')

  

مزید