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


निर्माण तिथि: 2023-11-28 16:17:31 अंत में संशोधित करें: 2023-11-28 16:17:31
कॉपी: 1 क्लिक्स: 715
1
ध्यान केंद्रित करना
1619
समर्थक

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

अवलोकन

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

रणनीति सिद्धांत

  1. कीमतों के त्रिकोणात्मक चलती औसत ap, और ap के सूचकांक चलती औसत esa की गणना करें।
  2. एपी और ईएसए के बीच पूर्ण अंतर के लिए एक सूचकांक चलती औसत डी की गणना करें।
  3. वेरिएंट प्राप्त करें
  4. सीआई के n2 चक्र औसत की गणना करें, और लहर प्रवृत्ति सूचक wt1 प्राप्त करें।
  5. ओवरबॉय लाइन और ओवरसेलिंग लाइन सेट करें।
  6. WT1 पर ओवरबॉय लाइन को पार करते समय, अधिक करें; WT1 के नीचे ओवरबॉय लाइन को पार करते समय, खाली करें।

श्रेष्ठता विश्लेषण

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

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

  1. बड़े पैमाने पर अस्थिर बाजार में, संकेतक एक गलत संकेत उत्पन्न कर सकते हैं, जोखिम अधिक है। उचित रूप से संक्षिप्त होल्डिंग अवधि, या अन्य संकेतक फ़िल्टर संकेतों के साथ संयुक्त किया जा सकता है।
  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")