এই কৌশলটি স্বয়ংক্রিয়ভাবে স্টপ লস সেট করতে এবং পজিশন ম্যানেজমেন্টের জন্য মুনাফা মূল্য নিতে ফিবোনাচি রিট্র্যাকশন স্তরগুলি ব্যবহার করে। এটি সংহতকরণের সময় ক্ষতি হ্রাস করার সময় বৃহত্তর মুনাফার জন্য প্রবণতা চালানোর অনুমতি দেয়।
এই কৌশলটির মূলটি মূল সমর্থন এবং প্রতিরোধের স্তরগুলি নির্ধারণের জন্য ফিবোনাচি পুনরুদ্ধার সূচকের উপর নির্ভর করে। এটি 10 টি ফিবোনাচি মূল্য অঞ্চল প্লট করার জন্য সাম্প্রতিক উচ্চ এবং নিম্ন ট্র্যাক করে। কনফিগারেশনের উপর ভিত্তি করে, ফিবোনাচি স্তরগুলির মধ্যে একটি প্রবেশের ট্রিগার হিসাবে বেছে নেওয়া হয়। যখন দামটি সেই স্তরের উপরে ভেঙে যায়, তখন কনফিগার করা লিভারেজের উপর ভিত্তি করে একটি দীর্ঘ অর্ডার স্থাপন করা হবে। একই সাথে, প্রবেশের দামের উপরে একটি নির্দিষ্ট শতাংশে লাভের মূল্য নির্ধারণ করা হয়।
প্রবেশের পরে, কৌশলটি আপডেট হওয়া ফিবোনাচি স্তরগুলি ট্র্যাক করে থাকে। যদি একটি নিম্ন ফিব স্তর আবির্ভূত হয়, যা সম্ভাব্য বিপরীতমুখীতা নির্দেশ করে, কৌশলটি বিদ্যমান অর্ডারগুলি বাতিল করবে এবং স্টপ লস প্রক্রিয়া হিসাবে নিম্ন মূল্যে অর্ডারগুলি পুনরায় স্থাপন করবে। যখন মূল্য অবশেষে লাভের দামের উপরে ভেঙে যায়, তখন অবস্থানটি লাভের জন্য বন্ধ হয়ে যাবে।
এই কৌশলটির সবচেয়ে বড় সুবিধা হ'ল গতিশীলভাবে স্টপ লস সামঞ্জস্য করার ক্ষমতা এবং ট্রেন্ডিং বাজারের জন্য মুনাফা মূল্য গ্রহণ করা। মূল বৈশিষ্ট্যঃ
এন্ট্রি প্রাইসের উপর ভিত্তি করে ট্রেইলিং স্টপ দিয়ে ট্রেন্ডিং শর্তে বৃহত্তর মুনাফা অর্জন করুন।
নতুন নিম্ন স্তরের ফাইবারকে বন্ধ করে সংহতকরণে ক্ষতি হ্রাস করা।
শেষ এন্ট্রি মূল্য থেকে নির্দিষ্ট শতাংশ হ্রাস পেলে পজিশনে যোগ করে পিরামিডিং করার অনুমতি দিন।
সঠিকভাবে কনফিগার করা হলে স্বয়ংক্রিয় অর্ডার স্থানান্তর সহ কাজ করা সহজ।
এখনও কিছু ঝুঁকি রয়েছে যা সম্পর্কে সচেতন হওয়া উচিতঃ
পার্শ্ববর্তী বাজারের সময় বারবার থামার প্রবণতা, ফি বাড়ানো।
স্টপ লস মেশিন নেই, বড় ড্রাউনডাউন হওয়ার ঝুঁকি আছে।
পিরামিডিংয়ের ক্ষেত্রে ক্ষতি বাড়তে পারে।
সংশ্লিষ্ট সমাধানঃ
যখন দাম রেঞ্জের মধ্যে অস্থির হয় তখন ট্রেডিং বন্ধ করুন।
প্রয়োজন হলে ম্যানুয়ালি মার্কেট সুপারভাইজ করুন এবং পজিশন বন্ধ করুন।
পিরামিডের আদেশের সীমা নির্ধারণ করুন।
অপ্টিমাইজেশনের জন্য প্রচুর জায়গা রয়েছেঃ
ভুয়া ব্রেকআউট এড়ানোর জন্য অতিরিক্ত এন্ট্রি নিশ্চিতকরণের জন্য EMA, MACD এর মতো অতিরিক্ত সূচক যুক্ত করুন।
চরম পরিস্থিতিতে ক্ষতির সীমাবদ্ধতা নিশ্চিত করার জন্য স্থির/ট্রেইলিং স্টপ লস প্রক্রিয়া অন্তর্ভুক্ত করা।
অত্যধিক লিভারেজিং রোধ করার জন্য বাজারের ব্যবস্থার উপর ভিত্তি করে পিরামিডযুক্ত যুক্তিকে পরিমার্জন করুন।
মূল্যের পূর্বাভাস দিতে এবং আরও ভাল প্রবেশ/প্রস্থান চিহ্নিত করতে 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)