
यह रणनीति आरएसआई संकेतक और औसत रिटर्न सिद्धांत पर आधारित एक मात्रात्मक ट्रेडिंग प्रणाली है। यह बाजार में ओवरबॉय और ओवरसोल स्थितियों की पहचान करके बाजार में पलटाव के अवसरों को पकड़ने के लिए है, कीमतों के उतार-चढ़ाव की सीमा और समापन मूल्य की स्थिति के साथ। रणनीति का मुख्य विचार बाजार में चरम स्थिति के बाद वापसी के अवसरों की तलाश करना है, सख्त प्रवेश शर्तों और गतिशील स्टॉपलॉस की स्थापना करके जोखिम का प्रबंधन करना है।
रणनीति व्यापार संकेतों को निर्धारित करने के लिए कई फ़िल्टरिंग तंत्रों का उपयोग करती हैः सबसे पहले, यह आवश्यक है कि कीमतें 10 चक्रों के नए निचले स्तर का निर्माण करें, जो बाजार को ओवरसोल्ड की स्थिति में इंगित करती हैं; इसके बाद, उस दिन के मूल्य में उतार-चढ़ाव की सीमा लगभग 10 ट्रेडिंग दिनों के लिए अधिकतम है, जो बाजार में उतार-चढ़ाव को बढ़ाता है; और अंत में, यह आकलन करके कि क्या समापन मूल्य उस दिन के मूल्य क्षेत्र के ऊपरी चौथाई में स्थित है, संभावित रिवर्स की पुष्टि करने के लिए। सिग्नल प्रविष्टि एक ब्रेकआउट विधि का उपयोग करती है, जो 2 ट्रेडिंग दिनों के भीतर स्थिति को पूरा करती है, और यदि कीमत पिछले उच्च स्तर को तोड़ती है, तो स्थिति को कई बार करती है।
यह एक पूरी तरह से संरचित, तर्कसंगत और स्पष्ट औसत वापसी रणनीति है। कई शर्तों के फ़िल्टरिंग और गतिशील स्टॉप लॉस मैनेजमेंट के माध्यम से, रणनीति जोखिम को नियंत्रित करते हुए, बाजार के ओवरबॉलिंग रिबाउन्ड अवसरों को प्रभावी ढंग से पकड़ने में सक्षम है। हालांकि कुछ सीमाएं हैं, लेकिन उचित अनुकूलन और सुधार के माध्यम से, रणनीति के समग्र प्रदर्शन में सुधार की गुंजाइश है। यह सलाह दी जाती है कि निवेशकों को वास्तविक बाजार में लागू होने पर, विशिष्ट बाजार विशेषताओं और अपनी जोखिम सहनशीलता के आधार पर पैरामीटर को समायोजित करने की आवश्यकता होती है।
/*backtest
start: 2024-11-04 00:00:00
end: 2024-12-04 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Larry Conners SMTP Strategy", overlay=true, margin_long=100, margin_short=100)
// --- Inputs ---
// Corrected the input type declaration by removing 'type='
tickSize = input.float(0.01, title="Tick Size (e.g., 1/8 for stocks)")
// --- Calculate conditions ---
// 1. Today the market must make a 10-period low
low10 = ta.lowest(low, 10)
is10PeriodLow = low == low10
// 2. Today's range must be the largest of the past 10 bars
rangeToday = high - low
maxRange10 = ta.highest(high - low, 10)
isLargestRange = rangeToday == maxRange10
// 3. Today's close must be in the top 25 percent of today's range
rangePercent = (close - low) / rangeToday
isCloseInTop25 = rangePercent >= 0.75
// Combine all buy conditions
buyCondition = is10PeriodLow and isLargestRange and isCloseInTop25
// --- Buy Entry (on the next day) ---
var float buyPrice = na
var bool orderPending = false
var float stopLoss = na // Initialize stopLoss at the top level to avoid 'Undeclared identifier' errors
if (buyCondition and strategy.position_size == 0)
buyPrice := high + tickSize
stopLoss := low
orderPending := true
// Condition to place buy order the next day or the day after
if orderPending and ta.barssince(buyCondition) <= 2
strategy.entry("Buy", strategy.long, stop=buyPrice)
orderPending := false
// --- Stop-Loss and Trailing Stop ---
if (strategy.position_size > 0)
stopLoss := math.max(stopLoss, low) // Move stop to higher lows (manual trailing)
strategy.exit("Exit", from_entry="Buy", stop=stopLoss)
// --- Plotting ---
// Highlight buy conditions
bgcolor(buyCondition ? color.new(color.green, 50) : na)
//plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy Setup")
// Plot Stop-Loss level for visualization
//plot(strategy.position_size > 0 ? stopLoss : na, color=color.red, linewidth=2, title="Stop-Loss Level")