یہ حکمت عملی فبونیکی ریٹریکشن کی سطحوں کو خود بخود اسٹاپ نقصان قائم کرنے اور پوزیشن مینجمنٹ کے لئے منافع کی قیمتیں لینے کے لئے استعمال کرتی ہے۔ یہ استحکام کے دوران نقصانات کو کم کرتے ہوئے زیادہ سے زیادہ منافع کے ل trends رجحانات پر سوار ہونے کی اجازت دیتی ہے۔
اس حکمت عملی کا بنیادی حصہ فبونیکی ریٹریکشن اشارے پر انحصار کرتا ہے تاکہ اہم سپورٹ اور مزاحمت کی سطحوں کا تعین کیا جاسکے۔ یہ 10 فبونیکی قیمت زونوں کا نقشہ تیار کرنے کے لئے حالیہ بلند اور نچلے درجے کو ٹریک کرتا ہے۔ تشکیل کی بنیاد پر ، فبونیکی سطحوں میں سے ایک کو انٹری ٹرگر کے طور پر منتخب کیا جاتا ہے۔ جب قیمت اس سطح سے تجاوز کرتی ہے تو ، تشکیل شدہ بیعانہ کی بنیاد پر ایک طویل آرڈر دیا جائے گا۔ اسی وقت ، منافع لینے کی قیمت انٹری قیمت سے ایک خاص فیصد مقرر کی جاتی ہے۔
اسٹریٹجی میں داخل ہونے کے بعد ، حکمت عملی اپ ڈیٹ شدہ فبونیکی سطحوں کو ٹریک کرتی رہتی ہے۔ اگر کم فب سطح سامنے آتی ہے ، جس سے ممکنہ الٹ کی نشاندہی ہوتی ہے تو ، حکمت عملی موجودہ آرڈرز کو منسوخ کردے گی اور اسٹاپ نقصان کے طریقہ کار کے طور پر کم قیمت پر آرڈرز کو دوبارہ رکھ دے گی۔ جب قیمت بالآخر منافع لینے کی قیمت سے تجاوز کر جاتی ہے تو ، پوزیشن منافع کے لئے بند کردی جائے گی۔
اس حکمت عملی کا سب سے بڑا فائدہ متحرک طور پر سٹاپ نقصان کو ایڈجسٹ کرنے اور رجحان مارکیٹوں کے لئے منافع کی قیمتوں کو لینے کی صلاحیت ہے. اہم خصوصیات:
داخلہ قیمت کی بنیاد پر ٹریلنگ اسٹاپس کی طرف سے رجحان کے حالات میں زیادہ منافع حاصل کریں.
فائیب کی کم سطحوں پر روکنے کے ذریعے استحکام میں ہونے والے نقصانات کو کم کریں۔
جب قیمت آخری انٹری قیمت سے کچھ فیصد گرتی ہے تو پوزیشن میں شامل کرکے پرامڈائڈنگ کی اجازت دیں۔
ایک بار درست طریقے سے ترتیب دیا جاتا ہے خود کار طریقے سے حکم کی جگہ کے ساتھ کام کرنے کے لئے آسان.
پھر بھی کچھ خطرات ہیں جن سے آگاہ ہونا ضروری ہے:
سائیڈ ویز مارکیٹوں کے دوران بار بار رکنے کا شکار، فیسوں میں اضافہ
کوئی فکسڈ سٹاپ نقصان میکانزم نہیں، بڑے ڈراؤونگ کا خطرہ ہے۔
غیر مقفل پرامڈائڈنگ نقصانات میں اضافہ کر سکتا ہے.
متعلقہ حل:
جب قیمت کی حد میں اتار چڑھاؤ ہو تو تجارت کو روکیں۔
دستی طور پر مارکیٹوں کی نگرانی اور اگر ضروری ہو تو پوزیشنوں کو بند کریں.
پیرامائڈنگ احکامات پر حدود مقرر کریں.
اصلاحات کے لیے کافی گنجائش باقی ہے:
جھوٹے بریکآؤٹس سے بچنے کے لیے اضافی انٹری کی تصدیق کے لیے ای ایم اے، ایم اے سی ڈی جیسے اضافی اشارے شامل کریں۔
انتہائی حالات میں نقصانات کو محدود کرنے کے لئے فکسڈ / ٹریلنگ اسٹاپ نقصان کے طریقہ کار کو شامل کریں.
مارکیٹ کے نظام کی بنیاد پر پرامڈائڈنگ منطق کو بہتر بنائیں تاکہ زیادہ سے زیادہ فائدہ اٹھانے سے بچایا جاسکے۔
قیمت کی پیشن گوئی اور بہتر اندراج / باہر نکلنے کی نشاندہی کرنے کے لئے 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)