क्रिप्टो ट्रेन्ड रिवर्सल स्ट्रैटेजी PIVOT स्विंग हाई और लो पॉइंट्स पर आधारित

लेखक:चाओझांग, दिनांकः 2024-01-12 14:13:36
टैगः

img

अवलोकन

यह रणनीति PIVOT स्विंग उच्च/निम्न बिंदुओं और ब्रेकआउट संकेतों के आधार पर क्रिप्टो परिसंपत्तियों में रुझान उलटों की पहचान करती है। यह ब्रेकआउट रिवर्स रणनीति श्रेणी से संबंधित है। यह रणनीति पहले हाल के उच्चतम और निम्नतम मूल्य बिंदुओं को PIVOT स्तरों के रूप में गणना करती है, फिर पता लगाती है कि क्या कीमत इन प्रमुख स्तरों को तोड़ती है, प्रमुख रुझान परिवर्तनों का संकेत देती है।

रणनीति कैसे काम करती है

  1. PIVOT उच्च/निम्न बिंदुओं की गणना करें

    ta.pivothigh (() और ta.pivotlow (() का उपयोग एक कस्टम बार लुकबैक अवधि के दौरान उच्चतम उच्च और निम्नतम कम कीमतों को खोजने के लिए PIVOT बिंदुओं को प्लॉट करने के लिए करता है।

  2. ब्रेकआउट सिग्नल की पहचान करें

    यदि मूल्य पीआईवीओटी निम्न बिंदु से ऊपर टूट जाता है, या पीआईवीओटी उच्च बिंदु से नीचे टूट जाता है, तो रणनीति इसे प्रवृत्ति उलट संकेत मानती है।

  3. फ़िल्टर शर्तें सेट करें

    अर्थपूर्ण दूरी से पीआईवीओटी स्तरों को तोड़ने के लिए मूल्य की आवश्यकता होती है, और whipsaws से बचने के लिए समापन मूल्य 150 बार समापन कीमतों को पार करता है।

  4. प्रवेश और निकास

    लंबी स्थिति पर ट्रिगर खरीद संकेत, बाहर निकलने की स्थिति पर लंबी स्थिति बंद करें. इसी तरह के शॉर्ट सेटअप नियमों के लिए.

लाभ

  1. पीआईवीओटी बिंदु प्रमुख रुझान शिफ्ट के प्रति संवेदनशील हैं
  2. फ़िल्टर के साथ समेकन के रुझानों में झटके से बचा जाता है
  3. स्विंग हाई/लो ब्रेकआउट के साथ जल्दी रिवर्स को कैप्चर करता है

जोखिम

  1. बड़े चक्रों से रणनीति खराब हो सकती है
  2. PIVOT बिंदुओं और फिल्टर प्रत्येक संपत्ति के लिए ट्यूनिंग की जरूरत है
  3. विनिमय शुल्क परिणामों को प्रभावित करता है, लगभग शून्य शुल्क संरचना की आवश्यकता होती है

बढ़ोतरी के अवसर

  1. विभिन्न PIVOT लुकबैक अवधि का परीक्षण करें
  2. प्रति व्यापार नियंत्रण हानि में चलती स्टॉप हानि जोड़ें
  3. फिल्टर के लिए अन्य संकेतकों के साथ संयोजन

निष्कर्ष

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


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nkrastins95

//@version=5
strategy("Swing Hi Lo", overlay=true, margin_long=100, margin_short=100)

//-----------------------------------------------------------------------------------------------------------------------//

tf = input.timeframe(title="Timeframe", defval="")

gr="LENGTH LEFT / RIGHT"
leftLenH = input.int(title="Pivot High", defval=10, minval=1, inline="Pivot High",group=gr)
rightLenH = input.int(title="/", defval=10, minval=1, inline="Pivot High",group=gr)
colorH = input(title="", defval=color.red, inline="Pivot High",group=gr)

leftLenL = input.int(title="Pivot Low", defval=10, minval=1, inline="Pivot Low", group=gr)
rightLenL = input.int(title="/", defval=10, minval=1, inline="Pivot Low",group=gr)
colorL = input(title="", defval=color.blue, inline="Pivot Low",group=gr)

//-----------------------------------------------------------------------------------------------------------------------//

pivotHigh(ll, rl) =>
    maxLen = 1000
    float ph = ta.pivothigh(ll, rl)
    int offset = 0
    while offset < maxLen
        if not na(ph[offset])
            break 
        offset := offset + 1
    ph[offset]

pivotLow(ll, rl) =>
    maxLen = 1000
    float pl = ta.pivotlow(ll, rl)
    int offset = 0
    while offset < maxLen
        if not na(pl[offset])
            break 
        offset := offset + 1
    pl[offset]


//-----------------------------------------------------------------------------------------------------------------------//

ph = request.security(syminfo.tickerid, tf, pivotHigh(leftLenH, rightLenH), barmerge.gaps_off, barmerge.lookahead_on)
pl = request.security(syminfo.tickerid, tf, pivotLow(leftLenL, rightLenL), barmerge.gaps_off, barmerge.lookahead_on)

drawLabel(_offset, _pivot, _style, _color) =>
    if not na(_pivot)
        label.new(bar_index[_offset], _pivot, str.tostring(_pivot, format.mintick), style=_style, color=_color, textcolor=#131722)

//-----------------------------------------------------------------------------------------------------------------------//

VWAP = ta.vwap(ohlc4)

longcondition = ta.crossunder(close,pl) and close > close[150]
exitcondition = close > ph

shortcondition = ta.crossover(close,ph) and close < close[150]
covercondition = close < pl

strategy.entry("long", strategy.long, when = longcondition)
strategy.close("long", when = exitcondition)

strategy.entry("Short", strategy.short, when = shortcondition)
strategy.close("Short", when = covercondition)

अधिक