लगातार कैंडलस्टिक रिवर्स रणनीति

लेखक:चाओझांग, दिनांक: 2023-10-08 13:56:39
टैगः

अवलोकन

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

रणनीति तर्क

इस रणनीति के मूल तर्क में निम्नलिखित शामिल हैंः

  1. जांचें कि क्या कैंडलस्टिक शरीर की ऊंचाई न्यूनतम सीमा से अधिक है ताकि महत्वहीन तेजी / गिरावट की चाल को फ़िल्टर किया जा सके।

  2. यह निर्धारित करें कि पिछले दो मोमबत्तियों का रंग समान है या नहीं, जो संभावित अल्पकालिक उलट का संकेत दे सकता है।

  3. यदि वर्तमान कैंडलस्टिक का रंग पिछले दो से अलग है, तो एक ट्रेडिंग सिग्नल उत्पन्न होता है। यानी दो मंदी कैंडलस्टिक और एक तेजी के बाद लंबा जाना, दो मंदी कैंडलस्टिक और एक मंदी के बाद छोटा जाना।

  4. व्यापार में प्रवेश करने के बाद, आरवीआई लाइन और सिग्नल लाइन के क्रॉसओवर का उपयोग निकास पदों को निर्धारित करने के लिए किया जाता है। आरवीआई संकेतक अल्पकालिक उलटफेर की पहचान कर सकता है।

  5. संक्षेप में, यह रणनीति एक अल्पकालिक औसत प्रतिगमन प्रणाली बनाने के लिए कैंडलस्टिक पैटर्न और आरवीआई संकेतक को जोड़ती है, जो असामान्य अल्पकालिक मूल्य व्यवहारों से लाभदायक उलटफेर को पकड़ती है।

लाभ विश्लेषण

इस रणनीति के मुख्य लाभों में निम्नलिखित शामिल हैंः

  1. अल्पावधि मूल्य विसंगतियों को पकड़ना। एक ही रंग के लगातार मोमबत्तियाँ अक्सर विसंगतियों को संकेत देती हैं जो उलट के लिए तैयार हैं।

  2. आरवीआई संकेतक अधिक स्थिर संकेतों के लिए कैंडलस्टिक पैटर्न को पूरक करते हुए उलट निर्धारण में सहायता करता है।

  3. अल्पकालिक व्यापार के लिए अपेक्षाकृत उच्च व्यापारिक आवृत्ति। लगातार एक ही रंग की मोमबत्तियां अक्सर होती हैं, जिससे व्यापार के प्रचुर अवसर उपलब्ध होते हैं।

  4. व्यापार के निश्चित आकार और स्टॉप लॉस/लाभ लेने से नियंत्रित जोखिम।

  5. सरल और स्पष्ट तर्क जो लाइव ट्रेडिंग के लिए समझने और लागू करने में आसान है।

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

ध्यान देने योग्य कुछ जोखिमः

  1. जब संकेत विफल हो सकते हैं तो मजबूत रुझानों के दौरान अल्पकालिक उलटफेर की गारंटी नहीं है।

  2. आरवीआई विशेष बाजार स्थितियों में गलत संकेत उत्पन्न कर सकता है।

  3. अपर्याप्त स्टॉप लॉस सेटिंग से बड़े नुकसान हो सकते हैं।

  4. लगातार मोमबत्तियों के मानदंड बहुत कठोर है. एन अवधि के भीतर एक ही रंग की मोमबत्तियों के आवश्यक प्रतिशत के लिए अनुकूलन पर विचार करें.

  5. निश्चित व्यापार आकार समग्र स्थिति जोखिम को नियंत्रित नहीं कर सकता है। बड़े आकार जोखिम खाता ब्लोअप।

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

रणनीति को और अधिक अनुकूलित करने के कुछ तरीके:

  1. स्थिर अवधियों के बजाय सांख्यिकी का उपयोग करके लगातार कैंडलस्टिक तर्क को अनुकूलित करें।

  2. सर्वोत्तम संयोजन खोजने के लिए आरवीआई मापदंडों का अनुकूलन करें.

  3. बाजार की अस्थिरता के आधार पर स्टॉप लॉस जोड़ें।

  4. खाता उपयोग के आधार पर स्थिति आकार जोड़ें.

  5. सिस्टम स्थिरता में सुधार के लिए चैनल, रुझान जैसे अधिक फ़िल्टर जोड़ें।

  6. विभिन्न उत्पादों के लिए पैरामीटर ट्यूनिंग।

  7. गतिशील रूप से मापदंडों का अनुकूलन करने के लिए ऐतिहासिक डेटा पर मशीन लर्निंग।

सारांश

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


/*backtest
start: 2022-10-07 00:00:00
end: 2023-10-07 00:00:00
period: 3d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//This is part of a series of strategies developed automatically by a online software. I cannot share the site url, which is not related to me in any way, because it is against the TV reules.
//
//This strategy was optimized for GBPUSD, timeframe 1D, fixed lots 0.1, initial balance 1000€
//LOGIC:
//- LONG ENTRY when previous candle is bear
//- LONG EXIT: RVI > signal line
//- SHORT ENTRY when previous candle is bull
//- SHORT EXIT: RVI <  signal line
//
//NOTE: I considered the open of actual candle instead of close otherwise there will be a back shift of 1 candle in pine script
//
//Take profit = no
//Stop loss = no

// strategy("Expert studio strategy 1 - GBPUSD", overlay=false, precision=6, initial_capital=1000,calc_on_every_tick=true, pyramiding=0, default_qty_type=strategy.fixed, default_qty_value=10000, currency=currency.EUR)

//INPUTS
src = input(close, "source")
min_body_height = input(42, "Minimum body height", type=input.float)
//bars_back=input(2, "Consecutive bars of same color")
rvi_period = input(55, "RVI period")

//CALCULATIONS_____________________________
//candle color
body_height = abs(open - close) / syminfo.mintick
body_color = open > close ? color.red : color.green

//da migliorare for i=0 to bars_back-1

//RVI -------- thanks to hecate
p = rvi_period

CO = close - open
HL = high - low

value1 = (CO + 2 * CO[1] + 2 * CO[2] + CO[3]) / 6
value2 = (HL + 2 * HL[1] + 2 * HL[2] + HL[3]) / 6

num = sum(value1, p)
denom = sum(value2, p)

RVI = denom != 0 ? num / denom : 0

RVIsig = (RVI + 2 * RVI[1] + 2 * RVI[2] + RVI[3]) / 6

plot(RVI, color=color.green, style=plot.style_line, linewidth=1)
plot(RVIsig, color=color.red, style=plot.style_line, linewidth=1)

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

longCondition = body_height[1] >= min_body_height and body_color[1] == color.red and 
   body_height[0] >= min_body_height and body_color[0] == color.red and 
   RVIsig > RVI
exitLong = RVI > RVIsig

shortCondition = body_height[1] >= min_body_height and body_color[1] == color.green and 
   body_height[0] >= min_body_height and body_color[0] == color.green and 
   RVIsig < RVI
exitShort = RVI < RVIsig

if longCondition and strategy.opentrades == 0
    strategy.entry("Long", strategy.long)

strategy.close("Long", when=exitLong)

if shortCondition and strategy.opentrades == 0
    strategy.entry("Short", strategy.short)

strategy.close("Short", when=exitShort)

// === Backtesting Dates === thanks to Trost

testPeriodSwitch = input(false, "Custom Backtesting Dates")
testStartYear = input(2011, "Backtest Start Year")
testStartMonth = input(10, "Backtest Start Month")
testStartDay = input(7, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, 0)
testStopYear = input(2018, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testStopHour = input(23, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, testStopHour, 0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
testPeriod_1 = testPeriod()
isPeriod = testPeriodSwitch == true ? testPeriod_1 : true
// === /END

if not isPeriod
    strategy.cancel_all()
    strategy.close_all()





अधिक