LazyBear पर आधारित वेव ट्रेंड ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-19 12:07:14
टैगः

img

अवलोकन

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

रणनीति तर्क

इस रणनीति का मूल LazyBears वेव ट्रेंड संकेतक है। यह पहले औसत मूल्य (एपी), फिर एपी (ईएसए) के घातीय चलती औसत और पूर्ण मूल्य आंदोलन (डी) की गणना करता है। ईएसए और डी के आधार पर रणनीति अस्थिरता सूचकांक (सीआई) की गणना करती है, जो फिर वेव ट्रेंड लाइन (डब्ल्यूटी) उत्पन्न करने के लिए घातीय चलती औसत में खिलाती है। WT को सरल चलती औसत का उपयोग करके WT1 और WT2 में संसाधित किया जाता है। जब WT1 WT2 से पार होता है, तो यह स्वर्ण क्रॉस को ट्रिगर करता है और लंबा जाता है। जब WT1 WT2 से नीचे जाता है, तो यह मौत के क्रॉस को ट्रिगर करता है और छोटा हो जाता है।

लाभ विश्लेषण

यह एक बहुत ही सरल लेकिन व्यावहारिक प्रवृत्ति है।

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

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

इस रणनीति के कुछ जोखिम हैंः

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

मुख्य समाधान इस प्रकार हैंः

  1. WT की संवेदनशीलता को समायोजित करने के लिए मापदंडों का अनुकूलन करें
  2. झूठे संकेतों से बचने के लिए पुष्टिकरण के लिए अन्य संकेतक जोड़ें
  3. स्टॉप लॉस और ले लाभ का उपयोग करें
  4. दैनिक लेनदेन या पदों की सीमा

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

आगे अनुकूलन के लिए जगह हैः

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

सारांश

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


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

//
// @author LazyBear
//
// If you use this code in its original/modified form, do drop me a note. 
//
//@version=4
     
// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2021, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

// === INPUT SHOW PLOT ===
showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

// === FUNCTION EXAMPLE ===
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")
 
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(obLevel1, color=color.red)
plot(osLevel1, color=color.green)
plot(obLevel2, color=color.red, style=3)
plot(osLevel2, color=color.green, style=3)

plot(wt1, color=color.white)
plot(wt2, color=color.fuchsia)
plot(wt1-wt2, color=color.new(color.blue, 80), style=plot.style_area)

//Strategy
strategy(title="T!M - Wave Trend Strategy", overlay = false, precision = 8, max_bars_back = 200, pyramiding = 0, initial_capital = 1000, currency = currency.NONE, default_qty_type = strategy.cash, default_qty_value = 1000, commission_type = "percent", commission_value = 0.1, calc_on_every_tick=false, process_orders_on_close=true)
    
longCondition  = crossover(wt1, wt2)
shortCondition = crossunder(wt1, wt2)

strategy.entry(id="Long Entry", comment="buy", long=true, when=longCondition and window())
strategy.close("Long Entry", comment="sell", when=shortCondition and window())      

//strategy.entry(id="Short Entry", long=false, when=shortCondition)

अधिक