इस रणनीति का नाम
रणनीति पहले एक कण को परिभाषित करती है जो मूल्य प्रक्षेपवक्र में फिट बैठता है। गुरुत्वाकर्षण और जड़ता के प्रभाव में, कण का प्रक्षेपवक्र मूल्य के चारों ओर दोलन करेगा। फिर हम कण और मूल्य के बीच औसत विचलन की गणना करते हैं, और इसका उपयोग ऊपरी और निचले बैंड के निर्माण के लिए करते हैं। जब कीमत ऊपरी या निचले बैंड से टूटती है, तो ट्रेडिंग संकेत उत्पन्न होते हैं।
विशेष रूप से, रणनीति में परिभाषित कण स्थिति सूत्र हैः
pos:=if pos<close
nz(pos[1])+grav+traj
else
nz(pos[1])-(grav)+traj
यहाँgrav
उस गुरुत्वाकर्षण पद का प्रतिनिधित्व करता है जो कण को मूल्य के निकट बनाता है;traj
इन दो वस्तुओं का संयोजन कण को मूल्य के चारों ओर दोलन करता है।
फिर हम औसत विचलन की गणनाavgdist
कीमत और कण के बीच, और इसे ऊपरी और निचले बैंड बनाने के लिए उपयोग करेंः
bbl=pos-sma(avgdist,varb)
bbh=pos+sma(avgdist,varb)
अंत में, जब कीमत ऊपरी बैंड से अधिक हो, तो लंबी जाएं, और जब निचले बैंड से कम हो, तो छोटी जाएं।
पारंपरिक चलती औसत रणनीतियों की तुलना में, इस रणनीति के निम्नलिखित फायदे हैंः
इस रणनीति में कुछ जोखिम भी हैं:
संबंधित जोखिम प्रबंधन उपायों में शामिल हैंः झूठे संकेतों को कम करने के लिए मापदंडों का अनुकूलन करना, स्पष्ट समय सीमा के समय के नियमों को परिभाषित करना, उपयुक्त स्टॉप लॉस पदों की स्थापना करना, आदि।
इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
यह रणनीति मूल्य प्रक्षेपवक्र फिटिंग की शुरुआत करके चलती औसत रणनीति में सुधार करती है। इसमें अनुकूलन पैरामीटर, बहु समय सीमा, स्टॉप लॉस अनुकूलन, आदि जैसी विशेषताएं हैं। कुंजी कीमत का अनुकरण करने के लिए एक उपयुक्त कण गति समीकरण खोजना है। हालांकि आगे परीक्षण और अनुकूलन की आवश्यकता है, बुनियादी विचार व्यवहार्य है और आगे के शोध के लायक है।
/*backtest start: 2022-11-17 00:00:00 end: 2023-11-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //2 revert strategy("Jomy's Gyroscopic Bands",precision=8,commission_value=.03,overlay=true,initial_capital =10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0)//,calc_on_order_fills= true, calc_on_every_tick=false) leverage=input(1,"leverage") a=0 a:= if volume > -1 nz(a[1])+1 else nz(a) vara=input(4.0,"variable a (10 to the power of __ ",step=.5) vara:=pow(10,vara) varb=input(12,"variable b") pos=0.0 pos:=if a<=5 close else nz(pos[1]) grav=1/sqrt((close*close))*vara traj=0.0 traj:=(nz(close[1])-nz(close[2])+nz(traj[1])*varb)/(varb+1) pos:=if pos<close nz(pos[1])+grav+traj else nz(pos[1])-(grav)+traj plot(pos,color=color.white) plot(close) avgdist=abs(close-pos) bbl=pos-sma(avgdist,varb) bbh=pos+sma(avgdist,varb) plbbh=plot(bbh,color=color.red) plbbl=plot(bbl,color=color.red) long = close>pos short = close<pos fill(plbbh,plbbl,color=long?color.lime:color.red) //bgcolor(close>bbh?color.lime:close<bbl?color.red:na,transp=90) strategy.entry("Long1",strategy.long,when=long,qty=(strategy.equity*leverage/open)) strategy.close("Long1",when=not long) strategy.entry("Short1",strategy.short,when=short,qty=(strategy.equity*leverage/open)) strategy.close("Short1",when=not short) //plot(strategy.equity,color=color.lime,linewidth=4)