वेगास चैनल क्रॉसओवर रणनीति को स्थानांतरित करना

लेखक:चाओझांग, दिनांकः 2024-01-02 10:53:06
टैगः

img

इस रणनीति का मूल विचार खरीद और बिक्री संकेत जारी करने के लिए एमएसीडी संकेतक के साथ संयुक्त 36, 143, 169 जैसे विभिन्न चक्रों के साथ ईएमए के आधार पर स्टॉक की अल्पकालिक, मध्यम और दीर्घकालिक प्रवृत्ति दिशा निर्धारित करना है। विशेष रूप से, अल्पकालिक में, 5 और 10 दिन के ईएमए का उपयोग निर्णय लेने के लिए किया जाता है, मध्यम अवधि में, 20 और 60 दिन के ईएमए का उपयोग निर्णय लेने के लिए किया जाता है, दीर्घकालिक में, 120 और 250 दिन के ईएमए का उपयोग निर्णय लेने के लिए किया जाता है, जब अल्पकालिक ईएमए मध्यम अवधि के ईएमए को पार करता है, तो यह तेजी है, अन्यथा यह मंदी है; तेजी और मंदी संकेतों के एमएसीडी संकेतक का उपयोग खरीद और बिक्री समय निर्धारित करने के लिए किया जाता है।

वेगास सुरंग रणनीति का विशिष्ट तंत्र:

  1. ईएमए 36 और ईएमए 43 का उपयोग करें, ताकि अल्पकालिक रुझान का आकलन किया जा सके, वे लाल चैनल बनाते हैं;
  2. EMA 144 और EMA 169 का उपयोग मध्यम अवधि के रुझान का आकलन करने के लिए करें, वे हरी चैनल बनाते हैं;
  3. EMA576 और EMA676 का उपयोग दीर्घकालिक प्रवृत्ति निर्णय बनाने के लिए करें, वे ग्रे चैनल बनाते हैं;
  4. जब मूल्य उपरोक्त ईएमए लाइनों पर खड़ा हो, तो खरीद संकेत के रूप में एमएसीडी संकेतक के साथ 0 अक्ष के माध्यम से ऊपर की ओर तोड़ने के साथ लंबा हो;
  5. जब कीमत उपरोक्त ईएमए लाइनों से नीचे टूट जाती है, तो विक्रय संकेत के रूप में एमएसीडी संकेतक के साथ मिलकर, कम करें;
  6. ईएमए लाइन ब्रेकथ्रू के अनुसार तीन रणनीतियाँ परिभाषित की गई हैं, क्रमशः अल्पकालिक, मध्यमकालिक और दीर्घकालिक, जो अलग-अलग होल्डिंग अवधि के अनुरूप हैं।

इस रणनीति के फायदे:

  1. प्रवृत्ति की दिशा का आकलन करने के लिए लघु, मध्यम और दीर्घ तीन चैनलों का संयोजन, अपेक्षाकृत स्थिर;
  2. वेगास सुरंग ट्रेंड निर्धारित करने के लिए सहज है;
  3. एमएसीडी बेहतर खरीद और बिक्री समय को पकड़ने में मदद करता है;
  4. अधिक लचीले परिचालन के लिए तीन लघु, मध्यम और दीर्घ रणनीतियों में विभाजित।

प्रमुख जोखिमः

  1. जब कीमतों में भारी उतार-चढ़ाव होता है, तो ईएमए रेखाएं देरी करती हैं, जिससे गलत निर्णय लेने की संभावना होती है;
  2. जब तीन चैनलों में असंगत संकेत दिखाई देते हैं, तो गलत संचालन के जोखिम मौजूद होते हैं।
  3. मिनट चार्ट संचालन के लिए अधिक मनोवैज्ञानिक सहनशक्ति की आवश्यकता होती है।

सामना करने के तरीके:

  1. वर्तमान बाजार विशेषताओं के अनुरूप ईएमए चक्र को बेहतर ढंग से समायोजित करना;
  2. एकल हानि को सीमित करने के लिए स्थिति का आकार पहले से समायोजित करें।

अनुकूलन स्थानः

  1. वेगास सुरंगों की प्रवृत्ति आकलन क्षमता में सुधार की आवश्यकता है, बोलिंगर बैंड जोड़े जा सकते हैं;
  2. एमएसीडी साइडवेज बाजारों के लिए खराब काम करता है, केडी और आरएसआई जैसे संकेतक बेहतर विकल्प हो सकते हैं;
  3. स्टॉप लॉस पॉलिसी जोड़ें, जैसे स्टॉप लॉस जब क्लोजिंग प्राइस प्रमुख ईएमए लाइनों को तोड़ता है;
  4. अधिक प्रभाव वाले शेयर सीमा-अप और डाउन को देखते हुए हेज करने के लिए लघु ईटीएफ।

/*backtest
start: 2022-12-26 00:00:00
end: 2024-01-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy("Vegas Tunnel strategy", overlay=true)
//-------------------------------------------
//-------------------------------------------
// Inputs
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", type=input.resolution, defval="D")
//tfSet = input(title = "Time Frame", options=["Current","120", "240", "D", "W"], defval="D")
tfSet = useCurrentRes ? timeframe.period : resCustom
maPeriods2 = input(12, "12 EMA")
maPeriods6 = input(240, "240 SMA")
BBlength = input(20, title="BB Length", minval=1)
BBsrc = input(close, title="BB Source")
mult = input(2.0, minval=0.001, maxval=50, title="BB StdDev")
sm2 = security(syminfo.tickerid, tfSet, ema(close, maPeriods2))
sm6 = security(syminfo.tickerid, tfSet, sma(close, maPeriods6))
p2 = plot(sm2, color=color.green, transp=30,  linewidth=2, title="SMA2")
p6 = plot(sm6, color=color.white, transp=30,  linewidth=2, title="SMA6")
//BB
basis = sma(BBsrc, BBlength)
dev = mult * stdev(BBsrc, BBlength)
upper = basis + dev
lower = basis - dev
offset = input(0, "BB Offset", type = input.integer, minval = -500, maxval = 500)
//plot(basis, "Basis", color=color.blue,linewidth, offset = offset)
pBB1 = plot(upper, "Upper", color=color.blue, offset = offset)
pBB2= plot(lower, "Lower", color=color.blue, offset = offset)

//MACD
fast_ma = ema(close, 48)
slow_ma = ema(close, 56)
macd = fast_ma - slow_ma

//vagas隧道
f1=ema(close, 36)
f2=ema(close, 43)
f3=ema(close, 144)
f4=ema(close, 169)
f5=ema(close, 576)
f6=ema(close, 676)
f7=ema(close,2304)
z1=plot(f1,color=color.red, title="ema36",transp=100)
z2=plot(f2,color=color.red, title="ema43",transp=100)
z3=plot(f3,color=color.green, title="ema144",transp=100)
z4=plot(f4,color=color.green, title="ema169",transp=100)
z5=plot(f5,color=color.white, title="ema576",transp=100)
z6=plot(f6,color=color.white, title="ema676",transp=100)
fill(z1, z2, color=color.red,transp=60)
fill(z3, z4, color=color.green,transp=60)
fill(z5, z6, color=color.gray,transp=60)

// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2018, minval=1800, maxval=2100)
endDate = input(title="End Date", type=input.integer,
     defval=1, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
     defval=11, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
     defval=2030, minval=1800, maxval=2100)
// Look if the close time of the current bar
// falls inside the date range
inDateRange =  true

//波段多
if (inDateRange and crossunder(f3,f1))// 
    strategy.entry("buy", strategy.long,1, when=macd>0, comment = "買Long-term")
buyclose=crossunder(f3,f5) 
strategy.close("buy", when = buyclose, comment = "關Long-term")
//多策略1
if (inDateRange and crossover(low , f3) and macd>0 and f3>f6)
    strategy.entry("buy1", strategy.long,100, comment = "買Mid-term")
buyclose1=crossunder(close,upper*0.999) 
if (macd<0 or f3<f6)
    strategy.close("buy1", comment = "關Mid-term")
//strategy.close("buy1",when=cross(basis,close), comment = "關M",qty_percent=50)
strategy.close("buy1", when = buyclose1, comment = "關Mid-term",qty_percent=100)
//多策略3
if (inDateRange and  (macd>0) and crossunder(low,f1) and f1>f4) // 
    strategy.entry("buy3", strategy.long,1, comment = "買Short-term")
buyclose3=crossunder(close,upper*0.999)
if (macd<0 or f1<f4)
    strategy.close("buy3", comment = "關Short-term")
strategy.close("buy3", when = buyclose3, comment = "關Short-term")
//多策略4
if (inDateRange and  (macd>0) and crossunder(low,f5) and f4>f5) // 
    strategy.entry("buy4", strategy.long,1, comment = "買Long-term")
buyclose4=crossunder(close,upper*0.999)
if (macd<0 or f4<f6)
    strategy.close("buy4", comment = "關Long-term")
strategy.close("buy4", when = buyclose4, comment = "關Long-term")
    
//空策略1
if (inDateRange and  (macd<0) and crossunder(high,f1) and f1<f3 and f3<f6) // 
    strategy.entry("sell1", strategy.short,1, comment = "空Short-term")
sellclose1=crossunder(lower*0.999,close)
if (macd>0 or f1>f4)
    strategy.close("sell1", comment = "關空Short-term")
strategy.close("sell1", when = sellclose1, comment = "關空Short-term")
//空策略2
if (inDateRange and  (macd<0) and crossunder(high,f4) and f4<f6) // 
    strategy.entry("sell2", strategy.short,1, comment = "空Mid-term")
sellclose2=crossunder(lower,close)
if (macd>0 or f4>f6)
    strategy.close("sell2", comment = "關空Mid-term")
strategy.close("sell2", when = sellclose2, comment = "關Mid-term")
//空策略3
if (inDateRange and (macd<0) and crossunder(high,f6)) // 
    strategy.entry("sell3", strategy.short,1, comment = "空Long-term")
sellclose3=crossunder(lower,close)
if (macd>0 or f6>f7)
    strategy.close("sell3", comment = "關空Long-term")
strategy.close("sell3", when = sellclose3, comment = "關空Long-term")

अधिक