
ارادے کی واپسی کے لئے بریکٹ نیٹ ورک کی اوسط حکمت عملی ایک حرکت پذیر اوسط پر مبنی ارادے کی واپسی کی تجارت کی حکمت عملی ہے۔ اس حکمت عملی میں بائنری اشاریہ حرکت پذیر اوسط کو بنیادی حساب کتاب کے طور پر استعمال کیا جاتا ہے ، اور اس کے اوپر اور نیچے متعدد بریکٹ بینڈ شامل کیے جاتے ہیں۔ جب قیمت بریکٹ بینڈ کو چھوتی ہے تو ، اس کی سمت کے مطابق زیادہ یا خالی پوزیشن کھولی جاتی ہے۔ جب قیمت اوسط پر واپس آتی ہے تو ، اس کی پوزیشن سے باہر نکل جاتا ہے۔
اس حکمت عملی میں بائنری اشاریہ حرکت پذیر اوسط ((ڈی ای ایم اے) کو بنیادی اشارے کے طور پر استعمال کیا گیا ہے۔ بائنری اشاریہ حرکت پذیر اوسط ایک ایسی حرکت پذیر اوسط ہے جس میں قیمت کی تبدیلیوں کے لئے زیادہ حساسیت ہے۔ اس کی بنیاد پر ، حکمت عملی میں ایک سے زیادہ قیمتوں کے بینڈ شامل کیے جاتے ہیں ، جو اوپر اور نیچے دونوں طرف ہیں ، اور ایک یکساں لکیری باؤنڈ تشکیل دیتے ہیں۔ باؤنڈ بینڈ کی حد صارف کے ذریعہ طے کی جاتی ہے ، ہر قیمت کے بینڈ کے درمیان ایک خاص فیصد وقفہ کے مطابق۔
جب قیمت اوپر کی طرف بڑھتی ہے تو یہ حکمت عملی خالی ہوجاتی ہے۔ جب قیمت نیچے کی طرف جاتی ہے تو یہ حکمت عملی زیادہ کھولی جاتی ہے۔ ہر بار جب قیمت ایک نئی قیمت کی حد کو چھوتی ہے تو یہ حکمت عملی ایک بار بڑھ جاتی ہے۔ جب قیمت واپس چلتی اوسط کے قریب آتی ہے تو حکمت عملی تمام پوزیشنوں کو ختم کردیتی ہے۔
یہ حکمت عملی قیمتوں میں شدید اتار چڑھاو کو پکڑنے کے لئے اور واپسی کے قریب آنے پر منافع سے باہر نکلنے کے لئے ، کم خرید و فروخت کے تجارتی اہداف کو حاصل کرنے کے لئے استعمال کی جاتی ہے۔ یہ مارکیٹ کے دور کے لئے موزوں ہے جس میں واضح طور پر اوسط قیمت کی واپسی کی خصوصیت ہے ، جیسے ڈیجیٹل کرنسی جیسے بٹ کوائن۔
اس خطرے کو کم کرنے کے لئے ، مناسب طریقے سے بٹ نیٹ ورک کے دائرہ کار کو کھول کر ، قیمتوں میں تبدیلیوں کو متحرک کرنے کے لئے حساسیت میں اضافہ کیا جاسکتا ہے۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
متحرک اوسط الگورتھم کو بہتر بنائیں۔ مختلف قسم کے متحرک اوسط اشارے کے اثرات کی جانچ کی جاسکتی ہے۔
اوسط لکیری لمبائی پیرامیٹرز کو ایڈجسٹ کریں۔ مختصر دورانیے سے قلیل مدتی قیمتوں میں تبدیلیوں کی گرفت میں اضافہ ہوسکتا ہے ، لیکن اس سے شور کی تجارت میں بھی اضافہ ہوسکتا ہے۔
بہتر بنانا باکس نیٹ ورک کے پیرامیٹرز مختلف فیصد کی ترتیبات کی جانچ پڑتال کر سکتے ہیں، بہترین پیرامیٹرز کا مجموعہ تلاش کریں
اضافی اسٹاپ اسٹریٹجی۔ متحرک اسٹاپ یا واپسی کی روک تھام کو ترتیب دیں ، جو انفرادی نقصان کو مؤثر طریقے سے کنٹرول کرسکے۔
فلٹرنگ کی شرائط میں اضافہ کریں۔ غیر معقول حالات میں پوزیشنوں کو غیر فعال کرنے سے بچنے کے لئے دوسرے اشارے کے اشارے کے ساتھ مل کر۔
ارادے کی واپسی کے لئے نیٹ ورک کی اوسط قیمت کی حکمت عملی اوسط لائن قیمت چینل کی تعمیر کے ذریعے قیمت کی واپسی کے مواقع کو مؤثر طریقے سے پکڑتی ہے۔ یہ مختلف مارکیٹ کے ماحول کے لئے پیرامیٹرز کو لچکدار طریقے سے ایڈجسٹ کرسکتا ہے۔ یہ حکمت عملی کم ٹرانزیکشن لاگت ، زیادہ منافع بخش ہے ، اور یہ ایک تجویز کردہ مقدار کی تجارت کی حکمت عملی ہے۔
/*backtest
start: 2022-11-27 00:00:00
end: 2023-12-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Mean Reversion - Envelope Strategy", overlay=true )
// ----------------------- DESCRIPTION -----------------------
// THIS SCRIPT IS A MEAN REVERSION SYSTEM THAT USES A MOVING AVERAGE AS BASE CALCULATION AND A % OF THIS MOVING AVERAGE TO CALCULATE THE ENVELOPE
// BY DEFAULT, THE SYSTEM WILL PLACE LONG ORDERS ON THE MOVING AVERAGE -5% PER ENVELOPE COUNT (5%, 10% AND SO ON...)
// YOU CAN ENABLE THE SHORT ORDERS THAT WILL FOLLOW THE SAME LOGIC ON THE OPPOSITE SIDE
// THE SYSTEM WILL CLOSE EVERY ONGOING TRADE WHEN THE PRICE RETURNS TO THE MEAN
// ---------------------------------------------
// ---------------- SETTINGS -------------------
src = input(close, "Moving Average Source", group = "Moving Average")
ma_window = input.int(5, "Moving Average Window", step = 1, group = "Moving Average")
ma_type = input.string('4. DEMA', "Moving Average Type", options=['1. SMA', '2. EMA', '3. RMA', '4. DEMA'], group = "Moving Average")
enveloppe_step = input.float(0.05, "Delta Per Enveloppe", step = 0.01, group = "Envelope")
envelope_count = input.int(5, "Envelope count", options = [1, 2, 3, 4, 5], group = "Envelope")
use_longs = input.bool(true, 'Use Long Orders ?', group = "Orders")
use_short = input.bool(false, 'Use Short Orders ?', group = "Orders")
// ---------------------------------------------
// -------------- INDICATORS -------------------
ma_funct() =>
if(ma_type == '1. SMA')
ta.sma(src, ma_window)
if(ma_type == '2. EMA')
ta.ema(src, ma_window)
if(ma_type == '3. RMA')
ta.rma(src, ma_window)
if(ma_type == '4. DEMA')
2 * ta.ema(src, ma_window) - ta.ema(ta.ema(src, ma_window), ma_window)
ma_base = ma_funct()
ma_high_1 = envelope_count > 0 ? ma_base * (1 + enveloppe_step) : na
ma_high_2 = envelope_count > 1 ? ma_base * (1 + enveloppe_step * 2) : na
ma_high_3 = envelope_count > 2 ? ma_base * (1 + enveloppe_step * 3) : na
ma_high_4 = envelope_count > 3 ? ma_base * (1 + enveloppe_step * 4) : na
ma_high_5 = envelope_count > 4 ? ma_base * (1 + enveloppe_step * 5) : na
ma_low_1 = envelope_count > 0 ? ma_base * (1 - enveloppe_step) : na
ma_low_2 = envelope_count > 0 ? ma_base * (1 - enveloppe_step * 2) : na
ma_low_3 = envelope_count > 0 ? ma_base * (1 - enveloppe_step * 3) : na
ma_low_4 = envelope_count > 0 ? ma_base * (1 - enveloppe_step * 4) : na
ma_low_5 = envelope_count > 0 ? ma_base * (1 - enveloppe_step * 5) : na
// ---------------------------------------------
// --------------- STRATEGY --------------------
if use_longs
if envelope_count > 0 and strategy.opentrades < 1
strategy.entry('long 1', strategy.long, limit=ma_low_1, qty=(strategy.equity / ma_low_1) * (1 / envelope_count))
if envelope_count > 1 and strategy.opentrades < 2
strategy.entry('long 2', strategy.long, limit=ma_low_2, qty=(strategy.equity / ma_low_2) * (1 / envelope_count))
if envelope_count > 2 and strategy.opentrades < 3
strategy.entry('long 3', strategy.long, limit=ma_low_3, qty=(strategy.equity / ma_low_3) * (1 / envelope_count))
if envelope_count > 3 and strategy.opentrades < 4
strategy.entry('long 4', strategy.long, limit=ma_low_4, qty=(strategy.equity / ma_low_4) * (1 / envelope_count))
if envelope_count > 4 and strategy.opentrades < 5
strategy.entry('long 5', strategy.long, limit=ma_low_5, qty=(strategy.equity / ma_low_5) * (1 / envelope_count))
if use_short
if envelope_count > 0 and strategy.opentrades < 1
strategy.entry('short 1', strategy.short, limit=ma_high_1, qty=(strategy.equity / ma_high_1) * (1 / envelope_count))
if envelope_count > 1 and strategy.opentrades < 2
strategy.entry('short 2', strategy.short, limit=ma_high_2, qty=(strategy.equity / ma_high_2) * (1 / envelope_count))
if envelope_count > 2 and strategy.opentrades < 3
strategy.entry('short 3', strategy.short, limit=ma_high_3, qty=(strategy.equity / ma_high_3) * (1 / envelope_count))
if envelope_count > 3 and strategy.opentrades < 4
strategy.entry('short 4', strategy.short, limit=ma_high_4, qty=(strategy.equity / ma_high_4) * (1 / envelope_count))
if envelope_count > 4 and strategy.opentrades < 5
strategy.entry('short 5', strategy.short, limit=ma_high_5, qty=(strategy.equity / ma_high_5) * (1 / envelope_count))
strategy.exit('close', limit=ma_base)
// ---------------------------------------------
// ------------------ PLOT ---------------------
ma_base_plot = plot(ma_base, title = "Base MA", color = color.orange, linewidth = 3, offset = 1)
ma_high_1_plot = plot(ma_high_1, title = "MA high 1", color = color.red, offset = 1)
ma_high_2_plot = plot(ma_high_2, title = "MA high 2", color = color.red, offset = 1)
ma_high_3_plot = plot(ma_high_3, title = "MA high 3", color = color.red, offset = 1)
ma_high_4_plot = plot(ma_high_4, title = "MA high 4", color = color.red, offset = 1)
ma_high_5_plot = plot(ma_high_5, title = "MA high 5", color = color.red, offset = 1)
ma_low_1_plot = plot(ma_low_1, title = "MA low 1", color = color.green, offset = 1)
ma_low_2_plot = plot(ma_low_2, title = "MA low 2", color = color.green, offset = 1)
ma_low_3_plot = plot(ma_low_3, title = "MA low 3", color = color.green, offset = 1)
ma_low_4_plot = plot(ma_low_4, title = "MA low 4", color = color.green, offset = 1)
ma_low_5_plot = plot(ma_low_5, title = "MA low 5", color = color.green, offset = 1)