बिटकॉइन मल्टी-फैक्टर ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-09-25 18:24:02
टैगः

अवलोकन

यह बिटकॉइन और अन्य क्रिप्टोकरेंसी के 15-मिनट के समय-सीमा व्यापार के लिए डिज़ाइन की गई एक व्यापक ट्रेडिंग रणनीति है। यह खरीद और बिक्री संकेत उत्पन्न करने के लिए कई संकेतकों को जोड़ती है, जिसमें ट्रिपल एक्सपोनेंशियल मूविंग एवरेज (टीईएमए), एवरेज ट्रू रेंज (एटीआर) और हेकिन-अशी मोमबत्तियां शामिल हैं, साथ ही लाभ लेने और स्टॉप लॉस जैसी जोखिम प्रबंधन सुविधाएं हैं।

रणनीति तर्क

इस रणनीति में निम्नलिखित संकेतकों का उपयोग किया गया हैः

  • ट्रिपल एक्सपोनेंशियल मूविंग एवरेज (टीईएमए): क्रमशः उच्च, निम्न और बंद कीमतों के आधार पर विभिन्न लंबाई और स्रोतों की तीन टीईएमए लाइनें।

  • Average True Range (ATR): अस्थिरता को मापने के लिए EMA smoothing के साथ कस्टम ATR गणना।

  • सुपरट्रेंडः ट्रेंड की दिशा निर्धारित करने के लिए एटीआर और गुणक का उपयोग करके गणना की जाती है।

  • सरल चलती औसत (एसएमए): इसके मूल्यों को चिकना करने के लिए छोटी टीईएमए रेखा पर लागू किया जाता है।

  • हेकिन-अशी क्लोजः प्रवृत्ति की अतिरिक्त पुष्टि के लिए प्रयोग किया जाता है।

लंबी प्रविष्टि संकेत तब ट्रिगर किया जाता है जब शॉर्ट TEMA दोनों लंबी TEMA लाइनों से ऊपर होता है, सुपरट्रेंड तेजी है, शॉर्ट TEMA अपने SMA से ऊपर होता है, और हेकिन-अशी बंद पिछले बंद से अधिक होता है।

संक्षिप्त प्रवेश सिग्नल तब ट्रिगर होता है जब विपरीत शर्तें पूरी होती हैं।

लाभ लेने और स्टॉप लॉस को प्रवेश मूल्य का 1% और 3% निर्धारित किया जाता है। कमीशन भी माना जाता है।

लाभ विश्लेषण

  • कई कारक सटीकता में सुधार करते हैं प्रवृत्ति, अस्थिरता और पैटर्न संकेतकों का संयोजन सटीकता में सुधार कर सकता है और झूठे संकेतों से बचा जा सकता है।

  • उचित स्टॉप लॉस/टेक प्रॉफिट नियंत्रण जोखिम अच्छी तरह से सेट स्टॉप लॉस और ले लाभ स्तर लाभ में लॉक और हानि को सीमित।

  • बड़े पैरामीटर अनुकूलन स्थान सूचक मापदंडों को बदलते बाजारों के अनुकूल करने के लिए लचीले ढंग से समायोजित किया जा सकता है।

  • कमीशन के साथ अधिक यथार्थवादी आयोग के अनुसार बैकटेस्ट के परिणाम लाइव प्रदर्शन के करीब आते हैं।

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

  • अति अनुकूलन से गलत आकलन का जोखिम बहुत अधिक संकेतक संयोजन भी गलत आकलन का कारण बन सकते हैं। प्रभावशीलता का मूल्यांकन करने की आवश्यकता है।

  • अल्पावधि व्यापार के साथ उच्च जोखिम लंबे समय की तुलना में, 15 मिनट अचानक घटनाओं और जोखिमों के प्रति अधिक संवेदनशील है।

  • रणनीति स्थिरता को और अधिक सत्यापित करने की आवश्यकता है विश्वसनीयता सुनिश्चित करने के लिए लंबे इतिहास और बाजारों में अधिक व्यापक परीक्षण की आवश्यकता है।

  • कई मापदंडों के साथ लंबे समय तक अनुकूलन कई पैरामीटर जोड़े जाने से सभी पैरामीटर संयोजनों के अनुकूलन के लिए लंबी प्रक्रिया होती है।

सुधार की दिशाएँ

  • प्रत्येक संकेतक के वास्तविक प्रभाव का आकलन करें प्रत्येक संकेतक के वास्तविक वृद्धिशील लाभ को सत्यापित करने के लिए बैकटेस्ट, अतिरेक से बचें।

  • स्थिरता को अनुकूलित और परीक्षण करें स्थिरता सुनिश्चित करने के लिए अधिक बाजारों में परीक्षण अनुकूलन परिणाम।

  • स्टॉप लॉस रणनीतियों को शामिल करें जैसे कि जोखिम को और अधिक नियंत्रित करने के लिए ट्रेलिंग स्टॉप, ब्रैकेट ऑर्डर स्टॉप।

  • अधिक लागत कारकों पर विचार करें जैसे कि लाइव प्रदर्शन के करीब बैकटेस्ट करने के लिए स्लिप।

सारांश

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


/*backtest
start: 2023-08-25 00:00:00
end: 2023-09-09 00:00:00
period: 10m
basePeriod: 1m
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/
// © deperp
//@version=5
strategy('3kilos', shorttitle='3kilos BTC 15m', overlay=true, initial_capital=100000, max_bars_back=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.07, pyramiding=0)

short = input.int(50, minval=1)
srcShort = input(high, title='TEMA short')

long = input.int(100, minval=1)
srcLong = input(low, title='TEMA long 2')

long2 = input.int(350, minval=1)
srcLong2 = input(close, title='TEMA long 3')

atrLength = input.int(550, title='ATR Length', minval=1)
mult = input.float(3, title="Multiplier", minval=0.5, step=1)

smaPeriod = input.int(100, title="SMA Period", minval=1)

takeProfitPercent = input.float(1, title="Take Profit (%)", minval=0.1) / 100
stopLossPercent = input.float(3, title="Stop Loss (%)", minval=0.1) / 100


tema(src, length) =>
    ema1 = ta.ema(src, length)
    ema2 = ta.ema(ema1, length)
    ema3 = ta.ema(ema2, length)
    3 * (ema1 - ema2) + ema3

tema1 = tema(srcShort, short)
plot(tema1, color=color.new(color.red, 0), linewidth=2)

tema2 = tema(srcLong, long)
plot(tema2, color=color.new(color.blue, 0), linewidth=2)

tema3 = tema(srcLong2, long2)
plot(tema3, color=color.new(color.green, 0), linewidth=2)

// Custom ATR calculation with EMA smoothing
atr_ema(src, length) =>
    trueRange = math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))
    emaTrueRange = ta.ema(trueRange, length)
    emaTrueRange

// Calculate ATR with EMA smoothing
atr = atr_ema(close, atrLength)

// Calculate Supertrend
var float up = na
var float dn = na
var bool uptrend = na
up := na(up[1]) ? hl2 - (mult * atr) : uptrend[1] ? math.max(hl2 - (mult * atr), up[1]) : hl2 - (mult * atr)
dn := na(dn[1]) ? hl2 + (mult * atr) : uptrend[1] ? hl2 + (mult * atr) : math.min(hl2 + (mult * atr), dn[1])
uptrend := na(uptrend[1]) ? true : close[1] > dn[1] ? true : close[1] < up[1] ? false : uptrend[1]

// Calculate SMA
sma = ta.sma(tema1, smaPeriod)

// Heikin-Ashi Close
haTicker = ticker.heikinashi(syminfo.tickerid)
haClose = request.security(haTicker, timeframe.period, close)


// Trend determination using Heikin-Ashi Close
longC = tema1 > tema2 and tema1 > tema3 and uptrend and tema1 > sma and haClose > haClose[1]
shortC = tema1 < tema2 and tema1 < tema3 and not uptrend and tema1 < sma and haClose < haClose[1]


alertlong = longC and not longC[1]
alertshort = shortC and not shortC[1]

useDateFilter = input.bool(true, title="Begin Backtest at Start Date",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2023"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")

inTradeWindow = true

stopLossLevelLong = close - atr * mult
stopLossLevelShort = close + atr * mult
longTakeProfitLevel = close * (1 + takeProfitPercent)
longStopLossLevel = close * (1 - stopLossPercent)
shortTakeProfitLevel = close * (1 - takeProfitPercent)
shortStopLossLevel = close * (1 + stopLossPercent)



if inTradeWindow and longC
    strategy.entry('Long', strategy.long, comment='Long')
    strategy.exit("TP Long", "Long", limit=longTakeProfitLevel, stop=longStopLossLevel, comment="TP/SL Long")

if inTradeWindow and shortC
    strategy.entry('Short', strategy.short, comment='Short')
    strategy.exit("TP Short", "Short", limit=shortTakeProfitLevel, stop=shortStopLossLevel, comment="TP/SL Short")

// Alerts

alertcondition(longC, title='Long', message=' Buy Signal ')
alertcondition(shortC, title='Short', message=' Sell Signal ')

अधिक