ट्रिपल ईएमए ट्रेलिंग स्टॉप रणनीति


निर्माण तिथि: 2023-10-17 15:05:41 अंत में संशोधित करें: 2023-10-17 15:05:41
कॉपी: 2 क्लिक्स: 715
1
ध्यान केंद्रित करना
1617
समर्थक

ट्रिपल ईएमए ट्रेलिंग स्टॉप रणनीति

अवलोकन

यह रणनीति एक विशिष्ट ट्रिपल इंडेक्स मूविंग एवरेज ट्रेडिंग रणनीति का कार्यान्वयन है। यह तेजी से 5 दिन ईएमए, मध्यम गति से 20 दिन ईएमए और धीमी गति से 50 दिन ईएमए के क्रॉसिंग के माध्यम से एक व्यापार संकेत उत्पन्न करता है। साथ ही, यह नकली संकेतों को फ़िल्टर करने के लिए वर्तमान के-लाइन समापन मूल्य के ऊपर या नीचे एक निश्चित टिक को जोड़ता है। इसके अलावा, यह रणनीति मुनाफे को लॉक करने के लिए स्टॉप-लॉस ट्रैकिंग का भी उपयोग करती है।

सिद्धांत

जब 5 दिन ईएमए पर 20 दिन ईएमए, और तीन ईएमए एक बहुस्तरीय क्रम में हैं ((5 दिन ईएमए > 20 दिन ईएमए > 50 दिन ईएमए), और वर्तमान के-लाइन समापन मूल्य पिछले दिन समापन मूल्य में वृद्धि से अधिक कुछ ticks है, तो अधिक करें; जब 5 दिन ईएमए के नीचे 20 दिन ईएमए, और तीन ईएमए एक रिक्त क्रम में हैं ((5 दिन ईएमए < 20 दिन ईएमए < 50 दिन ईएमए), और वर्तमान के-लाइन समापन मूल्य पिछले दिन समापन मूल्य में गिरावट से अधिक कुछ ticks है, तो शून्य करें।

प्रवेश के बाद, यदि कीमत कुछ निश्चित टिक्स से अधिक चलती है, तो स्टॉप लॉस ट्रैकिंग तंत्र शुरू किया जाता है, और अधिक लाभदायक टिक्स को लॉक करने के लिए स्टॉप लॉस लाइन को लगातार कीमत में उतार-चढ़ाव के अनुसार समायोजित किया जाता है।

लाभ

  1. ट्रिपल ईएमए का उपयोग ट्रेडिंग सिग्नल बनाने के लिए किया जाता है, जिससे बाजार के शोर को प्रभावी ढंग से फ़िल्टर किया जा सकता है और रुझान की पहचान की जा सकती है। तेज ईएमए नवीनतम परिवर्तनों को दर्शाता है, मध्यम ईएमए रुझान की दिशा निर्धारित करता है, धीमी ईएमए झटके को फ़िल्टर करता है।

  2. पिछले दिन के समापन मूल्य के साथ वर्तमान K लाइन समापन मूल्य की तुलना को जोड़ना, झूठे संकेतों को और फ़िल्टर करने और अनावश्यक लेनदेन को कम करने में मदद करता है।

  3. ट्रैक किए गए स्टॉप-लॉस तंत्र का उपयोग करके, स्टॉप-लॉस लाइन को गतिशील रूप से बाजार की गति के अनुसार समायोजित किया जा सकता है, जिससे अधिकतम लाभ हो सके।

  4. इस रणनीति के पैरामीटर को लचीला बनाया गया है और इसे विभिन्न किस्मों और चक्रों के लिए अनुकूलित किया जा सकता है, जो कि दिन रेखा से लेकर मिनट रेखा तक लागू होते हैं।

जोखिम

  1. अस्थिरता के दौरान, ईएमए क्रॉस सिग्नल बार-बार होते हैं, जिससे लेनदेन शुल्क और स्लाइडिंग लागत में वृद्धि के लिए अधिक लेनदेन हो सकता है।

  2. ट्रैक किए गए स्टॉप्स को बड़े पैमाने पर झटके में बहुत जल्दी बंद कर दिया जा सकता है, जिससे पूरे रुझान को पकड़ना मुश्किल हो जाता है।

  3. ईएमए विलंब विशेषता एक प्रवृत्ति मोड़ को याद कर सकती है और नुकसान का कारण बन सकती है।

  4. ईएमए चक्र की लंबाई, स्टॉपलॉस टिक्स को ट्रैक करने जैसे मापदंडों को अनुकूलित करने की आवश्यकता होती है, विभिन्न किस्मों और चक्रों में प्रभाव में भारी अंतर होता है।

अनुकूलन दिशा

  1. अन्य संकेतकों जैसे MACD, KD आदि के साथ मिलकर ट्रेडिंग सिग्नल को फ़िल्टर करने में सहायता की जा सकती है।

  2. परीक्षण और अनुकूलन के लिए विशिष्ट किस्मों और चक्र मापदंडों के आधार पर सबसे अच्छा संयोजन खोजने के लिए।

  3. पैरामीटर को मैन्युअल हस्तक्षेप या मशीन लर्निंग जैसे तरीकों से गतिशील रूप से समायोजित किया जा सकता है।

  4. किसी विशेष स्थिति में, ट्रैक किए गए स्टॉप को बंद करने और पूर्ण स्थिति रखने के लिए विचार किया जा सकता है।

  5. ऑटो-स्टॉप के साथ एक सरल ट्रैक-स्टॉप के विकल्प के रूप में।

संक्षेप

यह रणनीति ईएमए क्रॉसिंग, प्राइस ब्रेकिंग और स्टॉप लॉस को ट्रैक करने के लिए तीन सामान्य तकनीकी विश्लेषण विधियों को एकीकृत करती है, जिससे एक अधिक व्यापक और विश्वसनीय ट्रेंड ट्रैकिंग ट्रेडिंग सिस्टम बनता है। पैरामीटर अनुकूलन के माध्यम से, यह विभिन्न किस्मों और चक्रों के लिए अनुकूल है, और यह स्पष्ट रूप से ट्रेंडिंग बाजारों में अच्छा काम करता है। लेकिन इस रणनीति में कुछ विशिष्ट तकनीकी विश्लेषण रणनीतियों की कमजोरियां भी हैं, जिन्हें अधिक बाजार स्थितियों के लिए और अधिक अनुकूलित करने की आवश्यकता है। कुल मिलाकर, यह रणनीति एक सरल व्यावहारिक विचारधारा प्रदान करती है, जो सामान्य रणनीति विचारों का एक अच्छा अभ्यास और प्रदर्शन है।

रणनीति स्रोत कोड
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-02 12:00:00
period: 1m
basePeriod: 1m
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/
// © Matt Dearden - IndoPilot
// @version=4

/////////////////////////////////////////////////////// Initial Parameters /////////////////////////////////////////////////////// 
SystemName = "Triple EMA Strategy"
ShortSystemName = "TEMA"
InitPosition = 0
InitCapital = 50000
InitCommission = 0.004 //approx value to compensate for Oanda spreads
InitPyramidMax = 0
CalcOnorderFills = true

strategy(title=SystemName, shorttitle=ShortSystemName, overlay=true, pyramiding=InitPyramidMax, 
 default_qty_type=strategy.cash, default_qty_value=InitPosition, commission_type=strategy.commission.percent, 
 commission_value=InitCommission, initial_capital=InitCapital, max_lines_count=500, 
 max_labels_count=500, process_orders_on_close=false, calc_on_every_tick=false) 

///////////////////////////////////////////////////////////// Inputs /////////////////////////////////////////////////////////////

DateFilter = input(false, "═════ Data Filtering ═════") 
InitYear = input(title="Year", type=input.integer, defval=2021, minval=2000, maxval=2021)
InitMonth = input(title="Month (0=ALL)", type=input.integer, defval=0, minval=0, maxval=12)
InitStopLoss = input(title="Stop Loss (ticks)", type=input.integer, defval=100, minval=0, maxval=1000) 
TrailingStopLoss = input(title="Trailing S/L (ticks)", type=input.integer, defval=130, minval=0, maxval=1000) 
InitBuffer = input(title="Buffer (ticks)", type=input.integer, defval=15, minval=0, maxval=1000) 
InitEMA1 = input(title="EMA 1", type=input.integer, defval=5, minval=0, maxval=1000) 
InitEMA2 = input(title="EMA 2", type=input.integer, defval=20, minval=0, maxval=1000) 
InitEMA3 = input(title="EMA 3", type=input.integer, defval=50, minval=0, maxval=1000) 

//////////////////////////////////////////////////////////// Variables ///////////////////////////////////////////////////////////

var StopLoss = float(0.0)
var StartPrice = float(0.0)
//setup multipliers and catch JPY difference
Multiplier = syminfo.currency == "JPY" ? 10 : 1000
//get the daily exchange rate from yesterday
//X_rate = security(AccountCurrency+syminfo.currency, "D", close[1]) 
OrderQty = 1  
Buffer = InitBuffer / (Multiplier * 100)

/////////////////////////////////////////////////////// Triple EMA Strategy //////////////////////////////////////////////////////

EMA1 = ema(close, InitEMA1)
EMA2= ema(close, InitEMA2)
EMA3 = ema(close, InitEMA3)

//entry conditions
longCondition = crossover(EMA1, EMA2) and close > EMA3 and EMA1 > EMA3 and EMA2 > EMA3 and close > (close[1] + Buffer) 
shortCondition = crossunder(EMA1, EMA2) and close < EMA3 and EMA1 < EMA3 and EMA2 < EMA3 and close < (close[1] - Buffer) 

/////////////////////////////////////////////////////// Trailing Stoploss ////////////////////////////////////////////////////////

if (strategy.position_size > 0 and (close > (StartPrice + (TrailingStopLoss / (100 * Multiplier)))))  
    StopLoss := max(StopLoss, close - (TrailingStopLoss / (100 * Multiplier))) 
    strategy.exit("Long Stoploss", "Long") 
    
if (strategy.position_size < 0 and (close < (StartPrice - (InitStopLoss / (100 * Multiplier))))) 
    StopLoss := min(StopLoss, close + (TrailingStopLoss / (100 * Multiplier)))
    strategy.exit("Short Stoploss", "Short") 
    
///////////////////////////////////////////////////////// Setup entries /////////////////////////////////////////////////////////

if (longCondition)
    StartPrice := close
    StopLoss := StartPrice - (InitStopLoss / (100 * Multiplier)) 
    strategy.entry("Long", strategy.long, qty=OrderQty)
    strategy.exit("Long Stoploss", "Long")

if (shortCondition)
    StartPrice := close
    StopLoss := StartPrice + (InitStopLoss / (100 * Multiplier)) 
    strategy.entry("Short", strategy.short, qty=OrderQty)
    strategy.exit("Short Stoploss", "Short")
    
///////////////////////////////////////////////////////// Draw the EMAs /////////////////////////////////////////////////////////
plot(EMA1, "EMA1", color=#00FF00)
plot(EMA2, "EMA2", color=#FF0000)
plot(EMA3, "EMA3", color=#4040FF)