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