यह रणनीति STOCH सूचकांक पर आधारित एक सरल स्वचालित ट्रेडिंग प्रणाली के लिए डिज़ाइन की गई है। यह रणनीति विदेशी मुद्रा, स्टॉक इंडेक्स, कमोडिटी जैसे बाजारों के लिए उपयुक्त है, और इसे स्टॉक और क्रिप्टोक्यूरेंसी बाजारों में भी विस्तारित किया जा सकता है।
इस रणनीति का उपयोग STOCH सूचक ओवरबॉट ओवरसोल स्थिति की पहचान करने के लिए, PIVOT बिंदु के साथ संयोजन में एक स्टॉप-लॉस स्थिति सेट करने के लिए, ट्रेंड ट्रैकिंग को लागू करने के लिए। जब STOCH सूचक ओवरबॉट ओवरसोल दिखाता है, तो अधिक कॉपी-ऑफ ऑपरेशन किया जाता है; स्टॉप-लॉस बिंदु उस दिन के PIVOT बिंदु के पास स्थित है, जो जोखिम को प्रभावी ढंग से नियंत्रित करता है; कुछ स्टॉप-ऑफ बिंदु को कुछ मुनाफे के बाद कुछ पदों को बंद करने के लिए सेट किया गया है।
इस रणनीति का उपयोग करता है स्टॉक सूचकांक की तेज लाइन% के और धीमी लाइन% डी के लिए गोल्ड फोर्क अधिक और मृत फोर्क कम. विशिष्ट तर्क यह है कि जब% के लाइन नीचे से ऊपर से% डी लाइन को तोड़ता है, तो मल्टी ऑपरेशन किया जाता है; जब% के लाइन ऊपर से नीचे से% डी लाइन को तोड़ती है, तो शून्य ऑपरेशन किया जाता है। इस प्रकार ओवरबॉट ओवरसोल स्थिति को पकड़ने के लिए।
जोखिम को नियंत्रित करने के लिए, लंबी स्थिति के लिए एक अधिक स्टॉप पॉइंट उस दिन के सबसे कम PIVOT बिंदु के पास स्थित है, और खाली स्थिति के लिए एक रिक्त स्टॉप पॉइंट उस दिन के उच्चतम PIVOT बिंदु के पास स्थित है, जो प्रभावी रूप से जोखिम को लॉक कर सकता है।
आंशिक रूप से स्टॉप लॉजिक यह है कि जब स्थिति खोला जाता है, तो एक विशिष्ट लाभ स्तर पर 50% स्थिति को बंद कर दिया जाता है। इस प्रकार, धन का उपयोग करने की दक्षता को अनुकूलित किया जा सकता है।
कुल मिलाकर, इस रणनीति में कैप्चर ओवरबॉय ओवरसोल्ड स्थिति के लिए सही समय है; नियंत्रण जोखिम नियंत्रण; अनुकूलन के लिए धन का उपयोग करने की दक्षता। कैप्चर, नियंत्रण और अनुकूलन का एक कार्बनिक संयोजन कहा जा सकता है।
STOCH सूचकांक का उपयोग ओवरबॉय और ओवरसेलिंग को प्रभावी ढंग से पकड़ने के लिए किया जाता है, PIVOT बिंदु के साथ जोखिम को नियंत्रित किया जा सकता है, जिससे व्यापार जोखिम पर पूर्ण नियंत्रण हो सके।
आंशिक रोकथाम तंत्र के उपयोग से धन का उपयोग करने की दक्षता में सुधार होता है। आंशिक रूप से बकाया रखने की विधि का उपयोग करके, आंशिक लाभ सुनिश्चित किया जाता है और बाद में लाभप्रद संचालन के लिए जगह भी रखी जाती है।
रणनीति के पैरामीटर को अनुकूलित किया जा सकता है, और व्यापारी बाजार और जोखिम वरीयताओं के अनुसार पैरामीटर को समायोजित कर सकते हैं, जिससे रणनीति का लचीला उपयोग संभव हो सके।
रणनीति तर्क बहुत सरल और स्पष्ट है, इसे समझना आसान है, विभिन्न व्यापारियों के लिए उपयुक्त है। कोड को पढ़ना आसान है, इसे संशोधित करना आसान है।
एक ट्रेंड ट्रैकिंग रणनीति के रूप में, यह अस्थिरता में फंसने के लिए आसान है और लाभदायक नहीं है।
STOCH सूचकांक गलत सिग्नल उत्पन्न कर सकता है, जो अनावश्यक व्यापारिक व्यवहार को ट्रिगर करता है। अनावश्यक व्यापार से बचने के लिए सिग्नल को ठीक से फ़िल्टर किया जाना चाहिए।
स्टॉप लॉस उस दिन के एक्सल पॉइंट के करीब है, जो ब्रेकआउट के बाद बहुत करीब हो सकता है, स्टॉप लॉस की दूरी को उचित रूप से बढ़ाया जाना चाहिए।
कुछ रणनीति पैरामीटर जैसे कि अवधि की लंबाई को विभिन्न बाजारों के अनुसार समायोजित करने की आवश्यकता होती है, अन्यथा यह रणनीति के प्रदर्शन को प्रभावित कर सकती है।
केवल ऐतिहासिक आंकड़ों पर आधारित प्रतिक्रिया भविष्य के प्रदर्शन की गारंटी नहीं देती है।
स्वचालित लेनदेन प्रणाली को सर्वर की स्थिरता सुनिश्चित करने की आवश्यकता है, ताकि कनेक्शन की समस्याओं के कारण लेनदेन को रोक दिया जा सके।
प्रवृत्ति फ़िल्टर को पेश किया जा सकता है, जब प्रवृत्ति स्पष्ट नहीं है तो अंधेरे व्यापार से बचें। उदाहरण के लिए, एमए संकेतक को प्रवृत्ति की दिशा का आकलन करने के लिए शामिल करें।
लेन-देन की मात्रा की निगरानी में शामिल किया जा सकता है, जैसे कि छूट, खाली सिर छूट, आदि, फ़िल्टर झूठी तोड़फोड़ से बचें।
विभिन्न किस्मों और आवृत्तियों के अनुसार पैरामीटर को समायोजित करके रणनीति के प्रदर्शन को अनुकूलित किया जा सकता है। उदाहरण के लिए, STOCH के पैरामीटर को समायोजित करना।
मशीन लर्निंग एल्गोरिदम को शामिल करने पर विचार करें, बिग डेटा प्रशिक्षण मॉडल का उपयोग करें, स्वचालित रूप से पैरामीटर का अनुकूलन करें।
जोखिम नियंत्रण को लागू करने के लिए एक लाभ-हानि अनुपात सेट किया जा सकता है, जो बड़े नुकसान वाले इकाइयों से बचने के लिए है।
अतिरिक्त शर्तें जोड़ी जा सकती हैं ताकि प्रवेश के समय को फ़िल्टर किया जा सके और रणनीति की जीत की दर को बढ़ाया जा सके। जैसे कि स्टॉक के बुनियादी मॉडल की शुरुआत करना।
इस रणनीति में एक सरल और सहज ट्रेंड ट्रैकिंग विधि का उपयोग किया गया है, जो STOCH सूचकांक के साथ ओवरबॉय और ओवरसोल की स्थिति की पहचान करने के लिए है, और जोखिम को नियंत्रित करने के लिए PIVOT स्टॉप लॉस को जोड़ता है, जबकि पूंजी की दक्षता को अनुकूलित करने के लिए आंशिक स्टॉप को पेश किया जाता है। कैप्चर, कंट्रोल और ऑप्टिमाइज़ के तीन स्तरों से डिजाइन किया गया है, जो एक पूर्ण स्वचालित व्यापार प्रणाली बनाता है। रणनीति तर्क सरल है, पैरामीटर को अनुकूलित किया जा सकता है और विभिन्न व्यापारियों के लिए उपयोग किया जा सकता है। लेकिन कुछ जोखिम और कमियां भी हैं, जिन्हें निरंतर परीक्षण और अनुकूलन की आवश्यकता होती है।
/*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)