समय-चरणीय पिरामिड सरल क्वांट रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-27 17:39:40
टैगः

img

अवलोकन

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

सिद्धांत

यह रणनीति तीन प्रमुख तर्कों पर आधारित हैः

  1. समय-चरणीय पिरामिड

    उपयोग करेंsessionTimeएक दैनिक व्यापार समय खिड़की सेट करने के लिए पैरामीटर, इस खिड़की के दौरान खुले बाजार पर पिरामिड लंबी स्थिति कदम से कदम है।

  2. व्यक्तिगत लाभ लेने और हानि रोकने के लिए

    लाभ लेने के स्तर के अनुरूप सेट करेंtakeProfitऔर स्टॉप लॉस स्तरstopLossप्रत्येक खुली स्थिति के लिए, ताकि प्रत्येक स्थिति के पास बैच निष्पादन को महसूस करने के लिए अपना लाभ लेने और हानि रोकने का तर्क हो।

  3. समय विंडो समाप्त होने पर सभी पदों को बंद करें

    विंडो के अंत में समय विंडो के दौरान खोले गए सभी पदों को बंद करना चुनें.

लाभ

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

  1. जोखिम विविधीकरण: एकल स्थिति हानि को प्रभावी ढंग से नियंत्रित करने के लिए विभिन्न पदों पर समान रूप से पूंजी आवंटित करें।

  2. बैच लाभ लेने और हानि को रोकने के लिए। विभिन्न पदों में बड़े पैमाने पर हानि को रोकने से बचने के लिए स्वतंत्र तर्क हैं।

  3. लचीले विन्यास. अनुकूलन योग्य मापदंड जैसे अधिकतम पिरामिडिंग समय, दैनिक समय खिड़की, लाभ लेने/हटाने के अनुपात आदि।

  4. सरल और स्पष्ट तर्क, समझने में आसान।

जोखिम

कुछ जोखिम भी हैं:

  1. यदि सभी पद लाभ लेने से पहले स्टॉप लॉस को ट्रिगर करते हैं तो पूर्ण पूंजी का जोखिम फंस जाता है। स्टॉप लॉस अनुपात को उचित रूप से विन्यस्त करके इससे बचा जा सकता है।

  2. प्रति दिन कुल खुली स्थिति पूंजी की कोई सीमा नहीं। असामान्य बाजार स्थितियों का सामना करने पर बहुत अधिक स्थिति पूंजी सहनशीलता से अधिक हो सकती है। प्रति दिन अधिकतम कुल स्थिति पूंजी जोड़ने पर विचार करें।

  3. गलत समय खिड़की विन्यास से ट्रेडिंग के अवसर चूक सकते हैं। ट्रेडिंग परिसंपत्तियों की सक्रिय ट्रेडिंग समय खिड़की का संदर्भ लेने का सुझाव दें।

सुधार

इस रणनीति को निम्नलिखित पहलुओं से बढ़ाया जा सकता हैः

  1. तकनीकी संकेतकों के आधार पर खुली स्थिति की स्थितियों को जोड़ें ताकि लापरवाह पिरामिडिंग से बचा जा सके।

  2. पूंजी सहनशीलता से अधिक होने से बचने के लिए दैनिक कुल खुली स्थिति पूंजी सीमा जोड़ें।

  3. अलग-अलग पदों के लिए अलग-अलग लाभ लेने और हानि रोकने के अनुपात निर्धारित करें।

  4. पूंजी पूल शेष के साथ स्थिति राशि को जोड़ने के लिए तर्क जोड़ें।

निष्कर्ष

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


/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 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/
// © A3Sh

//@version=5
strategy("Simple_Pyramiding", overlay=true, pyramiding=99, initial_capital=500, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.075, close_entries_rule='FIFO')

// Study of a Simple DCA strategy that opens a position every day at a specified time.
// A position is opened at the start time of the Timeframe.
// Positions exit individually when the take profit level is triggered.
// Option to activate Stop Loss and/or Position exit at the end of the Timeframe


// Backtest Window
start_time   = input(defval=timestamp("01 April 2021 20:00"), group = "Backtest Window", title="Start Time")
end_time     = input(defval=timestamp("01 Aug 2022 20:00"),  group = "Backtest Window", title="End Time")
window() => true


// Inputs
posCount     = input.int    (6,           group = "Risk",         title = "Max Amount of DCA Entries")
takeProfit   = input.float  (2.5,         group = "Risk",         title = "Take Profit %")
slSwitch     = input.bool   (true,        group = "Risk",         title = "Activate Stop Loss")
stopLoss     = input.float  (9,           group = "Risk",         title = "Stop Loss %")
sessionTime =  input("1800-1700", group = "DCA Settings", title = "DCA Order Timeframe", tooltip="Open order at the start/If ativated, close order at the end")
exitDCA     =  input.bool   (false,       group = "DCA Settings", title = "Exit DCA Entry at end of Timeframe")


// Order size based on max amount of pyramid orders
q = (strategy.equity  / posCount) / open


// Timeframe for opening and closing a DCA order
// example taken from https://stackoverflow.com/questions/69230164/pinescript-basic-question-open-a-trade-at-a-set-time-each-day
t       = time("D", sessionTime)
isStart = na(t[1]) and not na(t) or t[1] < t
isEnd   = na(t) and not na(t[1]) or t[1] < t
bgcolor(t ? color.new(color.blue,95) : na, title = " TimeFrame Color")


// Create DCA Entries
entry_price = 0.0
if isStart and window() 
    for i = 0 to strategy.opentrades
        if strategy.opentrades == i
            entry_price := close
            entry_id = "PE_" + str.tostring(i + 1) 
            strategy.entry(id = entry_id, direction=strategy.long, limit=entry_price, qty=q)
        if strategy.opentrades == posCount
            break
            
 
//Exit DCA Entries when take profit or stop loss is triggered
if strategy.opentrades > 0 and window() 
    for i = 0 to strategy.opentrades 
        exit_from = "PE_" + str.tostring(i + 1)
        exit_id = "Exit_" + str.tostring(i + 1)
        strategy.exit(id= exit_id, from_entry= exit_from, profit = close * takeProfit / 100 / syminfo.mintick, loss = slSwitch ? close * stopLoss /100 / syminfo.mintick :na)
        

//Exit DCA Entries at end of DCA Timeframe
if strategy.opentrades > 0 and exitDCA and isEnd and window() 
    for i = 0 to strategy.opentrades 
        exit_from = "PE_" + str.tostring(i + 1)
        exit_id = "Exit_" + str.tostring(i + 1)
        strategy.exit(id= exit_id, from_entry= exit_from, stop = close)




अधिक