
इस रणनीति का मुख्य विचार यह है कि यह पता लगाया जाए कि क्या कीमतें एक निर्दिष्ट अवधि के भीतर न्यूनतम मूल्य को तोड़ती हैं, और यदि यह अधिक है, तो कीमतों के पुनरुत्थान की प्रतीक्षा करें। यह एक प्रवृत्ति-अनुसरण रणनीति है।
यह रणनीति Pine स्क्रिप्ट के ta.lowest विधि को कॉल करके निर्दिष्ट अवधि के भीतर न्यूनतम मूल्य lowestLow प्राप्त करती है और पिछली अवधि के न्यूनतम मूल्य prevLow के साथ तुलना करती है।
यदि नवीनतम चक्र के निम्नतम मूल्य lowestLow पिछले चक्र के निम्नतम मूल्य prevLow से कम है, तो एक अधिक संकेत दिया जाता है। अधिक करने के बाद, निर्दिष्ट चक्र के उच्चतम मूल्य highestHigh के साथ तुलना करके, यदि नवीनतम चक्र के उच्चतम मूल्य पिछले चक्र के उच्चतम मूल्य से अधिक है, तो स्थिति को समतल किया जाता है।
यह रणनीति ट्रिगर की शर्तों को चुनने की अनुमति देती है, जो कि न्यूनतम मूल्य को लगातार 1, 2, 3 या 4 पूर्व न्यूनतम मूल्य को तोड़ने की आवश्यकता होती है, जिससे व्यापार की आवृत्ति को नियंत्रित किया जा सके।
इसके अलावा, इस रणनीति में चार्ट पर न्यूनतम मूल्य औसत (lowestLow) और उच्चतम मूल्य औसत (highestHigh) को भी चित्रित किया गया है, ताकि रुझानों में परिवर्तन को देखा जा सके।
यह रणनीति नए निम्न स्तर को तोड़ने के बाद एक पलटाव को पकड़ती है, जिसमें उच्च जीत की दर होती है।
ट्रेडों की आवृत्ति को नियंत्रित करने के लिए न्यूनतम मूल्य को तोड़ने की संख्या का चयन करने की अनुमति देता है।
औसत रेखा को रेखांकित करने से प्रवृत्ति में बदलाव के बिंदुओं को समझने में मदद मिलती है।
रणनीति तर्क सरल और स्पष्ट है और इसे लागू करना आसान है।
अनुकूलन परीक्षण के लिए विभिन्न शेयरों और समय चक्रों को कॉन्फ़िगर किया जा सकता है
ब्रेकआउट का मतलब है कि प्रवृत्ति को बदलने का कोई बिंदु नहीं है और इससे नुकसान हो सकता है।
विभिन्न मापदंडों के संयोजन के लिए अनुकूलित विन्यास का परीक्षण करने की आवश्यकता है, अन्यथा लेनदेन की आवृत्ति बहुत अधिक या बहुत कम हो सकती है।
विभिन्न शेयरों के लिए पैरामीटर को समायोजित करने की आवश्यकता है, यांत्रिक अनुप्रयोगों के लिए उपयुक्त नहीं है।
अपर्याप्त प्रतिक्रिया समय चक्र से रणनीति अति-फिट हो सकती है।
एक ब्रेकआउट के बाद, कीमतें कम हो सकती हैं और जोखिम को नियंत्रित करने के लिए स्टॉप लॉस की आवश्यकता होती है।
एकल हानि को नियंत्रित करने के लिए, मोबाइल स्टॉप, ट्रैक स्टॉप आदि जैसे स्टॉप-लॉस मैकेनिज्म जोड़ें।
ब्रेक की संख्या का अनुकूलन करें और सिग्नल गुणवत्ता के साथ लेनदेन की आवृत्ति को संतुलित करें।
विभिन्न स्टॉक और समय चक्रों के लिए पैरामीटर अनुकूलन का परीक्षण करना।
यह एक ऐसा समय है जब बाजारों में अस्थिरता के बीच अधिक बार लेनदेन करने से बचने के लिए फ़िल्टरिंग की आवश्यकता होती है।
ट्रेडिंग के लिए ट्रेड इंडिकेटर को शामिल करने पर विचार करें, विपक्षी ट्रेडिंग से बचें।
अलग-अलग एक्जिट सिग्नल का परीक्षण करना।
यह रणनीति सबसे कम कीमतों के ब्रेकडाउन की निगरानी करके पलटाव के अवसरों को पकड़ने के लिए है, जो कि एक विशिष्ट ब्रेकडाउन वापसी रणनीति है। इसके फायदे सरल और समझने में आसान हैं, ट्रेडिंग आवृत्ति नियंत्रित है, और इसे कई प्रकार के शेयरों में लागू किया जा सकता है। लेकिन कुछ झूठे ब्रेकडाउन जोखिम भी हैं, जिन्हें सहायक शर्तों को जोड़ने के लिए फ़िल्टरिंग अनुकूलन की आवश्यकता है, जबकि जोखिम को नियंत्रित करना बहुत आवश्यक है। व्यापक परीक्षण और अनुकूलन के माध्यम से, यह रणनीति एक स्थिर और विश्वसनीय मात्रात्मक ट्रेडिंग प्रणाली बन सकती है।
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 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/
// © merovinh
//@version=5
strategy(title="Merovinh - Mean Reversion Lowest low",
overlay = true,
default_qty_type = strategy.percent_of_equity,
initial_capital = 10000,
default_qty_value = 10,
commission_type = strategy.commission.percent,
slippage = 1,
commission_value = 0.04)
GR_TIME = 'Time Period'
bars = input(9, title = "Minimum number of bars", tooltip = "The minimum number of bars before updating lowest low / highest high")
numberOfLows = input.string(defval='One', title='Number of broken lows', options=['One', 'Two', 'Three', 'Four'])
//Period
var prevLow = .0
var prevHigh = .0
var prevLow2 = .0
var prevLow3 = .0
var prevLow4 = .0
truetime = true
highestHigh = ta.highest(high, bars)
lowestLow = ta.lowest(low, bars)
if numberOfLows == 'One'
if truetime and prevLow > 0 and lowestLow < prevLow
strategy.entry('long', strategy.long)
if numberOfLows == 'Two'
if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2
strategy.entry('long', strategy.long)
if numberOfLows == 'Three'
if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 and prevLow2 < prevLow3
strategy.entry('long', strategy.long)
if numberOfLows == 'Four'
if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 and prevLow2 < prevLow3 and prevLow3 < prevLow4
strategy.entry('long', strategy.long)
if truetime and prevHigh > 0 and highestHigh > prevHigh
strategy.close('long')
if prevLow != lowestLow
prevLow4 := prevLow3
prevLow3 := prevLow2
prevLow2 := prevLow
prevLow := lowestLow
prevHigh := highestHigh
plot(lowestLow, color=color.green, linewidth=1, title="Lowest Low Line")
plot(highestHigh, color=color.green, linewidth=1, title="Highest High Line")