लेखक:चाओझांग, दिनांकः 2024-01-25 12:43:43
टैगः

img

अवलोकन

यह रणनीति बाजार में रुझानों और उलटफेरों को अनुकूलनशील तरीके से पकड़ने के लिए रुझानों के अनुसरण करने वाले मीट्रिक वीएफआई और मूविंग एवरेज को रिवर्स इंडिकेटर बोलिंगर बैंड्स के साथ जोड़ती है।

रणनीति तर्क

इस रणनीति के मुख्य घटक निम्नलिखित हैंः

  1. यह प्रवृत्ति निर्धारित करने के लिए वीएफआई संकेतक है। यह मूल्य और मात्रा को उचित रूप से मेल खाने के लिए विशिष्ट मूल्य और व्यापारिक मात्रा के परिवर्तन की लघुगणकीय दर का उपयोग करता है।

  2. प्रवृत्ति निर्धारित करने के लिए ईएमए अंतर संकेतक। यह मध्य-लंबी अवधि की प्रवृत्ति दिशा का न्याय करने के लिए 20-दिवसीय ईएमए और 50-दिवसीय ईएमए के बीच प्रतिशत अंतर की गणना करता है।

  3. रिवर्स का पता लगाने के लिए बोलिंगर बैंड। मध्य बैंड 20 दिन का एसएमए है, और बैंड की चौड़ाई मध्य बैंड का 1.5 मानक विचलन है। जब कीमत ऊपरी या निचले बैंड को तोड़ती है तो ट्रेडिंग सिग्नल उत्पन्न होते हैं।

  4. थकावट का पता लगाने के लिए VFI आयाम। जब VFI अपनी सीमाओं (0, 20) के करीब है, तो रुझान उलटने की संभावना अधिक माना जाता है।

जब मूल्य बोलिंगर बैंड के ऊपरी भाग से ऊपर टूटता है और वीएफआई और ईएमए अंतर ऊपर की ओर प्रवृत्ति का संकेत देता है, तो लंबा हो जाता है। जब मूल्य निचले बैंड से नीचे टूटता है या वीएफआई एक सीमा तक पहुंचता है, तो स्थिति बंद हो जाती है।

लाभ

  1. वीएफआई की शुरूआत से मूल्य-मात्रा संबंध अधिक उचित हो जाता है और कीमतों का अंधाधुंध पालन करने से बचा जाता है।

  2. ईएमए अंतर और वीएफआई का संयोजन प्रवृत्ति निर्धारण को अधिक विश्वसनीय बनाता है।

  3. बोलिंगर बैंड और वीएफआई का संयोजन रणनीति को बाजार में द्विदिश उतार-चढ़ाव के लिए अधिक अनुकूल बनाता है।

जोखिम

  1. वॉल्यूम-प्राइस इंडिकेटर झूठे ब्रेकआउट के जोखिम से पूरी तरह से बच नहीं सकते हैं।

  2. ईएमए अंतर में कुछ विलंब होता है और यह अल्पकालिक मोड़ पर समय पर प्रतिक्रिया नहीं कर सकता है।

  3. बोलिंगर बैंड के अनुचित मापदंडों से बाजार में ओवरट्रेडिंग या कब्जा हो सकता है।

समाधान:

  1. किसी एक सूचक पर निर्भर होने से बचने के लिए प्रवृत्ति निर्धारित करने के लिए कई संकेतकों को मिलाएं।

  2. ईएमए मापदंडों को उचित मानों पर समायोजित करें.

  3. विभिन्न बाजार स्थितियों में रणनीति पर बोलिंगर मापदंडों के प्रभावों का परीक्षण करें।

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

  1. इसे अधिक संवेदनशील बनाने के लिए वीएफआई मापदंडों का अनुकूलन जारी रखें।

  2. मूल्य चैनलों या लिफाफे संकेतक के आधार पर ब्रेकआउट निर्णय जोड़ें।

  3. ओबीवी, पीवीटी आदि जैसे अधिक मात्रा-मूल्य संकेतकों की शुरूआत का परीक्षण करें।

  4. गतिशील मापदंड अनुकूलन को प्राप्त करने के लिए मशीन लर्निंग और एआई तकनीकों का परिचय देना।

निष्कर्ष

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


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 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/
// © beststockalert

//@version=4

strategy(title="Super Bollinger Band Breakout", shorttitle = "Super BB-BO", overlay=true)
source = close

length = input(130, title="VFI length")
coef = input(0.2)
vcoef = input(2.5, title="Max. vol. cutoff")
signalLength=input(5)


// session 


pre = input( type=input.session, defval="0400-0935")
trade_session = input( type=input.session, defval="0945-1700")
use_trade_session = true
isinsession = use_trade_session ? not na(time('1', trade_session)) : true


is_newbar(sess) =>
    t = time("D", sess)
    not na(t) and (na(t[1]) or t > t[1])


is_session(sess) =>
    not na(time(timeframe.period, sess))

preNew = is_newbar(pre)
preSession = is_session(pre)

float preLow = na
preLow := preSession ? preNew ? low : min(preLow[1], low) : preLow[1]

float preHigh = na
preHigh := preSession ? preNew ? high : max(preHigh[1], high) : preHigh[1]



//   vfi 9lazybear 
ma(x,y) => 0 ? sma(x,y) : x

typical=hlc3
inter = log( typical ) - log( typical[1] )
vinter = stdev(inter, 30 )
cutoff = coef * vinter * close
vave = sma( volume, length )[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 , length )/vave, 3)
vfima=ema( vfi, signalLength )


//ema diff


ema20 = ema(close,20)
ema50 = ema(close,50)


diff = (ema20-ema50)*100/ema20
ediff = ema(diff,20)

//
basis = sma(source, 20)
dev = 1.5 * stdev(source, 20)

upper = basis + dev
lower = basis - dev


ema9 = ema(source, 9)

if ( ((crossover(source, upper) and diff>ediff and diff>0) or (close>upper and (vfi >0 or vfima>0 or ediff>0.05) and (vfi<14 or vfima<14)) ))
    strategy.entry("Long", strategy.long)


if (crossunder(source, lower) or vfi>19 or vfima>19 or diff<(ediff+0.01) )
    strategy.close("Long")



अधिक