فبونیکی ریٹریسیشن متحرک سٹاپ نقصان کی حکمت عملی

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

img

جائزہ

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

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

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

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

فوائد

اس حکمت عملی کا سب سے بڑا فائدہ متحرک طور پر سٹاپ نقصان کو ایڈجسٹ کرنے اور رجحان مارکیٹوں کے لئے منافع کی قیمتوں کو لینے کی صلاحیت ہے. اہم خصوصیات:

  1. داخلہ قیمت کی بنیاد پر ٹریلنگ اسٹاپس کی طرف سے رجحان کے حالات میں زیادہ منافع حاصل کریں.

  2. فائیب کی کم سطحوں پر روکنے کے ذریعے استحکام میں ہونے والے نقصانات کو کم کریں۔

  3. جب قیمت آخری انٹری قیمت سے کچھ فیصد گرتی ہے تو پوزیشن میں شامل کرکے پرامڈائڈنگ کی اجازت دیں۔

  4. ایک بار درست طریقے سے ترتیب دیا جاتا ہے خود کار طریقے سے حکم کی جگہ کے ساتھ کام کرنے کے لئے آسان.

خطرات

پھر بھی کچھ خطرات ہیں جن سے آگاہ ہونا ضروری ہے:

  1. سائیڈ ویز مارکیٹوں کے دوران بار بار رکنے کا شکار، فیسوں میں اضافہ

  2. کوئی فکسڈ سٹاپ نقصان میکانزم نہیں، بڑے ڈراؤونگ کا خطرہ ہے۔

  3. غیر مقفل پرامڈائڈنگ نقصانات میں اضافہ کر سکتا ہے.

متعلقہ حل:

  1. جب قیمت کی حد میں اتار چڑھاؤ ہو تو تجارت کو روکیں۔

  2. دستی طور پر مارکیٹوں کی نگرانی اور اگر ضروری ہو تو پوزیشنوں کو بند کریں.

  3. پیرامائڈنگ احکامات پر حدود مقرر کریں.

بہتر مواقع

اصلاحات کے لیے کافی گنجائش باقی ہے:

  1. جھوٹے بریکآؤٹس سے بچنے کے لیے اضافی انٹری کی تصدیق کے لیے ای ایم اے، ایم اے سی ڈی جیسے اضافی اشارے شامل کریں۔

  2. انتہائی حالات میں نقصانات کو محدود کرنے کے لئے فکسڈ / ٹریلنگ اسٹاپ نقصان کے طریقہ کار کو شامل کریں.

  3. مارکیٹ کے نظام کی بنیاد پر پرامڈائڈنگ منطق کو بہتر بنائیں تاکہ زیادہ سے زیادہ فائدہ اٹھانے سے بچایا جاسکے۔

  4. قیمت کی پیشن گوئی اور بہتر اندراج / باہر نکلنے کی نشاندہی کرنے کے لئے LSTM جیسے مشین لرننگ ماڈل استعمال کریں۔

نتیجہ

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


/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 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(title="Fibs limit only", shorttitle="Strategy", overlay=true, precision=8, pyramiding=1000, commission_type=strategy.commission.percent, commission_value=0.04)

//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("Filled", 1, 1,  alert_message='Long Filled|e=binancefuturestestnet s=btcusdt b=short c=order|delay=1|e=binancefuturestestnet s=btcusdt b=long c=position q=100% ro=1 fp=' + tostring(p))
if filledorder and size >= 1
    fill := entry
    count := count+1 
    pause := time + 60000
    strategy.entry("Filled", 1, 1,  alert_message='Long Filled|e=binancefuturestestnet s=btcusdt b=short c=order|delay=1|e=binancefuturestestnet s=btcusdt b=long c=position q=100% ro=1 fp=' + tostring(profit))

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='Profit')
    count := 0
    fill := 0.0
    last_profit := 0.0
    
//Plots
bottom = signal ? color.green : filled ? color.red : color.white
plot(entry, "Entry", bottom)

مزید