माध्य प्रत्यावर्तन और प्रवृत्ति अनुगमन को संयोजित करने वाली मात्रात्मक रणनीति


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

इस आलेख में एक मात्रात्मक ट्रेडिंग रणनीति के बारे में विस्तार से बताया गया है जो एक साथ औसत प्रतिगमन और रुझान ट्रैकिंग तकनीक का उपयोग करता है। यह रणनीति रुझान के संदर्भ में उलटा व्यापार करने और रुझान को ट्रैक करने के लिए समवर्ती व्यापार करने के लिए है।

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

यह रणनीति मुख्य रूप से सरल चलती औसत और आरएसआई संकेतक के माध्यम से व्यापारिक संकेत उत्पन्न करती हैः

  1. जब कीमत 200 चक्रों की चलती औसत से नीचे होती है, तो यह माना जाता है कि यह वर्तमान में नीचे की ओर है;

  2. जब RSI 20 से नीचे होता है, तो प्रतिगामी औसत पर वापसी व्यापार करें;

  3. जब कीमत 200 चक्रों की चलती औसत से अधिक हो, तो यह माना जाता है कि यह वर्तमान में ऊपर की ओर है;

  4. जब कीमतें चलती औसत के ऊपर से गुजरती हैं, तो ट्रेडों को ट्रेंड ट्रैक करें।

  5. ब्लीच स्थिति की शर्त आरएसआई 80 से ऊपर है या कीमत चलती औसत से नीचे है।

  6. ट्रेडिंग पोजीशनों के लिए अलग-अलग सेट करें, जैसे कि औसत वापसी और ट्रेंड ट्रैकिंग।

इस रणनीति में विभिन्न चरणों में उचित परिचालन के लिए औसत प्रतिगमन और रुझान ट्रैकिंग तकनीक का व्यापक उपयोग किया गया है।

  1. रणनीतिक लाभ

इस रणनीति के मुख्य फायदे हैंः

  1. दो अलग-अलग तकनीकों के संयोजन से रणनीतियों की अनुकूलनशीलता में वृद्धि हो सकती है।

  2. ट्रेडिंग के अवसरों को ट्रेंडिंग और अस्थिर बाजारों में पाया जा सकता है।

  3. विभिन्न मोडों में जोखिम को नियंत्रित करने के लिए, स्थिति को समायोजित करें।

  4. पैरामीटर की स्थापना सरल और लागू करने में आसान है।

  5. संभावित जोखिम

लेकिन इस रणनीति के साथ निम्नलिखित जोखिम भी हैं:

  1. चलती औसत और आरएसआई जैसे सूचकांक झूठे ब्रेकआउट के लिए अतिसंवेदनशील हैं।

  2. दोनों लेनदेन मोडों के बीच स्विच करने में देरी हो सकती है;

  3. लंबी अवधि के लाभ के लिए एक निश्चित निकासी की आवश्यकता होती है।

चार बातें, सारांश

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

रणनीति स्रोत कोड
/*backtest
start: 2022-09-07 00:00:00
end: 2023-04-05 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/
// © I11L

//@version=5
strategy("Mean Reversion and Trendfollowing", overlay=true, pyramiding=1, default_qty_value=100000, initial_capital=100000, default_qty_type=strategy.cash, process_orders_on_close=false, calc_on_every_tick=false)

// Input for the starting date
start_date = input(timestamp("1 Feb 2000 12:00"), title="Starting Date")
enableMeanReversion = input.bool(true)
enableTrendfollowing = input.bool(true)
trendPositionFactor = input.float(1)
meanReversionPositionFactor = input.float(0.5)

// Convert the input string to a timestamp
start_ts = timestamp(year(start_date), month(start_date), dayofmonth(start_date), 0, 0)

// Check if the current bar's time is greater than or equal to the start timestamp
start_condition = time >= start_ts

var tradeOrigin = ""

sma200 = ta.sma(close,200)
rsi2 = ta.rsi(close,2)

isMeanReversionMode = close < sma200 or not(enableTrendfollowing)
isTrendfollowingMode = close > sma200 or not(enableMeanReversion)

isRsiBuy = rsi2 < 20 and enableMeanReversion
isRsiClose = rsi2 > 80 and enableMeanReversion

isSmaBuy = close > sma200 and enableTrendfollowing
isSmaClose = close < sma200 * 0.95 and enableTrendfollowing

isBuy = (isMeanReversionMode and isRsiBuy) or (isTrendfollowingMode and isSmaBuy)

positionSizeFactor = isSmaBuy ? trendPositionFactor : meanReversionPositionFactor

// Only execute the strategy after the starting date
if (start_condition)
    if (isBuy and strategy.opentrades == 0)
        tradeOrigin := isSmaBuy ? "SMA" : "RSI"
        strategy.entry("My Long Entry Id", strategy.long, qty=(strategy.equity / close) * positionSizeFactor, comment=str.tostring(positionSizeFactor))
    isClose = tradeOrigin == "SMA" ? isSmaClose : isRsiClose
    if (isClose)
        strategy.exit("Exit", limit = close)

plot(sma200)
plot(sma200 * 0.95, color=color.orange)