तरंग प्रवृत्ति आधारित मात्रात्मक व्यापारिक रणनीति

लेखक:चाओझांग, दिनांक: 2023-11-28 16:17:31
टैगः

img

अवलोकन

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

रणनीति तर्क

  1. मूल्य के त्रिकोणीय चलती औसत एपी की गणना करें, साथ ही साथ एपी के घातीय चलती औसत ईएसए की गणना करें।
  2. एपी और एएसए के बीच पूर्ण अंतर के घातीय चलती औसत डी की गणना करें।
  3. अस्थिरता सूचक ci प्राप्त करें।
  4. तरंग प्रवृत्ति सूचक wt1 प्राप्त करने के लिए ci के n2 अवधि चलती औसत की गणना करें।
  5. ओवरबॉट और ओवरसोल्ड थ्रेशोल्ड लाइनें सेट करें।
  6. जब wt1 ओवरसोल्ड लाइन से ऊपर जाता है, तो लंबा हो जाता है, जब wt1 ओवरबॉट लाइन से नीचे जाता है, तो छोटा हो जाता है।

लाभ विश्लेषण

  1. ओवरबॉट/ओवरसोल्ड स्तरों के वेव ट्रेंड ब्रेक प्रभावी रूप से ट्रेंड रिवर्स पॉइंट्स को पकड़ते हैं और सटीक ट्रेडिंग सिग्नल उत्पन्न करते हैं।
  2. मूल्य चैनल और चलती औसत सिद्धांतों को जोड़कर, संकेतक अक्सर झूठे संकेतों से बचता है।
  3. सभी समय सीमाओं और विभिन्न प्रकार के व्यापारिक साधनों पर लागू होता है।
  4. अनुकूलन योग्य पैरामीटर अच्छे उपयोगकर्ता अनुभव प्रदान करते हैं।

जोखिम और समाधान

  1. महत्वपूर्ण whipsaws खराब संकेत, उच्च जोखिम का कारण बन सकता है। संकेत फ़िल्टरिंग के लिए कम प्रतीक्षा अवधि का उपयोग कर सकते हैं या अन्य संकेतकों के साथ संयुक्त कर सकते हैं।
  2. कोई स्थिति आकार और स्टॉप हानि तंत्र, नुकसान के जोखिम नहीं है। निश्चित स्थिति आकार नियम और चलती बंद सेट कर सकते हैं।

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

  1. अन्य संकेतकों जैसे कि केडीजे और एमएसीडी के साथ संयोजन करने पर विचार करें ताकि स्थिरता बढ़ाने के लिए रणनीतिक संयोजन बनाया जा सके।
  2. स्वचालित स्टॉप लॉस को ट्रेलिंग स्टॉप की तरह डिज़ाइन करें, प्रति व्यापार हानि को सीमित करने के लिए अस्थिरता बंद हो जाती है।
  3. ऐतिहासिक डेटा पर मशीन लर्निंग एल्गोरिदम का उपयोग पैरामीटर को स्वचालित रूप से समायोजित करने और रणनीति प्रदर्शन में सुधार करने के लिए करें।

निष्कर्ष

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


/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@author SoftKill21
//@version=4

strategy(title="WaveTrend strat", shorttitle="WaveTrend strategy")
n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
Overbought = input(70, "Over Bought")
Oversold = input(-30, "Over Sold ")

// BACKTESTING RANGE
 
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2001, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
DST = 1 //day light saving for usa
//--- Europe
London = iff(DST==0,"0000-0900","0100-1000")
//--- America
NewYork = iff(DST==0,"0400-1500","0500-1600")
//--- Pacific
Sydney = iff(DST==0,"1300-2200","1400-2300")
//--- Asia
Tokyo = iff(DST==0,"1500-2400","1600-0100")

//-- Time In Range
timeinrange(res, sess) => time(res, sess) != 0

london = timeinrange(timeframe.period, London)
newyork = timeinrange(timeframe.period, NewYork)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true //and (london or newyork)

ap = hlc3 
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
 
wt1 = tci
wt2 = sma(wt1,4)

plot(0, color=color.gray)
plot(Overbought, color=color.red)
plot(Oversold, color=color.green)

plot(wt1, color=color.green)
longButton = input(title="Long", type=input.bool, defval=true)
shortButton = input(title="Short", type=input.bool, defval=true)

if(longButton==true)
    strategy.entry("long",1,when=crossover(wt1,Oversold) and time_cond)
    strategy.close("long",when=crossunder(wt1, Overbought))
    
if(shortButton==true)
    strategy.entry("short",0,when=crossunder(wt1, Overbought) and time_cond)
    strategy.close("short",when=crossover(wt1,Oversold))

//strategy.close_all(when= not (london or newyork),comment="time")
if(dayofweek == dayofweek.friday)
    strategy.close_all(when= timeinrange(timeframe.period, "1300-1400"), comment="friday") 

अधिक