मूविंग एवरेज डुअल ट्रैक ट्रेडिंग रणनीति


निर्माण तिथि: 2024-02-29 14:54:25 अंत में संशोधित करें: 2024-02-29 14:54:25
कॉपी: 1 क्लिक्स: 668
1
ध्यान केंद्रित करना
1617
समर्थक

मूविंग एवरेज डुअल ट्रैक ट्रेडिंग रणनीति

अवलोकन

एक चलती औसत द्वि-ट्रैक ट्रेडिंग रणनीति एक ट्रेंड ट्रेडिंग रणनीति है जो दो दोहरी चलती औसत क्रॉस सिग्नल को ट्रैक करती है। यह रणनीति सूचकांक चलती औसत (ईएमए) और भारित चलती औसत (डब्ल्यूएमए) को एक साथ ट्रेडिंग सिग्नल सूचक के रूप में उपयोग करती है। लंबी डब्लूएमए पर लंबी डब्लूएमए के साथ, रणनीति अधिक होती है; और लंबी डब्लूएमए के नीचे लंबी डब्लूएमए के साथ, रणनीति शून्य होती है।

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

इस रणनीति के लिए ट्रेडिंग सिग्नल का स्रोत ईएमए चक्र 10 के साथ अल्पकालिक ईएमए और डब्लूएमए चक्र 20 के साथ दीर्घकालिक डब्लूएमए के साथ गोल्डन फोर्क डेड फोर्क है। जब अल्पकालिक ईएमए पर लंबी डब्लूएमए को पार किया जाता है, तो यह दर्शाता है कि बाजार नीचे से ऊपर की ओर मुड़ता है, और अधिक करता है; जब अल्पकालिक ईएमए के नीचे लंबे समय तक डब्लूएमए को पार करता है, तो यह दर्शाता है कि बाजार ऊपर से नीचे की ओर मुड़ता है, और खाली करता है।

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

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

लाभ

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

जोखिम

एक चलती औसत अपने आप में एक मजबूत विलंबता है, जो एक गुम संकेत का जोखिम पैदा कर सकता है; दोहरी चलती औसत का क्रॉसिंग कुछ बाजारों में बहुत सारे झूठे संकेत पैदा कर सकता है, जिससे नुकसान हो सकता है। स्टॉप लॉस सेटिंग रणनीति का एक महत्वपूर्ण हिस्सा है, यदि स्टॉप लॉस बहुत छोटा है तो नुकसान के लिए आसानी से टूट जाता है, और यदि स्टॉप लॉस बहुत बड़ा है तो जोखिम को प्रभावी ढंग से नियंत्रित नहीं किया जा सकता है।

इसके अलावा, जब बाजार में भारी उतार-चढ़ाव होता है, तो मोबाइल स्टॉप लॉस बहुत अच्छी सुरक्षा नहीं दे सकता है।

अनुकूलन दिशा

  1. EMA और WMA को विभिन्न मापदंडों के साथ परीक्षण किया जा सकता है ताकि सर्वोत्तम संयोजन का पता लगाया जा सके। बहुत कम ईएमए या बहुत लंबे समय तक WMA रणनीति के प्रदर्शन को प्रभावित कर सकते हैं।

  2. एटीआर गुणांक या फिक्स्ड पॉइंट स्टॉप लॉस का चयन विभिन्न किस्मों और ट्रेडिंग शैलियों के आधार पर किया जा सकता है।

  3. आंशिक स्थिति और पूर्ण स्थिति में चलती हानि के प्रभाव का परीक्षण किया जा सकता है।

  4. फ़िल्टर किए गए सिग्नल को अन्य मापदंडों के साथ जोड़कर, ईएमए और डब्ल्यूएमए की सहायता से, सिग्नल की गुणवत्ता में सुधार किया जा सकता है।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 3h
basePeriod: 15m
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/
// © gpadihar

//@version=4
strategy("SL1 Pips after TP1 (MA)", commission_type=strategy.commission.cash_per_order, overlay=true)

// Strategy
Buy  = input(true)
Sell = input(true)

// Date Range
start_year    = input(title='Start year'   ,defval=2020)
start_month   = input(title='Start month'  ,defval=1)
start_day     = input(title='Start day'    ,defval=1)
start_hour    = input(title='Start hour'   ,defval=0)
start_minute  = input(title='Start minute' ,defval=0)
end_time      = input(title='set end time?',defval=false)
end_year      = input(title='end year'     ,defval=3019)
end_month     = input(title='end month'    ,defval=12)
end_day       = input(title='end day'      ,defval=31)
end_hour      = input(title='end hour'     ,defval=23)
end_minute    = input(title='end minute'   ,defval=59)

// MA
ema_period = input(title='EMA period',defval=10)
wma_period = input(title='WMA period',defval=20)
ema        = ema(close,ema_period)
wma        = wma(close,wma_period)

// Entry Condition
buy =
 crossover(ema,wma) and
 nz(strategy.position_size) == 0 and Buy and
 time > timestamp(start_year, start_month, start_day, start_hour, start_minute) and
 (end_time?(time < timestamp(end_year, end_month, end_day, end_hour, end_minute)):true)
 
sell =
 crossunder(ema,wma) and
 nz(strategy.position_size) == 0 and Sell and
 time > timestamp(start_year, start_month, start_day, start_hour, start_minute) and
 (end_time?(time < timestamp(end_year, end_month, end_day, end_hour, end_minute)):true)

// Pips
pip = input(20)*10*syminfo.mintick

// Trading parameters //
var bool  LS  = na
var bool  SS  = na
var float EP  = na
var float TVL = na
var float TVS = na
var float TSL = na
var float TSS = na
var float TP1 = na
var float TP2 = na
var float SL1 = na
var float SL2 = na

if buy or sell and strategy.position_size == 0
    EP  := close
    SL1 := EP - pip     * (sell?-1:1)
    SL2 := EP - pip     * (sell?-1:1)
    TP1 := EP + pip     * (sell?-1:1)
    TP2 := EP + pip * 2 * (sell?-1:1) 
   
// current trade direction    
LS := buy  or strategy.position_size > 0
SS := sell or strategy.position_size < 0

// adjust trade parameters and trailing stop calculations
TVL := max(TP1,open) - pip[1]
TVS := min(TP1,open) + pip[1]
TSL := open[1] > TSL[1] ? max(TVL,TSL[1]):TVL 
TSS := open[1] < TSS[1] ? min(TVS,TSS[1]):TVS

if LS and high > TP1
    if open <= TP1
        SL2:=min(EP,TSL)
    
if SS and low < TP1
    if open >= TP1
        SL2:=max(EP,TSS)

// Closing conditions
close_long  = LS and open < SL2
close_short = SS and open > SL2

// Buy
strategy.entry("buy"  , strategy.long, when=buy and not SS)
strategy.exit ("exit1", from_entry="buy", stop=SL1, limit=TP1, qty_percent=50)
strategy.exit ("exit2", from_entry="buy", stop=SL2, limit=TP2)

// Sell
strategy.entry("sell" , strategy.short, when=sell and not LS)
strategy.exit ("exit3", from_entry="sell", stop=SL1, limit=TP1, qty_percent=50)
strategy.exit ("exit4", from_entry="sell", stop=SL2, limit=TP2)

// Plots
a=plot(strategy.position_size >  0 ? SL1 : na, color=#dc143c, style=plot.style_linebr)
b=plot(strategy.position_size <  0 ? SL1 : na, color=#dc143c, style=plot.style_linebr) 
c=plot(strategy.position_size >  0 ? TP1 : na, color=#00ced1, style=plot.style_linebr) 
d=plot(strategy.position_size <  0 ? TP1 : na, color=#00ced1, style=plot.style_linebr) 
e=plot(strategy.position_size >  0 ? TP2 : na, color=#00ced1, style=plot.style_linebr) 
f=plot(strategy.position_size <  0 ? TP2 : na, color=#00ced1, style=plot.style_linebr) 
g=plot(strategy.position_size >= 0 ? na  : EP, color=#ffffff, style=plot.style_linebr) 
h=plot(strategy.position_size <= 0 ? na  : EP, color=#ffffff, style=plot.style_linebr) 

plot(ema,title="ema",color=#fff176)
plot(wma,title="wma",color=#00ced1)