मल्टी टेक प्रॉफिट और स्टॉप लॉस वेवट्रेंड ट्रेंड रणनीति का पालन करना

लेखक:चाओझांग, दिनांक: 2023-12-01 18:09:12
टैगः

img

अवलोकन

यह रणनीति LazyBear की मूल WaveTrend रणनीति पर आधारित है, जिसमें सेकेंडरी स्टॉप लॉस, मल्टीपल टेक प्रॉफिट लेवल और हाई टाइमफ्रेम ईएमए फिल्टर जैसी अतिरिक्त विशेषताएं हैं। यह ट्रेडिंग के बाद स्वचालित ट्रेंड के लिए ईएमए फिल्टर और स्टॉप लॉस/टेक प्रॉफिट मैनेजमेंट के साथ संयुक्त ट्रेडिंग सिग्नल उत्पन्न करने के लिए वेवट्रेंड इंडिकेटर का उपयोग करता है।

रणनीति तर्क

इस रणनीति का मुख्य सूचक वेवट्रेंड है, जिसमें तीन घटक शामिल हैंः

  1. एपी: औसत मूल्य = (उच्चतम + निम्नतम + बंद) / 3

  2. ईएसएः पीए के एन-पीरियड ईएमए

  3. सीआईः (एपी - ईएसए) / (एपी - ईएसए) के पूर्ण मूल्य का (0.015 * एन 1-अवधि ईएमए)

  4. TCI: CI का n2-period EMA, जिसे WaveTrend Line 1 (WT1) भी कहा जाता है

  5. WT2: WT1 का 4-अवधि SMA

जब WT1 WT2 (सुनहरा क्रॉस) से ऊपर जाता है तो एक लंबी स्थिति खोली जाती है और जब WT1 WT2 (मृत्यु क्रॉस) से नीचे जाता है तो बंद हो जाती है।

इसके अतिरिक्त, झूठे संकेतों से बचने के लिए एक उच्च समय सीमा ईएमए फ़िल्टर लागू किया गया है, ताकि लंबी ट्रेडें केवल तब ली जाएं जब कीमत ईएमए से ऊपर और छोटी ट्रेड ईएमए से नीचे हो।

लाभ

  1. मैन्युअल निर्णय के बिना स्वचालित रूप से वेवट्रेंड का उपयोग करके रुझानों का पालन करें

  2. द्वितीयक स्टॉप लॉस प्रभावी रूप से एकल व्यापार हानि को सीमित करता है

  3. लाभ लेने के कई स्तर लाभ को अधिकतम करते हैं

  4. ईएमए फिल्टर झूठे संकेतों से बचकर जीत दर में सुधार करता है

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

  1. रुझान उलटने का पता लगाने में विफल रहता है, नुकसान का कारण बन सकता है

  2. खराब पैरामीटर ट्यूनिंग से ओवर ट्रेडिंग होती है

  3. अनुकूलन के लिए विभिन्न पैरामीटर सेट का परीक्षण किया जा सकता है

  4. उलट पहचान के लिए अतिरिक्त संकेतकों पर विचार करें

निष्कर्ष

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


/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 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/
// © undacovacobra

//@version=4
strategy("WaveTrend Strategy [LazyBear] with Secondary Stop Loss", overlay=true)

// Input parameters
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")
useEmaFilter = input(false, "Use EMA Filter")
emaLength = input(50, "EMA Length")
emaTimeFrame = input("60", "EMA Time Frame")
tradeMode = input("Both", "Trade Mode", options=["Long Only", "Short Only", "Both"])
useSecondarySL = input(false, "Use Secondary Stop Loss")
slPercentage = input(5.0, "Stop Loss Percentage (%)")

// WaveTrend Indicator Calculations
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)

// EMA Calculation with Selected Time Frame
getEma(timeFrame) =>
    security(syminfo.tickerid, timeFrame, ema(close, emaLength))

emaFilter = getEma(emaTimeFrame)

// Secondary Stop Loss Calculation
longStopPrice = strategy.position_avg_price * (1 - slPercentage / 100)
shortStopPrice = strategy.position_avg_price * (1 + slPercentage / 100)

// Long Entry and Exit Conditions with EMA Filter and Trade Mode
longEntry = crossover(wt1, wt2) and wt2 < osLevel1 and (not useEmaFilter or close > emaFilter) and (tradeMode == "Long Only" or tradeMode == "Both")
if (longEntry)
    strategy.entry("Long", strategy.long)
longExit = crossunder(wt1, wt2) and wt2 > obLevel1
if (longExit)
    strategy.close("Long")
if (useSecondarySL and strategy.position_size > 0 and low < longStopPrice)
    strategy.close("Long", comment="SL Hit")

// Short Entry and Exit Conditions with EMA Filter and Trade Mode
shortEntry = crossunder(wt1, wt2) and wt2 > obLevel1 and (not useEmaFilter or close < emaFilter) and (tradeMode == "Short Only" or tradeMode == "Both")
if (shortEntry)
    strategy.entry("Short", strategy.short)
shortExit = crossover(wt1, wt2) and wt2 < osLevel1
if (shortExit)
    strategy.close("Short")
if (useSecondarySL and strategy.position_size < 0 and high > shortStopPrice)
    strategy.close("Short", comment="SL Hit")

// Plotting
plot(0, color=color.gray)
plot(obLevel1, color=color.red)
plot(osLevel1, color=color.green)
plot(obLevel2, color=color.red, style=plot.style_cross)
plot(osLevel2, color=color.green, style=plot.style_cross)
plot(wt1, color=color.green)
plot(wt2, color=color.red, style=plot.style_cross)
plot(wt1-wt2, color=color.blue, style=plot.style_area, transp=80)
plot(emaFilter, color=color.blue)



अधिक