गतिशील ट्रेलिंग स्टॉप लॉस रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-21 15:58:54
टैगः

img

अवलोकन

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

रणनीति तर्क

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

  2. जब ऊपर की ओर रुझान हो, तो 15 मिनट की मोमबत्ती का समापन मूल्य पिछली 15 मिनट की मोमबत्ती की उच्चतम कीमत से अधिक होने पर लंबा हो। जब नीचे की ओर रुझान हो, तब 15 मिनट की मोमबत्ती का समापन मूल्य पिछली 15 मिनट की मोमबत्ती की सबसे कम कीमत से कम होने पर छोटा हो।

  3. पिछले 15 मिनट के कैंडलस्टिक की सबसे कम कीमत को लंबे समय तक जाने के बाद स्टॉप लॉस मूल्य के रूप में सेट करें. पिछले 15 मिनट के कैंडलस्टिक की उच्चतम कीमत को शॉर्ट जाने के बाद स्टॉप लॉस मूल्य के रूप में सेट करें.

  4. जब 15 मिनट का कैंडलस्टिक फिर से एक नया उच्च या निम्न बनाता है, तो स्टॉप लॉस मूल्य को तदनुसार समायोजित करें। लंबे समय तक जाने के बाद नए निम्न स्तर पर समायोजित करें। शॉर्ट जाने के बाद नए उच्च स्तर पर समायोजित करें। यह गतिशील ट्रेलिंग स्टॉप लॉस का एहसास करता है।

लाभ विश्लेषण

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

विशेष रूप से लाभों में निम्नलिखित शामिल हैंः

  1. रुझान संचालन आधारित निर्णय समय पर बाजार के रुझानों को निर्धारित कर सकते हैं और सही ट्रेडिंग दिशा चुन सकते हैं।

  2. 15 मिनट की समय सीमा व्यापार अधिक अवसरों को पकड़ने के लिए लगातार प्रवेश और निकास की अनुमति देता है।

  3. नए उच्च या निम्न स्तरों के आधार पर गतिशील स्टॉप लॉस समायोजन स्टॉप लॉस के प्रभावित होने के जोखिम को कम करता है।

  4. उचित स्टॉप लॉस पोजिशनिंग से अनावश्यक नुकसान से काफी हद तक बचा जा सकता है।

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

इस रणनीति का मुख्य जोखिम रुझान के आकलन में त्रुटियों से आता है। विशिष्ट जोखिमों में शामिल हैंः

  1. गलत दैनिक रुझान निर्णय से गलत व्यापार दिशा हो सकती है।

  2. कीमतें अल्पकालिक में भारी उतार-चढ़ाव कर सकती हैं, जिससे 15 मिनट के स्टॉप लॉस की संभावना बढ़ जाती है।

  3. रुझान उलटने के बिंदुओं की गलत पहचान होने से नुकसान हो सकता है।

संबंधित समाधान:

  1. एक समय सीमा पर निर्भरता से बचने के लिए व्यापक निर्णयों के लिए अन्य समय सीमाओं के संकेतक जोड़ें।

  2. बाजार की अस्थिरता का आकलन करें और उच्च अस्थिरता के दौरान स्टॉप लॉस रेंज को उचित रूप से कम करें।

  3. रुझान उलटने से पहले समय पर पदों को बंद करने के लिए रुझान उलटने के बिंदु की पहचान तंत्र जोड़ें।

अनुकूलन दिशाएँ

अभी भी आगे के अनुकूलन के लिए जगह हैः

  1. रुझान कैप्चर को अनुकूलित करने के लिए अन्य समय-सीमा संकेतक जोड़ें।

  2. इष्टतम मापदंडों को खोजने के लिए विभिन्न स्टॉप लॉस अनुपात सेटिंग्स का परीक्षण करें।

  3. वॉल्यूम विचलन से त्रुटियों से बचने के लिए वॉल्यूम संकेतक जोड़ें।

  4. बाहर निकलने के बिंदुओं को अनुकूलित करने के लिए रुझान उलटने के तंत्र जोड़ें।

  5. स्टॉप लॉस के जोखिम को और कम करने के लिए ट्रेलिंग स्टॉप मूल्य अंतराल को चौड़ा करने का आकलन करें।

सारांश

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


/*backtest
start: 2023-12-13 00:00:00
end: 2023-12-15 02:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Anand's Strategy", overlay=true)

// Get the high and low of the previous day's candle
prev_high = request.security(syminfo.tickerid, "D", high[2])
prev_low = request.security(syminfo.tickerid, "D", low[2])

// var float prev_high = na
// var float prev_low = na

prev_close = request.security(syminfo.tickerid, "D", close[1])


getDayIndexedHighLow(_bar) =>
    _indexed_high = request.security(syminfo.tickerid, "D", high[_bar])
    _indexed_low = request.security(syminfo.tickerid, "D", low[_bar])
    [_indexed_high, _indexed_low]

var index = 2

while index >= 0
    [indexed_high_D, indexed_low_D] =  getDayIndexedHighLow(index)
  
    if prev_close > indexed_high_D or prev_close < indexed_low_D
        prev_high := indexed_high_D
        prev_low := indexed_low_D
        break
    // Decrease the index to move to the previous 15-minute candle
    index := index - 1


// Determine the trade direction based on the candle criterion
trade_direction = prev_close > prev_high ? 1 : (prev_close < prev_low ? -1 : 0)

// Get the current close from 15-minute timeframe
current_close = request.security(syminfo.tickerid, "15", close[1])
prev_high_15m = request.security(syminfo.tickerid, "15", high[2])
prev_low_15m = request.security(syminfo.tickerid, "15", low[2])

// var float prev_high_15m = na
// var float prev_low_15m = na

getIndexedHighLow(_bar) =>
    _indexed_high = request.security(syminfo.tickerid, "15", high[_bar])
    _indexed_low = request.security(syminfo.tickerid, "15", low[_bar])
    [_indexed_high, _indexed_low]


// Loop through previous 15-minute candles until the condition is met
var  i = 2

while i >= 2
    [indexed_high_15m, indexed_low_15m] =  getIndexedHighLow(i)
  
    if current_close > indexed_high_15m or current_close < indexed_low_15m
        prev_high_15m := indexed_high_15m
        prev_low_15m := indexed_low_15m
        break
    // Decrease the index to move to the previous 15-minute candle
    i := i - 1



buy_condition = trade_direction == 1 and current_close > prev_high_15m
stop_loss_buy = prev_low_15m

// Sell Trade Criteria in Negative Trend
sell_condition = trade_direction == -1 and current_close < prev_low_15m
stop_loss_sell = prev_high_15m


// Trailing Stop Loss for Buy Trade
// Custom Trailing Stop Function for Buy Trade
var float trail_stop_buy = na
trailing_buy_condition = buy_condition and current_close > trail_stop_buy
if trailing_buy_condition
    trail_stop_buy := current_close

// Custom Trailing Stop Function for Sell Trade
var float trail_stop_sell = na
trailing_sell_condition = sell_condition and current_close < trail_stop_sell
if trailing_sell_condition
    trail_stop_sell := current_close

// Take Buy Trade with Stop Loss
if (buy_condition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Buy Stop Loss", "Buy", stop=stop_loss_buy)

// Take Sell Trade with Stop Loss
if (sell_condition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Sell Stop Loss", "Sell", stop=stop_loss_sell)

// Set the background color based on the trade direction
bgcolor(trade_direction == 1 ? color.new(color.green, 90) : trade_direction == -1 ? color.new(color.red, 90) : na)

अधिक