स्टोच पर आधारित ऑटो ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-09-28 11:38:44
टैगः

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

रणनीति का अवलोकन

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

रणनीति तर्क

यह रणनीति स्टोच संकेतक के %K और %D रेखाओं के क्रॉसिंग का उपयोग लंबी और छोटी संकेत उत्पन्न करने के लिए करती है। विशेष रूप से, जब %K रेखा %D रेखा के ऊपर पार करती है, तो यह लंबी हो जाएगी। जब %K रेखा %D रेखा के नीचे पार करती है, तो यह छोटी हो जाएगी। यह ओवरबॉट और ओवरसोल्ड स्थितियों को पकड़ती है।

जोखिमों को नियंत्रित करने के लिए, लंबे स्टॉप लॉस बिंदु को दैनिक निम्नतम पीआईवीओटी बिंदु के पास और लघु स्टॉप लॉस बिंदु को दैनिक उच्चतम पीआईवीओटी बिंदु के पास सेट किया जाता है। यह प्रभावी रूप से जोखिमों को लॉक करता है।

आंशिक लाभ लेने के लिए, यह स्थिति खोलने के बाद एक निश्चित लाभ स्तर के बाद स्थिति का 50% बंद कर देता है। यह पूंजी उपयोग दक्षता को अनुकूलित करता है।

संक्षेप में, यह रणनीति ओवरबॉट और ओवरसोल्ड पॉइंट्स को उचित रूप से कैप्चर करती है; स्टॉप लॉस का उपयोग करके जोखिमों को नियंत्रित करती है; और पूंजी उपयोग दक्षता को अनुकूलित करती है। यह कैप्चर, कंट्रोल और ऑप्टिमाइज़ ऑर्गेनिक रूप से जोड़ती है।

रणनीति की ताकतें

  • स्टोच सूचक का उपयोग करके प्रभावी रूप से ओवरबॉट और ओवरसोल्ड स्थिति को कैप्चर किया जाता है।

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

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

  • सरल और स्पष्ट तर्क, सभी व्यापारियों के लिए समझने और मास्टर करने में आसान। स्वच्छ कोड संशोधनों और रखरखाव को सुविधाजनक बनाता है।

रणनीतिक जोखिम

  • एक प्रवृत्ति के अनुसार रणनीति के रूप में, यह सीमा-बंद बाजारों में फंस सकता है और लाभ में विफल हो सकता है।

  • STOCH गलत संकेत उत्पन्न कर सकता है, जिससे अनावश्यक ट्रेडों का कारण बन सकता है। अवांछित ट्रेडों से बचने के लिए सही सिग्नल फ़िल्टरिंग की आवश्यकता होती है।

  • ब्रेकआउट के बाद पिवोट पॉइंट के पास स्टॉप लॉस बहुत करीब हो सकता है। स्टॉप लॉस की दूरी को ठीक से बढ़ाएं।

  • अवधि जैसे कुछ मापदंडों को विभिन्न बाजारों के लिए समायोजन की आवश्यकता हो सकती है, अन्यथा यह रणनीति के प्रदर्शन को प्रभावित करता है।

  • बैकटेस्ट केवल ऐतिहासिक डेटा पर निर्भर करता है. भविष्य के प्रदर्शन की गारंटी नहीं दे सकता. लाइव ट्रेडिंग में अधिक अनियंत्रित कारक.

  • ऑटो ट्रेडिंग सिस्टम को व्यापार निष्पादन समस्याओं से बचने के लिए स्थिर कनेक्शन की आवश्यकता होती है।

रणनीति अनुकूलन

  • ट्रेंड फ़िल्टर जोड़ें ताकि स्पष्ट रुझानों के बिना ट्रेडिंग से बचा जा सके। जैसे कि ट्रेंड दिशा निर्धारित करने के लिए एमए का उपयोग करना।

  • झूठे ब्रेकआउट का पता लगाने और जाल से बचने के लिए वॉल्यूम विश्लेषण जोड़ें। उदाहरण के लिए तेजी/बियर वॉल्यूम।

  • प्रदर्शन को अनुकूलित करने के लिए विभिन्न उत्पादों और समय सीमाओं के आधार पर STOCH इनपुट जैसे मापदंडों को समायोजित करें।

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

  • जोखिम नियंत्रण को लागू करने और भारी घाटे के कारोबार से बचने के लिए लाभ कारक अनुपात निर्धारित करें।

  • अधिक फ़िल्टर जोड़ें जैसे व्यापार की शर्तें, जीत दर में सुधार के लिए मौलिक।

निष्कर्ष

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


/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
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/
// © Peter_O

//@version=4
// strategy(title="TradingView Alerts to MT4 MT5 - Forex, indices, commodities, stocks, crypto", commission_type=strategy.commission.cash_per_contract, commission_value=0.00003, overlay=false, default_qty_value=20000, initial_capital=1000)
//
// This script was created for educational purposes only.
// It is showing how to use Alerts-Straight-From-Strategies and
// dynamic variables in TradingView alerts.
// And how to auto-execute them in Forex, indices, commodities markets
// 
// (This method will also work with stocks and crypto - anything your 
// broker is offering via their MT4/MT5 platform).
 
TakeProfitLevel=input(400)
TakePartialProfitLevel=input(150)

// **** Entries logic **** {
periodK = input(13, title="K", minval=1)
periodD = input(3, title="D", minval=1)
smoothK = input(4, title="Smooth", minval=1)
k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)
plot(k, title="%K", color=color.blue)
plot(d, title="%D", color=color.orange)
h0 = hline(80)
h1 = hline(20)
fill(h0, h1, color=color.purple, transp=75)

GoLong=crossover(k,d) and k<80 and year>2009
GoShort=crossunder(k,d) and k>20 and year>2009

AlertTest=open>close or open<close or open==close
// } End of entries logic

// **** Pivot-points and stop-loss logic **** {
piv_high = pivothigh(high,1,1)
piv_low = pivotlow(low,1,1)
var float stoploss_long=low
var float stoploss_short=high

pl=valuewhen(piv_low,piv_low,0)
ph=valuewhen(piv_high,piv_high,0)

if GoLong 
    stoploss_long := low<pl ? low : pl
if GoShort 
    stoploss_short := high>ph ? high : ph
// } End of Pivot-points and stop-loss logic

// **** Trade counter and partial closing mechanism **** {
var int trade_id=0
if GoLong or GoShort
    trade_id:=trade_id+1

TakePartialProfitLong = barssince(GoLong)<barssince(GoShort) and crossover(high,(valuewhen(GoLong,close,0)+TakePartialProfitLevel*syminfo.mintick))
TakePartialProfitShort = barssince(GoLong)>barssince(GoShort) and crossunder(low,(valuewhen(GoShort,close,0)-TakePartialProfitLevel*syminfo.mintick))
// } End of Trade counter and partial closing mechanism

strategy.entry("Long", strategy.long, when=GoLong)
strategy.exit("XPartLong", from_entry="Long", qty_percent=50, profit=TakePartialProfitLevel)
strategy.exit("XLong", from_entry="Long", stop=stoploss_long, profit=TakeProfitLevel)
strategy.entry("Short", strategy.short, when=GoShort)
strategy.exit("XPartShort", from_entry="Short", qty_percent=50, profit=TakePartialProfitLevel)
strategy.exit("XShort", from_entry="Short", stop=stoploss_short, profit=TakeProfitLevel)

if GoLong
    alertsyntax_golong='long slprice=' + tostring(stoploss_long) + ' tradeid=' + tostring(trade_id) + ' tp=' + tostring(TakeProfitLevel)
    alert(message=alertsyntax_golong, freq=alert.freq_once_per_bar_close)
if GoShort
    alertsyntax_goshort='short slprice=' + tostring(stoploss_short) + ' tradeid=' + tostring(trade_id) + ' tp=' + tostring(TakeProfitLevel)
    alert(message=alertsyntax_goshort, freq=alert.freq_once_per_bar_close)
if TakePartialProfitLong
    alertsyntax_closepartlong='closepart tradeid=' + tostring(trade_id) + ' part=0.5'
    alert(message=alertsyntax_closepartlong, freq=alert.freq_once_per_bar_close)
if TakePartialProfitShort
    alertsyntax_closepartshort='closepart tradeid=' + tostring(trade_id) + ' part=0.5'
    alert(message=alertsyntax_closepartshort, freq=alert.freq_once_per_bar_close)


अधिक