गतिशीलता की रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-26 11:45:55
टैगः

img

अवलोकन

यह रणनीति विभिन्न तकनीकी संकेतकों जैसे चलती औसत, सापेक्ष शक्ति सूचकांक (आरएसआई), मात्रा उतार-चढ़ाव सूचकांक (वीएफआई) और वास्तविक शक्ति सूचकांक (टीएसआई) को बाजार की समग्र गति और प्रवृत्ति को निर्धारित करने और मध्यम से दीर्घकालिक मूल्य आंदोलनों को पकड़ने के लिए जोड़ती है।

रणनीति तर्क

  1. आरएसआई की प्रवृत्ति और गति निर्धारित करने के लिए फास्ट लाइन आरएसआई (7 दिन), सामान्य लाइन आरएसआई (14 दिन) और स्लो लाइन आरएसआई (50 दिन) के चलती औसत की गणना करें।

  2. धन के प्रवाह और बहिर्वाह को मापने के लिए वीएफआई ईएमए (25 दिन) और वीएफआई एसएमए (25 दिन) के चलती औसत की गणना करें।

  3. बाजार के रुझान की मजबूती निर्धारित करने के लिए एसटीआई के दीर्घकालिक चलती औसत और अल्पकालिक चलती औसत के अनुपात की गणना करें।

  4. आरएसआई, वीएफआई और एसटीआई के परिणामों को एकीकृत करना ताकि बाजार की समग्र गति की दिशा का पता लगाया जा सके।

  5. जब नीचे की ओर गति की पहचान की जाती है तो शॉर्ट पोजीशन लें। जब गति का उलट पता लगाया जाता है तो शॉर्ट कवर करें।

लाभ विश्लेषण

  1. कई संकेतकों का संयोजन समग्र बाजार गति और प्रवृत्ति के अधिक व्यापक और सटीक माप की अनुमति देता है।

  2. वीएफआई बाजार के धन प्रवाह को दर्शाता है, प्रवृत्ति के खिलाफ व्यापार से बचता है।

  3. एसटीआई बाजार की अस्थिरता को फ़िल्टर करता है, जिससे संकेत अधिक विश्वसनीय होते हैं।

  4. कुल मिलाकर, रणनीति में उच्च विश्वसनीयता और अच्छी जीत दर है।

जोखिम विश्लेषण

  1. मल्टी-इंडिकेटर सेटअप से इष्टतम परिणाम प्राप्त करने के लिए जटिल पैरामीटर ट्यूनिंग की आवश्यकता होती है।

  2. सरल प्रवेश और निकास नियम, सूचक सूचनाओं का पूर्ण रूप से पूँजीकरण करने में असमर्थ, अल्पकालिक प्रतिवर्तन घाटे के लिए प्रवण।

  3. झूठे संकेतों के प्रति संवेदनशील और भिन्न-भिन्न, अस्थिर बाजारों में छोटे-छोटे पिलबैक नुकसान।

अनुकूलन दिशाएँ

  1. सर्वोत्तम मापदंडों को खोजने के लिए संकेतक संयोजनों का अनुकूलन करें।

  2. रिवर्स को पकड़ने के लिए सूचक स्थितियों के आधार पर बाहर निकलने के नियमों को बेहतर बनाना।

  3. लाभ संरक्षण के तंत्र का निर्माण करना, ताकि चपटीपन से होने वाले नुकसान को कम किया जा सके।

सारांश

यह रणनीति समग्र बाजार गति को मापने के लिए कई संकेतकों को जोड़ती है और जब नीचे की गति की पहचान की जाती है तो छोटी स्थिति लेती है। इसमें अपेक्षाकृत उच्च विश्वसनीयता है लेकिन सरल प्रवेश / निकास नियम संकेतक जानकारी का पूरी तरह से उपयोग करने में असमर्थ हैं। मापदंडों और निकास तर्क में आगे के सुधार स्थिरता और लाभप्रदता में सुधार कर सकते हैं।

]


//@version=2
//credit to LazyBear, Lewm444, and others for direct and indirect inputs/////////////////////////////////
//script is very rough, publishing more for collaborative input value than as a finished product/////////
strategy("Momo", overlay=true)
length = input( 50 )
overSold = input( 50 )
overBought = input( 65 )
price = ohlc4

/////////////////////////////////////////////////////macd/////////////////////////////////////////////////

fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)

fast = 12, slow = 26
fastMA = ema(close, fast)
slowMA = ema(close, slow)
MACD = (fastMA - slowMA)
Msignal = (sma(MACD, 9))*40
//plot(Msignal, color=blue, linewidth=3)

/////////////////////////////////////////////////rsi spread/////////////////////////////////////////////////

source = price

RSIFast  = rsi(source, input(7))
RSINorm  = rsi(source, input(14))
RSISlow = rsi(source, input(50))

//plot(RSIFast, color=silver, style=area, histbase=50)
//plot(RSINorm, color=#98b8be, style=area, histbase=50)
//plot(RSISlow, color=#be9e98, style=area, histbase=50)

//plot(RSIFast, color=gray, style=line, linewidth=1)
//plot(RSINorm, color=purple, style=line, linewidth=2)
//plot(RSISlow, color=black, style=line, linewidth=3)

exponential = input(true, title="Exponential MA")

src = (RSIFast)

ma05 = exponential ? ema(src, 05) : sma(src, 05)
ma30 = exponential ? ema(src, 30) : sma(src, 30)
ma50 = exponential ? ema(src, 50) : sma(src, 50)
ma70 = exponential ? ema(src, 70) : sma(src, 70)
ma90 = exponential ? ema(src, 90) : sma(src, 90)
ma100 = exponential ? ema(src, 100) : sma(src, 100)

exponential1 = input(true, title="Exponential MA")

src1 = (RSINorm)

ma051 = exponential1 ? ema(src1, 05) : sma(src1, 05)
ma301 = exponential1 ? ema(src1, 30) : sma(src1, 30)
ma501 = exponential1 ? ema(src1, 50) : sma(src1, 50)
ma701 = exponential1 ? ema(src1, 70) : sma(src1, 70)
ma901 = exponential1 ? ema(src1, 90) : sma(src1, 90)
ma1001 = exponential1 ? ema(src1, 100) : sma(src1, 100)


exponential2 = input(true, title="Exponential MA")

src2 = (RSINorm)

ma052 = exponential2 ? ema(src2, 05) : sma(src2, 05)
ma302 = exponential2 ? ema(src2, 30) : sma(src2, 30)
ma502 = exponential2 ? ema(src2, 50) : sma(src2, 50)
ma702 = exponential2 ? ema(src2, 70) : sma(src2, 70)
ma902 = exponential2 ? ema(src2, 90) : sma(src2, 90)
ma1002 = exponential2 ? ema(src2, 100) : sma(src2, 100)


////////////////////////////////////////////////vfi by LazyBear, modified////////////////////////////////////

VFIlength = input(130, title="VFI length")
coef = input(0.2)
vcoef = input(2.5, title="Max. vol. cutoff")
signalLength=input(10)
signalLength2 = input(100)
smoothVFI=input(false, type=bool)

ma(x,y) => smoothVFI ? sma(x,y) : x

typical=hlc3
inter = log( typical ) - log( typical[1] )
vinter = stdev(inter, 30 )
cutoff = coef * vinter * close
vave = sma( volume, VFIlength )[1]
vmax = vave * vcoef
vc = iff(volume < vmax, volume, vmax) //min( volume, vmax )
mf = typical - typical[1]
vcp = iff( mf > cutoff, vc, iff ( mf < -cutoff, -vc, 0 ) )

vfi = ma(sum( vcp , VFIlength )/vave, 3)
vfima = ema( vfi, 25 )
vfimaS = (sma(vfima, 25))
zima = ema( vfima, signalLength2 )
d=vfi-vfima
vfi_avg = avg(vfi, vfima, vfimaS)
vfi_avgS = (sma(vfi_avg,5))

plot( zima, title="EMA of vfima", color=fuchsia, linewidth=1)
plot( vfimaS, title="SMA of vfima", color=blue, linewidth=1)
plot( vfima , title="EMA of vfi", color=black, linewidth=1)
//plot( vfi, title="vfi", color=green,linewidth=1)
//plot( vfi_avg, title="vfi_avg", color=blue, linewidth=2)
//plot( vfi_avgS, title="vfi_avgS", color=maroon, linewidth=2)

/////////////////////////////////////////////////////tsi////////////////////////////////////////////////

long2 = input(title="Long Length",  defval=24)
short2 = input(title="Short Length",  defval=7)
signal2 = input(title="Signal Length",  defval=13)
pc = change(price)
double_smooth2(src, long2, short2) =>
    fist_smooth2 = ema(src, long2)
    ema(fist_smooth2, short2)
double_smoothed_pc2 = double_smooth2(pc, long2, short2)
double_smoothed_abs_pc2 = double_smooth2(abs(pc), long2, short2)
tsi_value2 = 60 * (double_smoothed_pc2 / double_smoothed_abs_pc2)
//plot( tsi_value2, title="tsi2", color=black, linewidth=1)

////////////////////////////////////////////////////////mjb////////////////////////////////////////////////

trendSignal = avg(tsi_value2, Msignal, vfi)*1.75
T1 = sma(trendSignal, 5)
T2 = ema(trendSignal, 25)
T3 = ema(T2, 25)
//plot( T1, title="Trend", color=red, linewidth=3)
plot( T3, title="Trend3", color=black, linewidth=3)

/////////////////////////////////////////////////////mjb////////////////////////////////////////////////

Momentum = avg (T3, vfimaS, vfima)
plot( Momentum, title="Momentum", color=blue, linewidth=2)
vrsi = rsi(price, length)
clearance = abs(zima - Msignal)

/////////////////////////////////////////////////////mjb////////////////////////////////////////////////

if (not na(vrsi)) 
    if (zima > T3) and (clearance > 5) and (falling(zima, 1) == 1) and (zima > vfimaS) and (zima > vfima) and (falling(T3, 1) == 1) and (zima > 6)
        strategy.entry("ss", strategy.short)
    if (T3 > zima) and (rising(zima, 1) == 1)
        strategy.entry("Zcover", strategy.long)
    if (strategy.openprofit > 750) and (rising(T2, 1) == 1) and (T2 > 10)
        strategy.entry("ProfitTake", strategy.long)
// strategy.risk.allow_entry_in(strategy.direction.short)
// strategy.risk.max_intraday_loss(2000, strategy.cash)        

अधिक