जोकर चलती लाभ लेने की रणनीति


निर्माण तिथि: 2023-09-23 15:04:20 अंत में संशोधित करें: 2023-09-23 15:04:20
कॉपी: 0 क्लिक्स: 786
1
ध्यान केंद्रित करना
1617
समर्थक

अवलोकन

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

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

यह रणनीति एक ट्रेंड फ़िल्टर का निर्माण करने के लिए एक तेज चलती औसत और एक धीमी चलती औसत का उपयोग करती है। जब तेज चलती औसत पर धीमी चलती औसत से गुजरता है, तो अधिक करें; जब तेज चलती औसत के नीचे धीमी चलती औसत से गुजरता है, तो खाली करें।

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

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

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

  • मूविंग एवरेज का उपयोग करके प्रमुख रुझानों की दिशा का आकलन करें ताकि बाजार के शोर से रणनीति में बहुत अधिक हस्तक्षेप न हो।

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

  • एक चलती रोक अधिक मुनाफे को लॉक कर सकती है, जो रणनीति को बंद करने के जोखिम को कम करती है। यह केवल एक निश्चित रोक को स्थापित करने के साथ संभावित रोक की स्थिति को बहुत अधिक संरक्षित करने और मुनाफे को जल्दी से लॉक करने की समस्या से भी बचाता है।

  • मोबाइल स्टॉप स्टॉप के लाभों को बरकरार रखता है, जो कि स्टॉप लॉस स्टॉप को सेट करता है, जो कि प्रतिकूल होने पर जल्द से जल्द बंद हो सकता है।

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

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

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

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

  • चलती रोक केवल एकतरफा आंदोलन को ध्यान में रखती है, पीछे हटने पर विचार नहीं करती है। इसका मतलब है कि कीमत फिर से वापस आ जाती है, और चलती रोक नीचे नहीं जाती है। इसका मतलब है कि स्टॉप का अंतिम निष्पादन मूल्य सैद्धांतिक मूल्य से विचलित हो जाता है। द्विपक्षीय चलती रोक तंत्र को अनुकूलित करने के लिए विचार किया जा सकता है।

अनुकूलन दिशा

  • बाजार में उतार-चढ़ाव की गतिशीलता के आधार पर चलती औसत पैरामीटर को समायोजित करने पर विचार किया जा सकता है, उतार-चढ़ाव बढ़ने पर चक्र को बड़ा करना, उतार-चढ़ाव कम होने पर चक्र को छोटा करना।

  • विभिन्न किस्मों और बाजारों की विशेषताओं का अध्ययन करने के लिए, विभिन्न डिफ़ॉल्ट स्टॉप अनुपात सेट करें, स्टॉप विचलन के जोखिम को कम करें।

  • एक द्विपक्षीय गतिशील स्टॉप के तंत्र पर अध्ययन किया जा सकता है, जब कीमत नए उच्च बिंदु तक पहुंचती है तो स्टॉप को ऊपर की ओर ले जाती है, और जब यह वापस आ जाती है तो स्टॉप को नीचे की ओर ले जाती है, जिससे स्टॉप कीमत के करीब हो जाता है।

  • प्रवृत्ति की ताकत के संकेतकों के साथ संयोजन में, प्रवृत्ति की ताकत कमजोर होने पर स्टॉप अनुपात को कम करने और प्रवृत्ति की ताकत मजबूत होने पर स्टॉप अनुपात को बढ़ाने पर विचार किया जा सकता है।

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

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-08-23 00:00:00
end: 2023-09-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='Joker Trailing TP Bot', shorttitle='Joker TTP Bot', overlay=true, pyramiding=0, process_orders_on_close=false, close_entries_rule='ANY', calc_on_every_tick=false, calc_on_order_fills=false, commission_type=strategy.commission.percent, commission_value=0.07, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, currency=currency.USD) //, max_labels_count=500)

fromDate = input(timestamp('01 Jan 2021 00:00 UTC'), 'From Date')
toDate = input(timestamp('31 Dec 2121 23:59 UTC'), 'To Date')
fastMALen = input.int(23, 'Fast SMA Length')
slowMALen = input.int(50, 'Slow SMA Length')
longTakeProfitPerc = input.float(0.5, 'Long Take Profit %', minval=0.05, step=0.05) * 0.01
shortTakeProfitPerc = input.float(0.5, 'Short Take Profit %', minval=0.05, step=0.05) * 0.01
enableTrailing = input.bool(true, 'Enable Trailing')
trailingTakeProfitPerc = input.float(0.01, 'Trailing Take Profit %', minval=0.01, maxval=100, step=0.01) * 0.01

float fastMA = ta.sma(close, fastMALen)
float slowMA = ta.sma(close, slowMALen)
bool isWithinPeriod = true
bool openLongPosition = isWithinPeriod and ta.crossover(fastMA, slowMA)
bool openShortPosition = isWithinPeriod and ta.crossunder(fastMA, slowMA)
bool longIsActive = openLongPosition or strategy.position_size > 0
bool shortIsActive = openShortPosition or strategy.position_size < 0

float longTakeProfitPrice = na
longTakeProfitPrice := if longIsActive
    if openLongPosition and not (strategy.position_size > 0)
        close * (1 + longTakeProfitPerc)
    else
        nz(longTakeProfitPrice[1], close * (1 + longTakeProfitPerc))
else
    na

float shortTakeProfitPrice = na
shortTakeProfitPrice := if shortIsActive
    if openShortPosition and not (strategy.position_size < 0)
        close * (1 - shortTakeProfitPerc)
    else
        nz(shortTakeProfitPrice[1], close * (1 - shortTakeProfitPrice))
else
    na

float longTrailingTakeProfitStepTicks = longTakeProfitPrice * trailingTakeProfitPerc / syminfo.mintick
float shortTrailingTakeProfitStepTicks = shortTakeProfitPrice * trailingTakeProfitPerc / syminfo.mintick

strategy.entry(id = 'Long Entry', direction = strategy.long, when = openLongPosition, alert_message = 'Long(' + syminfo.ticker + '): Started')
strategy.entry(id = 'Short Entry', direction = strategy.short, when = openShortPosition, alert_message = 'Short(' + syminfo.ticker + '): Started')
strategy.exit(id = 'Long Take Profit', from_entry = 'Long Entry', limit = enableTrailing ? na : longTakeProfitPrice, trail_price = enableTrailing ? longTakeProfitPrice : na, trail_offset = enableTrailing ? longTrailingTakeProfitStepTicks : na, when = longIsActive, alert_message = 'Long(' + syminfo.ticker + '): Take Profit activated')
strategy.exit(id = 'Short Take Profit', from_entry = 'Short Entry', limit = enableTrailing ? na : shortTakeProfitPrice, trail_price = enableTrailing ? shortTakeProfitPrice : na, trail_offset = enableTrailing ? shortTrailingTakeProfitStepTicks : na, when = shortIsActive, alert_message = 'Short(' + syminfo.ticker + '): Take Profit activated')

plot(series = fastMA, title='Fast SMA', color = color.blue, linewidth = 1, style = plot.style_line)
plot(series = slowMA, title='Slow SMA', color = color.orange, linewidth = 1, style = plot.style_line)
plot(series = longTakeProfitPrice, title='Long Take Profit', color = color.green, linewidth = 1, style = plot.style_cross, offset = 1)
plot(series = shortTakeProfitPrice, title='Short Take Profit', color = color.red, linewidth = 1, style = plot.style_cross, offset = 1)
plot(series = strategy.position_avg_price, title='Position', color = color.white, linewidth = 1, style = plot.style_linebr)