ठोस और विश्वसनीय एसएमए मूविंग एवरेज स्थिति रणनीति


निर्माण तिथि: 2023-12-18 17:44:16 अंत में संशोधित करें: 2023-12-18 17:44:16
कॉपी: 0 क्लिक्स: 627
1
ध्यान केंद्रित करना
1621
समर्थक

ठोस और विश्वसनीय एसएमए मूविंग एवरेज स्थिति रणनीति

अवलोकन

यह रणनीति एक सरल स्थिति रखने की रणनीति है जो SMA औसत रेखा पर आधारित है। जब दीर्घकालिक SMA लाइन पर लंबी अवधि की SMA लाइन होती है, तो अधिक स्थिति खोलें; जब दीर्घकालिक SMA लाइन पर लंबी अवधि की SMA लाइन होती है, तो कम स्थिति।

रणनीति सिद्धांत

यह रणनीति दो SMA औसत रेखाओं का उपयोग करती है, एक अल्पकालिक 20 दिन की रेखा और एक दीर्घकालिक 50 दिन की रेखा। अल्पकालिक रेखा मूल्य परिवर्तन के रुझान को अधिक तेज़ी से पकड़ती है, और दीर्घकालिक रेखा अल्पकालिक शोर को फ़िल्टर करती है। जब अल्पकालिक तेजी से वृद्धि लंबी अवधि की औसत रेखा से अधिक होती है, तो यह दर्शाता है कि बाजार में लंबी अवधि की वृद्धि शुरू हो सकती है, और यह अधिक स्थिति खोलने का समय है।

कुल मिलाकर, यह रणनीति SMA औसत की वक्र विशेषताओं का उपयोग करती है, दो समय आयामों पर मूल्य आंदोलन के रुझान का आकलन करती है और अधिक स्थिर होल्डिंग विधि का लाभ उठाती है।

श्रेष्ठता विश्लेषण

इस रणनीति के निम्नलिखित फायदे हैं:

  1. सरल, समझने में आसान, कम सीमा
  2. SMA औसत रेखा का लाभ उठाना, अपेक्षाकृत स्थिर
  3. लंबे समय तक स्थिति रखने के लिए, अल्पकालिक बाजार के शोर से प्रभावित नहीं होना
  4. कम कॉन्फ़िगर करने योग्य पैरामीटर, सबसे अच्छा पैरामीटर संयोजन खोजने के लिए अनुकूलित करना आसान है

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

इस रणनीति के साथ निम्नलिखित जोखिम भी हैं:

  1. जब बाजार लंबे समय तक अस्थिर रहता है, तो स्टॉप लॉस अधिक हो सकता है
  2. एसएमए औसत मूल्य परिवर्तनों को समय पर पकड़ने में असमर्थ है
  3. अल्पकालिक उतार-चढ़ाव का लाभ उठाने में असमर्थता
  4. व्यक्तिगत नुकसान को नियंत्रित नहीं कर सकते

अनुकूलन दिशा

इस रणनीति को निम्नलिखित पहलुओं से भी अनुकूलित किया जा सकता हैः

  1. MACD सूचकांक में शामिल होने का समय नीचे की ओर बढ़ने का निर्णय लेने के लिए, ताकि उतार-चढ़ाव के दौरान घाटे को कम किया जा सके
  2. विभिन्न मापदंडों के SMA औसत रेखा संयोजनों का परीक्षण करना, इष्टतम मापदंडों की तलाश करना
  3. ट्रेडों को ट्रेंड करने के लिए घरेलू सूचकांकों को जोड़ना, स्थिति की सटीकता में सुधार करना
  4. स्टॉप लॉस रणनीति को बढ़ाएं और एकल घाटे को नियंत्रित करें

संक्षेप

कुल मिलाकर, SMA औसत पोजीशन रणनीति स्थिर, सरल, आसान संचालन के लिए उपयुक्त है, जो शुरुआती लोगों के लिए उपयुक्त है। जैसे-जैसे मात्रात्मक व्यापार विकसित होता है, रणनीति में अधिक संकेतकों और तकनीकी साधनों को अनुकूलित किया जा सकता है, जिससे बेहतर प्रभाव प्राप्त हो सकता है।

रणनीति स्रोत कोड
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Zlema Strateg Long 5m', overlay=true )

// FUNCTIONS

Atr(p) =>
    atr = 0.
    Tr = math.max(high - low, math.max(math.abs(high - close[1]), math.abs(low - close[1])))
    atr := nz(atr[1] + (Tr - atr[1]) / p, Tr)
    atr

// ZLEMA
length = input(title='Length', defval=14)
highlightMovements = input(title='Highlight Movements ?', defval=true)
src = input(title='Source', defval=close)

lag = math.floor((length - 1) / 2)

zlema = ta.ema(src + src - src[lag], length)

zlemaColor = highlightMovements ? zlema > zlema[1] ? color.green : color.red : #6d1e7f
plot(zlema, title='ZLEMA', linewidth=2, color=zlemaColor, transp=0)


// TAKE PROFIT AND STOP LOSS
long_tp1_inp = input.float(1, title='Long Take Profit 1 %', step=0.1) / 100
long_tp1_qty = input.int(10, title='Long Take Profit 1 Qty', step=1)

long_tp2_inp = input.float(5, title='Long Take Profit 2%', step=0.1) / 100
long_tp2_qty = input.int(50, title='Long Take Profit 2 Qty', step=1)

long_take_level_1 = strategy.position_avg_price * (1 + long_tp1_inp)
long_take_level_2 = strategy.position_avg_price * (1 + long_tp2_inp)




// Stop Loss
multiplier = input.float(2.2, 'SL Mutiplier', minval=1, step=0.1)
ATR_period = input.int(17, 'ATR period', minval=1, step=1)

// Strategy
entry_long = zlema > zlema[1]
entry_price_long = ta.valuewhen(entry_long, close, 0)
SL_floating_long = entry_price_long - multiplier * Atr(ATR_period)
exit_long = zlema < zlema[1]

///// BACKTEST PERIOD ///////
testStartYear = input(2022, 'Backtest Start Year')
testStartMonth = input(1, 'Backtest Start Month')
testStartDay = input(1, 'Backtest Start Day')
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(9999, 'Backtest Stop Year')
testStopMonth = input(12, 'Backtest Stop Month')
testStopDay = input(31, 'Backtest Stop Day')
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

if testPeriod()
    strategy.entry('long', strategy.long, comment='Long', when=entry_long)
    strategy.exit('TP1', 'long', qty_percent=long_tp1_qty, limit=long_take_level_1)  //, trail_points=entry_price_long * long_trailing / syminfo.mintick, trail_offset=entry_price_long * long_trailing / syminfo.mintick)
    strategy.exit('TP2', qty_percent=long_tp2_qty, limit=long_take_level_2)  //, trail_points=entry_price_long * long_trailing / syminfo.mintick, trail_offset=entry_price_long * long_trailing / syminfo.mintick)
    strategy.close('long', when=exit_long, comment='exit long')


// LONG POSITION
plot(strategy.position_size > 0 ? long_take_level_1 : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='1st Long Take Profit')
plot(strategy.position_size > 0 ? long_take_level_2 : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='2nd Long Take Profit')
plot(strategy.position_size > 0 ? SL_floating_long : na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Long Stop Loss')


if testPeriod()
    strategy.entry('long', strategy.long, comment='Long', when=entry_long)


// LONG POSITIONplot(strategy.position_size > 0 ? SL_floating_long : na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Long Stop Loss')