
चट्टान के रूप में मजबूत समुद्र तट रणनीति एक मात्रात्मक व्यापार रणनीति है जो ब्रैडी के समुद्र तट के व्यापार के नियम का पालन करती है। यह कीमत में तोड़-फोड़ करने के लिए प्रवेश करता है, स्टॉप-लॉस स्टॉप-लॉस आउटपुट का पालन करता है, वास्तविक तरंगों के आधार पर स्थिति के आकार की गणना करता है, और एकल नुकसान को सख्ती से नियंत्रित करता है। यह रणनीति लंबे समय तक स्थिर चलती है, और कठिन चट्टान की तरह उतार-चढ़ाव के लिए प्रतिरोधी है।
एक चट्टान की तरह मजबूत समुद्री डाकू रणनीति प्रवेश करती है। विशेष रूप से, यह एक निश्चित अवधि के भीतर उच्चतम और निम्नतम कीमतों की गणना करने के लिए इनपुट ब्रेक चक्र पैरामीटर के आधार पर काम करता है। जब कीमत उच्चतम मूल्य को तोड़ती है, तो अधिक प्रवेश करती है; जब कीमत निम्नतम मूल्य को तोड़ती है, तो प्रवेश करती है।
उदाहरण के लिए, यदि प्रवेश चक्र पैरामीटर 20 के लाइन पर सेट किया गया है, तो रणनीति नवीनतम 20 के लाइनों के उच्चतम और निम्नतम मूल्य को निकालती है। यदि वर्तमान के लाइन की समापन कीमत पिछले 20 के लाइनों की उच्चतम कीमत से अधिक है, तो रणनीति उस समापन मूल्य स्थान पर कई स्टॉप ऑर्डर जारी करेगी, जो उच्चतम प्रवेश मूल्य को तोड़ने की प्रतीक्षा कर रही है।
एक चट्टान के रूप में मजबूत समुद्री तट रणनीति स्टॉप-लॉस स्टॉप-लॉस आउटपुट को ट्रैक करती है। यह इनपुट के आउटपुट चक्र पैरामीटर के आधार पर गतिशील रूप से उच्चतम और निम्नतम कीमतों की गणना करती है। यह रणनीति के लिए एक निकास चैनल है।
जब एक स्थिति को कई बार रखा जाता है, तो स्थिति को बंद कर दिया जाता है यदि कीमत चैनल से बाहर निकलने के लिए सबसे कम कीमत से नीचे गिरती है। इसके विपरीत, जब एक स्थिति को खाली किया जाता है, तो स्थिति को बंद कर दिया जाता है यदि कीमत चैनल से बाहर निकलने के लिए सबसे अधिक कीमत से नीचे गिरती है।
इसके अलावा, रणनीति वास्तविक तरंग दैर्ध्य के आधार पर स्टॉप लॉस की गणना करती है, जो अंतिम स्टॉप लॉस लाइन है। जब तक कि कीमत बाहर निकलने के मार्ग को नहीं तोड़ती है, स्टॉप लॉस को ट्रैक किया जाता है ताकि यह सुनिश्चित किया जा सके कि स्टॉप लॉस दूरी ठीक है, न तो अनावश्यक स्टॉप लॉस के लिए बहुत अधिक कट्टरपंथी है और न ही यह बहुत दूर है कि नुकसान को प्रभावी ढंग से नियंत्रित नहीं किया जा सकता है।
चट्टान की तरह मजबूत समुद्री डाकू रणनीति वास्तविक तरंगों के आधार पर एक एकल स्थिति के आकार की गणना करती है। विशेष रूप से, यह पहले प्रवेश मूल्य के आसपास संभावित नुकसान के प्रतिशत की गणना करता है, और फिर अपेक्षित जोखिम पैरामीटर के आधार पर स्थिति के आकार को उल्टा करता है। इस प्रकार, प्रति व्यापार अधिकतम नुकसान को प्रभावी ढंग से नियंत्रित किया जा सकता है।
चट्टान की तरह मजबूत समुद्री तट की रणनीति ब्रैडी समुद्री तट के व्यापारिक नियमों का पालन करती है, प्रवेश और निकास नियमों को सख्ती से लागू करती है, और यह आकस्मिक रूप से नहीं बदलती है। यह रणनीति को लंबे समय तक स्थिर रूप से संचालित करने की अनुमति देती है, जो कि अस्थायी निर्णय की गलतियों के कारण सिस्टम विफलता का कारण नहीं बनती है।
रणनीति का उपयोग मूल्य तोड़ने के प्रवेश के तरीके, प्रभावी रूप से उच्च स्तर के दोष के प्रवेश के जोखिम से बचने के लिए, इस प्रकार प्रणालीगत नुकसान की संभावना को कम करने के लिए. साथ ही स्टॉप लॉस ट्रैकिंग स्टॉप लॉस का उपयोग करके एकल नुकसान नियंत्रण सुनिश्चित करें, और लगातार नुकसान के कारण गिरावट को अधिकतम करने के लिए।
रणनीति वास्तविक तरंगों की गणना के माध्यम से स्थिति, प्रत्येक व्यापार के अधिकतम नुकसान को सख्ती से नियंत्रित करने के लिए, एक बड़े नुकसान के कारण होने वाले जोखिम के अतिप्रवाह से बचने के लिए। स्टॉप लॉस ट्रैकिंग विधि का उपयोग करके स्टॉप लॉस दूरी को सुनिश्चित करने के लिए, समय पर स्टॉप लॉस, प्रभावी रूप से नियंत्रण जोखिम।
यदि स्थिति के बिना कोई आघात टूट जाता है, तो झूठे सिग्नल के कारण सिस्टम गलत प्रवेश के नुकसान का कारण बन सकता है। इस समय पैरामीटर को समायोजित करने की आवश्यकता होती है, प्रवेश की पुष्टि की शर्तों को बढ़ाया जाता है, ताकि अवैध तोड़ने वाले शोर हस्तक्षेप से बचा जा सके।
रणनीति के पैरामीटर जैसे कि प्रवेश चक्र, बाहर निकलने का चक्र आदि स्थिर हैं। यदि बाजार की स्थिति में बड़े बदलाव होते हैं, तो इन पैरामीटर सेटिंग्स को अमान्य कर दिया जा सकता है। इस समय पैरामीटर सेटिंग्स को फिर से मूल्यांकन करने और नई बाजार की स्थिति के अनुकूल पैरामीटर को अनुकूलित करने की आवश्यकता होती है।
रणनीति में मूल्य ब्रेकडाउन के लिए फ्लैग्स जैसे तकनीकी संकेतकों का उपयोग किया जाता है। जब बाजार की प्रवृत्ति और उतार-चढ़ाव के पैटर्न में महत्वपूर्ण बदलाव होते हैं, तो ये तकनीकी संकेतकों का प्रभाव समाप्त हो सकता है। इस समय अधिक तकनीकी सूचक निर्णयों को पेश करने की आवश्यकता होती है, समग्र रूप से रणनीति की विश्वसनीयता को अनुकूलित करना।
रणनीति में सामान्य रूप से उपयोग किए जाने वाले रुझान को समझने के लिए संकेतकों को जोड़ा जा सकता है, जैसे कि एमए, एमएसीडी आदि। जब आप अधिक करते हैं, तो बढ़ते रुझान को समझें, और जब आप कम करते हैं, तो गिरावट को समझें, जिससे रिवर्स ऑपरेशन के नुकसान को कम किया जा सके।
उच्च स्तरीय समय फ्रेम के तकनीकी संकेतकों को एकीकृत निर्णय के लिए पेश किया जा सकता है। उदाहरण के लिए, 86400 स्तर पर एमए लाइन की स्थिति समग्र प्रवृत्ति की दिशा का निर्णय ले सकती है, और समय के चार्ट पर ऑपरेशन सिग्नल की पुष्टि कर सकती है।
मशीन लर्निंग जैसे साधनों के माध्यम से, ऐतिहासिक डेटा के आधार पर पैरामीटर को स्वचालित रूप से अनुकूलित किया जा सकता है, और बाजार के वातावरण में परिवर्तन के लिए पैरामीटर को वास्तविक समय में समायोजित किया जा सकता है। यह रणनीति को अधिक अनुकूली और स्थिर बना सकता है।
चट्टान की तरह मजबूत समुद्र तट रणनीति क्लासिक समुद्र तट व्यापार के नियमों का पालन करती है, कीमत में तोड़ने के लिए प्रवेश और स्टॉप लॉस ट्रैक स्टॉप लॉस आउट, सख्ती से नियंत्रण जोखिम, लंबे समय तक स्थिर संचालन कर सकते हैं और उत्कृष्ट प्रतिरोध गिरावट वापस लेने की क्षमता है। हालांकि अभी भी कुछ ब्रेक विफलता, पैरामीटर विफलता और अन्य जोखिमों से सावधान रहने की आवश्यकता है, लेकिन प्रवृत्ति निर्णय, समय सीमा निर्णय, गतिशील पैरामीटर अनुकूलन और अन्य साधनों को पेश करके इन जोखिमों को प्रभावी ढंग से कम किया जा सकता है, जिससे रणनीति की स्थिर संचालन क्षमता में काफी वृद्धि हो सकती है। कुल मिलाकर, इस रणनीति में बहुत ही उत्कृष्ट स्थिरता और प्रतिरोध की क्षमता है, और यह विश्वसनीय और मूल्यवान है।
/*backtest
start: 2024-01-18 00:00:00
end: 2024-02-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Real Turtle", shorttitle = "Real Turtle", overlay=true, pyramiding=1, default_qty_type= strategy.percent_of_equity,calc_on_order_fills=false, slippage=25,commission_type=strategy.commission.percent,commission_value=0.075)
//////////////////////////////////////////////////////////////////////
// Testing Start dates
testStartYear = input(2016, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
// A switch to control background coloring of the test period
// Use if using a specific date range
testPeriodBackground = input(title="Color Background?", type=bool, defval=false)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
testPeriod() => true
// Component Code Stop
//////////////////////////////////////////////////////////////////////
//How many candles we want to determine our position entry
enterTrade = input(20, minval=1, title="Entry Channel Length")
//How many candles we want ot determine our position exit
exitTrade = input(10, minval=1, title="Exit Channel Length")
//True Range EMA Length
trLength = input(13, minval=1, title="True Range Length")
//Go all in on every trade
allIn = input(false, title="Use whole position on every trade")
dRisk = input(2, "Use Desired Risk %")
//How much of emaTR to use for TS offset
multiEmaTR = input(2, "Desired multiple of ema Tr (N)")
//absolute value (highest high of of this many candles - lowest high of this many candles) . This is used if we want to change our timeframe to a higher timeframe otherwise just works like grabbing high o r low of a candle
//True range is calculated as just high - low. Technically this should be a little more complicated but with 24/7 nature of crypto markets high-low is fine.
trueRange = max(high - low, max(high - close[1], close[1] - low))
//Creates an EMA of the true range by our custom length
emaTR = ema(trueRange, trLength)
//Highest high of how many candles back we want to look as specified in entry channel for long
longEntry = highest(enterTrade)
//loweest low of how many candles back we want to look as specified in exit channel for long
exitLong = lowest(exitTrade)
//lowest low of how many candles back want to look as specified in entry channel for short
shortEntry = lowest(enterTrade)
//lowest low of how many candles back want to look as specified in exit channel for short
exitShort = highest(exitTrade)
//plots the longEntry as a green line
plot(longEntry[1], title="Long Entry",color=green)
//plots the short entry as a purple line
plot(shortEntry[1], title="Short Entry",color=purple)
howFar = barssince(strategy.position_size == 0)
actualLExit = strategy.position_size > 0 ? strategy.position_avg_price - (emaTR[howFar] * multiEmaTR) : longEntry - (emaTR * multiEmaTR)
actualLExit2 = actualLExit > exitLong ? actualLExit : exitLong
actualSExit = strategy.position_size < 0 ? strategy.position_avg_price + (emaTR[howFar] * multiEmaTR) : shortEntry + (emaTR * multiEmaTR)
actualSExit2 = actualSExit < exitShort ? actualSExit : exitShort
//plots the long exit as a red line
plot(actualLExit2[1], title="Long Exit",color=red)
//plots the short exit as a blue line
plot(actualSExit2[1], title="Short Exit",color=yellow)
//Stop loss in ticks
SLLong =(emaTR * multiEmaTR)/ syminfo.mintick
SLShort = (emaTR * multiEmaTR)/ syminfo.mintick
//Calculate our potential loss as a whole percentage number. Example 1 instead of 0.01 for 1% loss. We have to convert back from ticks to whole value, then divided by close
PLLong = ((SLLong * syminfo.mintick) * 100) / longEntry
PLShort = ((SLShort * syminfo.mintick) * 100) / shortEntry
//Calculate our risk by taking our desired risk / potential loss. Then multiple by our equity to get position size. we divide by close because we are using percentage size of equity for quantity in this script as not actual size.
//we then floor the value. which is just to say we round down so instead of say 201.54 we would just input 201 as TV only supports whole integers for quantity.
qtyLong = floor(((dRisk / PLLong) * strategy.equity) /longEntry )
qtyShort = floor(((dRisk / PLShort) * strategy.equity) /shortEntry )
qtyLong2 = allIn ? 100 : qtyLong
qtyShort2 = allIn ? 100 : qtyShort
//Only open long or short positions if we are inside the test period specified earlier
if testPeriod()
//Open a stop market order at our long entry price and keep it there at the quantity specified. This order is updated/changed on each new candlestick until a position is opened
strategy.entry("long", strategy.long, stop = longEntry, qty = qtyLong2)
//sets up or stop loss order by price specified in our actualLExit2 variable
strategy.exit("Stoploss-Long", "long", stop=actualLExit2)
//Open a stop market order at our short entry price and keep it there at the quantity specified. This order is updated/changed on each new candlestick until a position is opened
strategy.entry("short", strategy.short, stop = shortEntry, qty = qtyShort2)
//sets up or stop loss order by price specified in our actualLExit2 variable
strategy.exit("Stoploss-Short", "short", stop=actualSExit2)