
स्टोकेस्टिक ऑस्सिलेटर और मूविंग एवरेज के संयोजन के साथ यह रणनीति बाजार में ओवरबॉय और ओवरसोल की स्थिति का आकलन करती है और मूविंग एवरेज की प्रवृत्ति की दिशा के आधार पर ट्रेडिंग की दिशा निर्धारित करती है। जब रैंडम ऑस्सिलेटर ओवरबॉय क्षेत्र में ऊपर की ओर और मूविंग एवरेज ऊपर की ओर होता है, तो रणनीति एक बहुस्तरीय स्थिति खोलती है; जब रैंडम ऑस्सिलेटर ओवरबॉय क्षेत्र में नीचे की ओर होता है और मूविंग एवरेज नीचे की ओर होता है, तो रणनीति एक खाली स्थिति खोलती है। साथ ही, रणनीति जोखिम को नियंत्रित करने के लिए स्टॉप लॉस सेट करती है।
इस रणनीति के संयोजन में यादृच्छिक आघात संकेतक और चलती औसत है, जबकि बाजार में ओवरबॉय ओवरसोल स्थिति को पकड़ने के लिए, चलती औसत का उपयोग करने के लिए प्रवृत्ति की दिशा के लिए व्यापार संकेतों को फ़िल्टर करने के लिए, और सेट रोक जोखिम को नियंत्रित करने के लिए. रणनीति की अवधारणा स्पष्ट है, समझने के लिए आसान है और लागू. हालांकि, रणनीति भी कुछ सीमाएं हैं, जैसे कि सूचकांक विलंबता, बार-बार व्यापार आदि. अन्य तकनीकी संकेतकों की शुरूआत, रोकथाम के लिए अनुकूलन विधि, गतिशील समायोजन पैरामीटर और स्थिति प्रबंधन जैसे तरीकों से, रणनीति के प्रदर्शन और स्थिरता को और बढ़ाया जा सकता है.
/*backtest
start: 2024-04-22 00:00:00
end: 2024-04-29 00:00:00
period: 1m
basePeriod: 1m
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/
// © Pablo_2uc
//@version=5
strategy("Estrategia Stoch + MA c/ SL", overlay=true)
// Parámetros del Estocástico
length = input.int(14, title="Longitud Estocástico")
smoothK = input.int(3, title="Suavizado K")
smoothD = input.int(3, title="Suavizado D")
oversold = input.int(20, title="Sobreventa")
overbought = input.int(80, title="Sobrecompra")
// Parámetros de la Media Móvil
maLength = input.int(9, title="Longitud MA")
maSource = input(close, title="Fuente MA")
// Capital inicial
capital = 500
// Tamaño de posición (10% del capital)
positionSize = 1
// Stop Loss (2% del precio de entrada)
stopLossPercent = input.int(2, title="Stop Loss (%)") / 100
// Cálculo del Estocástico
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)
// Cálculo de la Media Móvil
ma = ta.sma(maSource, maLength)
// Condiciones de entrada en largo y corto
longCondition = ta.crossunder(k, oversold) and ma > ma[1]
shortCondition = ta.crossover(k, overbought) and ma < ma[1]
// Condiciones de salida
exitLongCondition = ta.crossover(k, ma) and ma < ma[1]
exitShortCondition = ta.crossunder(k, ma) and ma > ma[1]
// Estrategia
if (longCondition)
strategy.entry("Long", strategy.long, qty=positionSize)
strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent))
if (shortCondition)
strategy.entry("Short", strategy.short, qty=positionSize)
strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent))
// Cierre de posiciones
if (exitLongCondition)
strategy.close("Long")
if (exitShortCondition)
strategy.close("Short")