
इस लेख में लैरी विलियम्स के तीन चक्रों की गतिशील औसत रेखा पर आधारित एक ट्रेडिंग रणनीति का परिचय दिया गया है। यह रणनीति दो सूचकांकों के चलती औसत (ईएमए) का उपयोग करके मूल्य प्रवृत्ति को पकड़ती है, और जब तीन लगातार के-लाइन समापन मूल्य ईएमए को तोड़ते हैं, तो ट्रेडिंग सिग्नल उत्पन्न करते हैं। रणनीति के पैरामीटर को विभिन्न बाजारों और समय के लिए समायोजित किया जा सकता है।
लैरी विलियम्स त्रि-चक्र गतिशील रेखीय ट्रेडिंग रणनीति एक द्वि-ईएमए और लगातार के-लाइन दिशा पर आधारित प्रवृत्ति ट्रैकिंग रणनीति है, जो पैरामीटर अनुकूलन के माध्यम से विभिन्न बाजारों के लिए अनुकूल है। हालांकि, रणनीति स्वयं अपेक्षाकृत सरल है, जो अस्थिर बाजार में खराब प्रदर्शन करती है, और इसमें वेंडर नियंत्रण उपायों की कमी है, और आगे अनुकूलन और सुधार की आवश्यकता है। रणनीति के फायदे और कमियों को ध्यान में रखते हुए, यह रणनीति स्पष्ट रूप से प्रवृत्त बाजारों में उपयोग करने के लिए अधिक उपयुक्त है, और स्थिति प्रबंधन और जोखिम नियंत्रण उपायों के साथ मिलकर समग्र प्रदर्शन और स्थिरता में सुधार करती है।
/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Larry Williams 3 Periodos Editável de MarcosJr", overlay=true, process_orders_on_close=true)
// Parametrização do período do EMA
emaPeriodHighs = input.int(title="Highs Period", defval=3, minval=1, maxval=9999)
emaPeriodLows = input.int(title="Lows Period", defval=3, minval=1, maxval=9999)
// Parametrização da data de início e fim do período a ser coletado
startYear = input.int(title="Start Year", defval=2020)
startMonth = input.int(title="Start Month", defval=1, minval=1, maxval=12)
startDay = input.int(title="Start Day", defval=1, minval=1, maxval=31)
endYear = input.int(title="End Year", defval=2020)
endMonth = input.int(title="End Month", defval=12, minval=1, maxval=12)
endDay = input.int(title="End Day", defval=31, minval=1, maxval=31)
// Convertendo data de início e fim para timestamp
startDate = timestamp(startYear, startMonth, startDay, 00, 00)
endDate = timestamp(endYear, endMonth, endDay, 23, 59)
// EMA
emaH = ta.ema(high, emaPeriodHighs)
emaL = ta.ema(low, emaPeriodLows)
// PLOT:
// Desenha as linhas EMA no gráfico
plot(emaH, color=color.green, linewidth=2)
plot(emaL, color=color.red, linewidth=2)
// Condições
inDateRange = true
// Verifica se houve mais de três candles consecutivos do mesmo sentido
checkThreeConsecutiveCandles = (close[0] > close[1] and close[1] > close[2] and close[2] > close[3]) or (close[0] < close[1] and close[1] < close[2] and close[2] < close[3])
if(close < emaL and inDateRange and checkThreeConsecutiveCandles and barstate.isconfirmed)
strategy.entry("Long", strategy.long, comment="Long", when=strategy.position_size == 0)
if(close > emaH and inDateRange and checkThreeConsecutiveCandles and barstate.isconfirmed)
strategy.close("Long", comment="Close Long")
// Fechar a operação no fechamento do pregão
if(strategy.position_size > 0 and na(time_close[0]))
strategy.close("Long", comment="Close Long")