یہ حکمت عملی ایکس بی ٹی یو ایس ڈی فیوچر کنٹریکٹ کو طویل یا مختصر کرنے کے لئے ملٹی سائیکل جذبات تجزیہ کا نقطہ نظر اپناتی ہے۔ اس میں مختلف سائیکلوں میں قیمتوں میں اتار چڑھاؤ کی حد اور اعلی ترین اور کم ترین قیمتوں پر جامع طور پر غور کیا جاتا ہے ، اور وزن کی ایڈجسٹمنٹ کے ایک سلسلے کے ذریعے مارکیٹ کے مجموعی جذبات کا حساب لگایا جاتا ہے۔ جذبات کی قیمت کے بدلتے نمونوں کی بنیاد پر خرید و فروخت کے سگنل تیار کیے جاتے ہیں۔
سب سے زیادہ قیمت، سب سے کم قیمت، اوسط قیمت، قیمت میں اتار چڑھاؤ کی حد اور دیگر اشارے کا حساب لگانا ایک سے j (1 سے 89 بار) تک سائیکلوں میں۔
قیمت کی حد کے اندر اختتامی قیمت کی معیاری پوزیشن کی وضاحت کریں (مقام متغیر) ۔ مختلف سائیکلوں کے لئے جذبات کی قیمت حاصل کرنے کے لئے اسے ہر سائیکل کی قیمت میں اتار چڑھاؤ کی حد کے ساتھ جوڑیں۔
جذبات کی اقدار مجموعی جذبات کی قدر (جذبے) حاصل کرنے کے لئے وزن (w متغیر) کی ایک سیریز سے گزرتی ہیں۔ جذبات موجودہ مجموعی مارکیٹ کے مزاج کی عکاسی کرتا ہے۔
جذبات کی قیمت میں اتار چڑھاؤ کا تجزیہ کریں۔ جب جذبات مثبت سے منفی ہوجاتے ہیں تو فروخت کا اشارہ پیدا ہوتا ہے۔ جب جذبات منفی سے مثبت ہوجاتے ہیں تو خرید کا اشارہ پیدا ہوتا ہے۔
داخلہ رفتار کا تعین کریں اور جذبات کی اتار چڑھاؤ (ڈیلٹا متغیر) کی مطلق قیمت کی بنیاد پر منافع اور سٹاپ نقصان کی شرائط مقرر کریں۔
مارکیٹ کے رجحان کا زیادہ جامع اندازہ لگانے کے لئے مختلف دوروں میں جذبات پر غور کریں۔
وزن ایڈجسٹمنٹ میکانزم حکمت عملی کو زیادہ مستحکم بناتا ہے.
جذباتی قدر اور اس کے اتار چڑھاؤ کو ملا کر داخل ہونے کا زیادہ عین مطابق وقت.
سب سے زیادہ قیمت، سب سے کم قیمت کے ساتھ خطرات کا انتظام کریں، منافع لے اور نقصان کو روکیں.
پیرامیٹرز کی غلط ترتیبات بہت کثرت سے ٹریڈنگ یا کھوئے ہوئے مواقع کا سبب بن سکتی ہیں۔
بلیک سوان واقعات حکمت عملی منطق کو باطل کر سکتے ہیں.
معاہدے کی اصلاحات اور قواعد کی تبدیلیاں حکمت عملی کی کارکردگی کو متاثر کرسکتی ہیں۔
جذبات کا حساب کتاب تاریخی اعداد و شمار پر مبنی ہے۔ جب مارکیٹ کے نظام میں تبدیلی آتی ہے تو دوبارہ تشخیص کی ضرورت ہوتی ہے۔
مارکیٹ کے بدلتے ہوئے حالات کو ایڈجسٹ کرنے کے لئے وزن ، تجارتی دوروں ، منافع لینے کے تناسب وغیرہ کو ایڈجسٹ کرکے خطرات کا انتظام کیا جاسکتا ہے۔ اس دوران پوزیشن سائزنگ اور مجموعی طور پر نمائش پر سختی سے قابو پانے کے ذریعہ سرمایہ کاری کا انتظام بہتر بنائیں۔
جذباتی فیصلے کے لئے امیر بنیاد بنانے کے لئے تجزیہ کے دوروں کو بڑھانا.
ایک مشترکہ نقطہ نظر کے لئے زیادہ تکنیکی اشارے شامل کریں.
مشین لرننگ کے طریقوں کے ساتھ جذبات کی خصوصیات نکالیں.
متحرک طور پر وزن کی ترتیبات کو ایڈجسٹ کریں.
منافع حاصل کرنے اور نقصان کو روکنے کی حکمت عملی کو بہتر بنائیں.
یہ حکمت عملی جذبات تجزیہ کے تجارتی فلسفے پر مبنی ہے۔ یہ متعدد سائیکلوں پر غور کرکے موجودہ مجموعی مارکیٹ کے مزاج کا تعین کرتی ہے۔ مسلسل جذبات کی تبدیلیاں تجارتی سگنل تیار کرنے کی بنیاد کے طور پر کام کرتی ہیں ، جس میں وقت کے اندراج کے لئے قیمت میں اتار چڑھاؤ کی مدد سے مدد ملتی ہے۔ مارکیٹ کے رجحانات کا فیصلہ کرنے کا یہ انوکھا نقطہ نظر مختلف سائیکلوں میں اچھی طرح کام کرتا ہے۔ تجزیہ کے ادوار کو مزید بڑھانا ، مزید اشارے شامل کرنا اور بہتر بنانا زیادہ پیچیدہ مارکیٹ کے ماحول کو اپنانے کے لئے جذبات کی تجارتی حکمت عملی کو زیادہ پختہ اور مستحکم بنا سکتا ہے۔
/*backtest start: 2022-12-15 00:00:00 end: 2023-12-21 00:00:00 period: 1d basePeriod: 1h 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/ // © Jomy //@version=4 //2h chart BITMEX:XBTUSD //use on low leverage 1-2x only strategy("expected range STRATEGY",overlay=false,initial_capital=1000,precision=2) leverage=input(1,"leverage",step=.5) tp=input(53,"take profit %",step=1) sl=input(7,"stoploss %",step=1) stoploss=1-(sl/100) plot(stoploss) level=input(.70,"level to initiate trade",step=.02) closelevel=input(0.0,"level to close trade",step=.02) levelshort=input(.68,"level to initiate trade",step=.02) closelevelshort=input(0.0,"level to close trade",step=.02) wa=input(1.158,"weight a",step=.2) wb=input(1.119,"weight b",step=.2) wc=input(1.153,"weight c",step=.2) wd=input(1.272,"weight d",step=.2) we=input(1.295,"weight e",step=.2) wf=input(1.523,"weight f",step=.2) wg=input(1.588,"weight g",step=.2) wh=input(2.100,"weight h",step=.2) wi=input(1.816,"weight i",step=.2) wj=input(2.832,"weight j",step=.2) a=1 b=2 c=3 d=5 e=8 f=13 g=21 h=34 i=55 j=89 n=0 n:=if volume > -1 nz(n[1])+1 ra=highest(high,a)-lowest(low,a) aa=sma(ohlc4,a) ha=aa[1]+ra[1]/2 la=aa[1]-ra[1]/2 rb=highest(high,b)-lowest(low,b) ab=sma(ohlc4,b) hb=ab[1]+rb[1]/2 lb=ab[1]-rb[1]/2 rc=highest(high,c)-lowest(low,c) ac=sma(ohlc4,c) hc=ac[1]+rc[1]/2 lc=ac[1]-rc[1]/2 rd=highest(high,d)-lowest(low,d) ad=sma(ohlc4,d) hd=ad[1]+rd[1]/2 ld=ad[1]-rd[1]/2 re=highest(high,e)-lowest(low,e) ae=sma(ohlc4,e) he=ae[1]+re[1]/2 le=ae[1]-re[1]/2 rf=highest(high,f)-lowest(low,f) af=sma(ohlc4,f) hf=af[1]+rf[1]/2 lf=af[1]-rf[1]/2 rg=highest(high,g)-lowest(low,g) ag=sma(ohlc4,g) hg=ag[1]+rg[1]/2 lg=ag[1]-rg[1]/2 rh=highest(high,h)-lowest(low,h) ah=sma(ohlc4,h) hh=ah[1]+rh[1]/2 lh=ah[1]-rh[1]/2 ri=highest(high,i)-lowest(low,i) ai=sma(ohlc4,i) hi=ai[1]+ri[1]/2 li=ai[1]-ri[1]/2 rj=highest(high,j)-lowest(low,j) aj=sma(ohlc4,j) hj=aj[1]+rj[1]/2 lj=aj[1]-rj[1]/2 placea=((close-la)/(ha-la)-.5)*-100 placeb=((close-lb)/(hb-lb)-.5)*-100 placec=((close-lc)/(hc-lc)-.5)*-100 placed=((close-ld)/(hd-ld)-.5)*-100 placee=((close-le)/(he-le)-.5)*-100 placef=((close-lf)/(hf-lf)-.5)*-100 placeg=((close-lg)/(hg-lg)-.5)*-100 placeh=((close-lh)/(hh-lh)-.5)*-100 placei=((close-li)/(hi-li)-.5)*-100 placej=((close-lj)/(hj-lj)-.5)*-100 sentiment=((placea/j)*ra*wa+(placeb/i)*rb*wb+(placec/h)*rc*wc+(placed/g)*rd*wd+(placee/f)*re*we+(placef/e)*rf*wf+(placeg/d)*rg*wg+(placeh/c)*rh*wh+(placei/b)*ri*wi+(placej/a)*rj*wj)/(wa+wb+wc+wd+we+wf+wg+wh+wi+wj) deltalong=0.0 deltalong:=if sentiment>0 nz(deltalong[1])+sentiment-sentiment[1] else 0 deltashort=0.0 deltashort:=if sentiment<0 nz(deltashort[1])+((sentiment-sentiment[1])*-1) else 0 //plot(sentiment*-1,color=color.blue) //plot(deltalong,color=color.red) //plot(deltashort,color=color.lime) peakfindlong=highest(deltalong,j)*level peakfindshort=highest(deltashort,j)*levelshort contracts=(strategy.equity/close)*leverage //reason for o is this strategy makes dumb trades before the sentiment line crosses the 0 point the first time o=0 o:=if cross(0,sentiment) and n>j 1 else nz(o[1]) long=deltashort>peakfindlong and o==1 short=deltalong>peakfindshort and o==1 longstart=0.0 longstart:=if strategy.position_size>0 and strategy.position_size[1]<=0 close else nz(longstart[1]) shortstart=0.0 shortstart:=if strategy.position_size<0 and strategy.position_size[1]>=0 close else nz(shortstart[1]) highsincelong = 0.0 highsincelong := if strategy.position_size>0 max(max(highsincelong[1],high),high[1]) else 0 lowsinceshort = 1000000.0 lowsinceshort := if strategy.position_size<0 min(min(lowsinceshort[1],low),low[1]) else 10000000 closelong=strategy.position_size > 0 and ((highsincelong/longstart-1)*100) > tp closeshort=strategy.position_size < 0 and ((shortstart/lowsinceshort-1)*100) > tp stoptrade=0 stoptrade:= if closelong 1 else nz(stoptrade[1]) stoptrade:= if short and stoptrade[1]==1 0 else stoptrade stoptrade:= if closeshort -1 else stoptrade stoptrade:= if long and stoptrade[1]==-1 0 else stoptrade if(closelong) strategy.close("Long1") pnllong = ((close - strategy.position_avg_price) / strategy.position_avg_price)*100 pnlshort = ((strategy.position_avg_price-close) / strategy.position_avg_price) *100 plot (strategy.position_size > 0 ?(highsincelong/longstart-1)*100 : 0.0,color=color.lime,linewidth=2) plot (strategy.position_size < 0 ?(shortstart/lowsinceshort-1)*100 : 0.0,color=color.red,linewidth=2) plot( strategy.position_size > 0 ? pnllong:0, color=strategy.position_size > 0 ?color.yellow:color.black,linewidth=2 ) plot( strategy.position_size < 0 ? pnlshort:0, color=strategy.position_size < 0 ?color.orange:color.black,linewidth=2) longuntilshort=0 longuntilshort:=if long 1 else if short -1 else nz(longuntilshort[1]) bgcolor(stoptrade!=0?color.black:longuntilshort==1?color.lime:longuntilshort==-1?color.red:na,transp=70) if(long and stoptrade==0) strategy.entry("Long1",strategy.long,qty=max(1,min(contracts,1000000000))) if(closelong) strategy.close("Long1") strategy.exit("Long1",stop=longstart * stoploss,when = strategy.position_size>0) if(short and stoptrade==0) strategy.entry("Short1",strategy.short,max(1,min(contracts,1000000000))) if(closeshort) strategy.close("Short1") strategy.exit("Long1",stop=shortstart / stoploss,when = strategy.position_size<0)