دو طرفہ خود کو اپنانے والی بِلینڈ ٹرینڈ ٹریکنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-04 15:30:46
ٹیگز:

双向自适应布林带趋势追踪策略

جائزہ

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

حکمت عملی کے اصول

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

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

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

خطرے کا تجزیہ

  1. بریک بینڈ خود پسماندہ ہے اور اس سے جعلی توڑنے سے مکمل طور پر بچا نہیں جاسکتا ہے۔
  2. مارکیٹ کی قیمتوں پر عمل درآمد کی قیمتوں کو کنٹرول نہیں کیا جا سکتا
  3. مناسب طریقے سے سٹاپ نقصان کی پوزیشن اور سٹاپ ٹھنڈک کی پوزیشن کی ضرورت ہے

اصلاحی سمت

  1. برین بینڈ کے پیرامیٹرز کو ایڈجسٹ کریں تاکہ رجحانات کا اندازہ لگایا جاسکے
  2. ٹرانزیکشن حجم یا MACD جیسے اشارے کو شامل کریں
  3. سٹاپ نقصان کی پوزیشن اور سٹاپ ٹائم کی ترتیبات کو بہتر بنائیں

خلاصہ

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


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © CryptoRox

//@version=4
//Paste the line below in your alerts to run the built-in commands.
//{{strategy.order.alert_message}}
strategy("Automated - Fibs with Market orders", "Strategy", true)

//Settings 
testing = input(false, "Live")
//Use epochconverter or something similar to get the current timestamp.
starttime = input(1600976975, "Start Timestamp") * 1000
//Wait XX seconds from that timestamp before the strategy starts looking for an entry.
seconds = input(60, "Start Delay") * 1000
testPeriod = true


leverage = input(1, "Leverage")
tp = input(1.0, "Take Profit %") / leverage
dca = input(-1.0, "DCA when < %") / leverage *-1
fibEntry = input("1", "Entry Level", options=["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"])

//Strategy Calls
equity = strategy.equity
avg = strategy.position_avg_price
symbol = syminfo.tickerid
openTrades = strategy.opentrades
closedTrades = strategy.closedtrades
size = strategy.position_size

//Fibs
lentt = input(60, "Pivot Length")
h = highest(lentt)
h1 = dev(h, lentt) ? na : h
hpivot = fixnan(h1)
l = lowest(lentt)
l1 = dev(l, lentt) ? na : l
lpivot = fixnan(l1)
z = 400
p_offset= 2
transp = 60
a=(lowest(z)+highest(z))/2
b=lowest(z)
c=highest(z)

fib0 = (((hpivot - lpivot)) + lpivot)
fib1 = (((hpivot - lpivot)*.21) + lpivot)
fib2 = (((hpivot - lpivot)*.3) + lpivot)
fib3 = (((hpivot - lpivot)*.5) + lpivot)
fib4 = (((hpivot - lpivot)*.62) + lpivot)
fib5 = (((hpivot - lpivot)*.7) + lpivot)
fib6 = (((hpivot - lpivot)* 1.00) + lpivot)
fib7 = (((hpivot - lpivot)* 1.27) + lpivot)
fib8 = (((hpivot - lpivot)* 2) + lpivot)
fib9 = (((hpivot - lpivot)* -.27) + lpivot)
fib10 = (((hpivot - lpivot)* -1) + lpivot)

notna = nz(fib10[60])
entry = 0.0
if fibEntry == "1"
    entry := fib10
if fibEntry == "2"
    entry := fib9
if fibEntry == "3"
    entry := fib0
if fibEntry == "4"
    entry := fib1
if fibEntry == "5"
    entry := fib2
if fibEntry == "6"
    entry := fib3
if fibEntry == "7"
    entry := fib4
if fibEntry == "8"
    entry := fib5
if fibEntry == "9"
    entry := fib6
if fibEntry == "10"
    entry := fib7
profit = avg+avg*(tp/100)
pause = 0
pause := nz(pause[1])
paused = time < pause

fill = 0.0
fill := nz(fill[1])
count = 0.0
count := nz(fill[1])

filled = count > 0 ? entry > fill-fill/100*dca : 0
signal = testPeriod and notna and not paused and not filled ? 1 : 0

neworder = crossover(signal, signal[1])
moveorder = entry != entry[1] and signal and not neworder ? true : false
cancelorder = crossunder(signal, signal[1]) and not paused
filledorder = crossunder(low[1], entry[1]) and signal[1]

last_profit = 0.0
last_profit := nz(last_profit[1])

// if neworder and signal
//     strategy.order("New", 1, 0.0001, alert_message='New Order|e=binancefuturestestnet s=btcusdt b=long q=0.0011 fp=' + tostring(entry)) 
// if moveorder
//     strategy.order("Move", 1, 0.0001, alert_message='Move Order|e=binancefuturestestnet s=btcusdt b=long c=order|e=binancefuturestestnet s=btcusdt b=long q=0.0011 fp=' + tostring(entry))
if filledorder and size < 1
    fill := entry
    count := count+1 
    pause := time + 60000
    p = close+close*(tp/100)
    strategy.entry("Buy", 1, 1,  alert_message='Long|e=binancefuturestestnet s=btcusdt b=long q=0.0011 t=market')
if filledorder and size >= 1
    fill := entry
    count := count+1 
    pause := time + 60000
    strategy.entry("Buy", 1, 1,  alert_message='Long|e=binancefuturestestnet s=btcusdt b=long q=0.0011 t=market')

// if cancelorder and not filledorder
//     pause := time + 60000
//     strategy.order("Cancel", 1, 0.0001,  alert_message='Cancel Order|e=binancefuturestestnet s=btcusdt b=long c=order')

if filledorder
    last_profit := profit

closeit = crossover(high, profit) and size >= 1
if closeit
    strategy.entry("Close ALL", 0, 0, alert_message='Close Long|e=binancefuturestestnet s=btcusdt b=long c=position t=market')
    count := 0
    fill := 0.0
    last_profit := 0.0
    
//Plots
// bottom = signal ? color.green : filled ? color.red : color.white
// plot(entry, "Entry", bottom)

مزید معلومات