संसाधन लोड हो रहा है... लोड करना...

वैकल्पिक व्यापार विचार - के लाइन क्षेत्र व्यापार रणनीति

लेखक:आविष्कारक मात्रा - छोटे सपने, बनाया गयाः 2023-11-03 17:12:42, अद्यतन किया गयाः 2023-11-03 17:35:03

img

इस लेख में, हम इस विचार और इस स्क्रिप्ट को लागू करने का प्रयास करते हैं।

K-लाइन क्षेत्र की रणनीति के मुख्य विचार

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

के लाइन क्षेत्र की रणनीति के सिद्धांत

K-लाइन का क्षेत्रफल मूल्य के K-लाइन और समतल रेखा के बीच का क्षेत्रफल है, जिसे प्रत्येक बार के समापन मूल्य को औसत मूल्य से घटाकर और फिर जोड़कर गणना की जाती है। जब मूल्य में वृद्धि की प्रवृत्ति बड़ी होती है, तो K-लाइन का क्षेत्रफल लंबे समय तक बढ़ता है, जबकि जब उथले बाजार या उथले के बाद पलटाव होता है, तो K-लाइन का क्षेत्रफल छोटा होता है।

इस रणनीति के थ्रेशोल्ड और केडीजे सूचकांक के सेटअप को विशिष्ट परिस्थितियों और जरूरतों के अनुसार समायोजित किया जा सकता है ताकि रणनीति की सटीकता को बढ़ाया जा सके।

के लाइन क्षेत्र की रणनीति के फायदे

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

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

के-लाइन क्षेत्र की रणनीति के जोखिम

हालांकि, के-लाइन क्षेत्र की रणनीति के कुछ फायदे हैं, लेकिन इसके कुछ जोखिम भी हैं, जिनमें शामिल हैंः

  • थ्रेशोल्ड सेटिंग्स को कुछ अनुभव और समायोजन की आवश्यकता हो सकती है, जो गलत तरीके से सेट होने पर बाजार की चाल को गलत तरीके से समझने का कारण बन सकती है।
  • केडीजे सूचकांक की सटीकता बाजार में उतार-चढ़ाव और शोर से प्रभावित होती है और झूठे संकेत हो सकते हैं।
  • रणनीतियों का प्रदर्शन विभिन्न बाजार स्थितियों के अनुसार बदल सकता है और निरंतर अनुकूलन और समायोजन की आवश्यकता होती है।

K-लाइन क्षेत्र रणनीति का अनुकूलन दिशा

के लाइन क्षेत्र रणनीति को अनुकूलित करने के लिए, निम्नलिखित दिशाओं पर विचार किया जा सकता हैः

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

जावास्क्रिप्ट भाषा का उपयोग करके इस नीति को लागू करें

  • K रेखा क्षेत्रफल की गणना करें

  • एक बार फिर से, हम एक बार फिर से शुरू कर रहे हैं।

    (1) गिरावट की प्रवृत्ति के साथ K रेखा के क्षेत्रफल में वृद्धि हुई है जब तक कि यह सीमा तक नहीं पहुंच जाता है।

    (2) केडीजे का मान 80 से अधिक है

  • खाली जगह के लिए संकेतः

    (1) ऊपर की ओर बढ़ रहे कण K रेखा के क्षेत्र कणों का थ्रेशोल्ड तक पहुंचने से पहले ही गठन किया जा सकता है

    (2) KDJ का मान 20 से कम है

  • बहुआयामी/अधूरे पदार्पणः एटीआर ने रोक-तोड़ का ट्रैक रखा

कोड कार्यान्वयन

// 参数
var maPeriod = 30
var threshold = 50000
var amount = 0.1

// 全局变量
let c = KLineChart({})
let openPrice = 0
let tradeState = "NULL"  // NULL BUY SELL

function calculateKLineArea(r, ma) {
    var lastCrossUpIndex = null
    var lastCrossDownIndex = null
    for (var i = r.length - 1 ; i >= 0 ; i--) {
        if (ma[i] !== null && r[i].Open < ma[i] && r[i].Close > ma[i]) {
            lastCrossUpIndex = i
            break
        } else if (ma[i] !== null && r[i].Open > ma[i] && r[i].Close < ma[i]) {
            lastCrossDownIndex = i
            break
        }

        if (i >= 1 && ma[i] !== null && ma[i - 1] !== null && r[i - 1].Close < ma[i - 1] && r[i].Close > ma[i]) {
            lastCrossUpIndex = i
            break
        } else if (i >= 1 && ma[i] !== null && ma[i - 1] !== null && r[i - 1].Close > ma[i - 1] && r[i].Close < ma[i]) {
            lastCrossDownIndex = i
            break
        }
    }

    var area = 0
    if (lastCrossDownIndex !== null) {
        for (var i = r.length - 1 ; i >= lastCrossDownIndex ; i--) {
            area -= Math.abs(r[i].Close - ma[i])
        }
    } else if (lastCrossUpIndex !== null) {
        for (var i = r.length - 1 ; i >= lastCrossUpIndex ; i--) {
            area += Math.abs(r[i].Close - ma[i])
        }
    }

    return [area, lastCrossUpIndex, lastCrossDownIndex]
}

function onTick() {
    var r = _C(exchange.GetRecords)
    if (r.length < maPeriod) {
        LogStatus(_D(), "K线数量不足")
        return 
    }
    var ma = TA.MA(r, maPeriod)
    var atr = TA.ATR(r)
    var kdj = TA.KDJ(r)
    var lineK = kdj[0]
    var lineD = kdj[1]
    var lineJ = kdj[2]
    var areaInfo = calculateKLineArea(r, ma)
    var area = _N(areaInfo[0], 0)
    var lastCrossUpIndex = areaInfo[1]
    var lastCrossDownIndex = areaInfo[2]
    
    r.forEach(function(bar, index) {
        c.begin(bar)
        c.plotcandle(bar.Open, bar.High, bar.Low, bar.Close, {overlay: true})
        let maLine = c.plot(ma[index], "ma", {overlay: true})
        let close = c.plot(bar.Close, 'close', {overlay: true})
        c.fill(maLine, close, {color: bar.Close > ma[index] ? 'rgba(255, 0, 0, 0.1)' : 'rgba(0, 255, 0, 0.1)'})
        if (lastCrossUpIndex !== null) {
            c.plotchar(bar.Time, {char: '$:' + area, overlay: true})
        } else if (lastCrossDownIndex !== null) {
            c.plotchar(bar.Time, {char: '$:' + area, overlay: true})
        }
        c.plot(lineK[index], "K")
        c.plot(lineD[index], "D")
        c.plot(lineJ[index], "J")

        c.close()
    })
    
    if (tradeState == "NULL" && area < -threshold && lineK[lineK.length - 1] > 70) {
        // long
        let tradeInfo = $.Buy(amount)
        if (tradeInfo) {
            openPrice = tradeInfo.price
            tradeState = "BUY"
        }
    } else if (tradeState == "NULL" && area > threshold && lineK[lineK.length - 1] < 30) {
        // short
        let tradeInfo = $.Sell(amount)
        if (tradeInfo) {
            openPrice = tradeInfo.price
            tradeState = "SELL"
        }
    }
    
    let stopBase = tradeState == "BUY" ? Math.max(openPrice, r[r.length - 2].Close) : Math.min(openPrice, r[r.length - 2].Close)
    if (tradeState == "BUY" && r[r.length - 1].Close < stopBase - atr[atr.length - 2]) {
        // cover long
        let tradeInfo = $.Sell(amount)
        if (tradeInfo) {
            tradeState = "NULL"
            openPrice = 0
        }        
    } else if (tradeState == "SELL" && r[r.length - 1].Close > stopBase + atr[atr.length - 2]) {
        // cover short 
        let tradeInfo = $.Buy(amount)
        if (tradeInfo) {
            tradeState = "NULL"
            openPrice = 0
        }        
    }

    LogStatus(_D(), "area:", area, ", lineK[lineK.length - 2]:", lineK[lineK.length - 2])
}


function main() {    
    if (exchange.GetName().includes("_Futures")) {
        throw "not support Futures"
    }
    while (true) {
        onTick()
        Sleep(1000)
    }
}

इस तरह की रणनीति का तर्क बहुत सरल हैः

1. सबसे पहले, कुछ वैश्विक चर और पैरामीटर परिभाषित किए गए हैं, जिनमें शामिल हैंः

रणनीति पैरामीटर

  • maPeriod: चलती औसत का चक्र.
  • threshold: खरीद या बिक्री के समय का निर्धारण करने के लिए उपयोग किया जाता है।
  • amount: प्रत्येक लेन-देन की संख्या।

वैश्विक चर

  • c: K-लाइन चार्ट ऑब्जेक्ट, चार्ट बनाने के लिए प्रयोग किया जाता है.
  • openPrice: स्टॉक की शुरुआती कीमतों को रिकॉर्ड करें.
  • tradeState: लेनदेन की स्थिति दर्ज करता है, जो "NULL" (खाली स्टॉक) BUY (खरीद) या "SELL" (बिक्री) हो सकता है।

गणना फ़ंक्शन

  • calculateKLineArea: यह फ़ंक्शन K-लाइन चार्ट पर किसी समय के दौरान मूल्य और चलती औसत के बीच के क्षेत्र को गणना करने के लिए उपयोग किया जाता है और क्षेत्र के मान, अंतिम क्रॉस-ऑन और अंतिम क्रॉस-डाउन K-लाइन सूचकांक को लौटाता है। इन मानों का उपयोग बाद के निर्णयों में खरीदारी और बिक्री के समय का निर्धारण करने के लिए किया जाता है।

मुख्य चक्र फलन

  • onTick Function: यह मुख्य नीति निष्पादन फ़ंक्शन है, और इसके भीतर के कार्य हैंः

    a. नवीनतम के-लाइन डेटा प्राप्त करें और सुनिश्चित करें कि के-लाइनों की संख्या maPeriod से कम नहीं है, अन्यथा स्थिति रिकॉर्ड करें और वापस आएं।

    b. गतिशील औसत ma और ATR संकेतक atr, और KDJ संकेतक की गणना करें।

    c. areaInfo से क्षेत्र की जानकारी प्राप्त करें, अंतिम क्रॉसिंग में K स्ट्रिंग सूचकांक और अंतिम क्रॉसिंग में K स्ट्रिंग सूचकांक।

    d. K रेखा और संकेतक रेखाओं को K रेखा चार्ट ऑब्जेक्ट c का उपयोग करके चित्रित करें, जबकि मूल्य और चलती औसत के संबंध के आधार पर विभिन्न रंगों को भरें।

    e. शर्तों के आधार पर खरीदारी और बिक्री के समय का निर्धारणः

    यदि tradeState एक NULL है, और इसका क्षेत्रफल -threshold से छोटा है और KDJ का K-लाइन मान 70 से बड़ा है, तो खरीद ऑपरेशन करें। यदि tradeState एक NULL तालिका है, और क्षेत्र थ्रेसहोल्ड से बड़ा है और KDJ का K-लाइन मान 30 से कम है, तो बेचने का कार्य करें। f. स्टॉप लॉस और स्टॉप कैप की शर्तें सेट करें, और यदि शर्तें पूरी हो जाती हैं तो ब्रेकडाउनः

    यदि खरीद की स्थिति है, तो जब कीमत पिछले ट्रेडिंग दिन के समापन मूल्य से कम हो जाती है, तो पिछले दिन के एटीआर को घटा दिया जाता है। यदि बेचने की स्थिति है, तो जब कीमत पिछले ट्रेडिंग दिन के समापन मूल्य और पिछले दिन के एटीआर से अधिक हो, तो समतल हो जाता है। main फ़ंक्शनः यह मुख्य निष्पादन इनपुट है, जो जांचता है कि क्या एक्सचेंज नाम में onTick_Futures टैब शामिल है, यदि शामिल है तो असामान्यताओं को फेंक दें, अन्यथा एक अनंत चक्र में जाएं, प्रत्येक चक्र में onTick फ़ंक्शन निष्पादित करें और 1 सेकंड के लिए सोएं।

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

在FMZ.COM上使用JavaScript语言没有用多少行代码,很简单的就实现了这个模型。并且使用KLineChart函数很容易实现了K线面积的图形表示。策略设计用于加密货币现货市场,使用了「数字货币现货交易类库」模板,使用模板封装的函数下单,也是非常简单易用、易懂。

रणनीतिक पुनरीक्षण

img

img

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

img

इस रणनीति के माध्यम से, हमने एक तुलनात्मक रूप से वैकल्पिक व्यापारिक विचार सीखने के अलावा, ग्राफिंग कैसे करें; K रेखाओं और समतल रेखाओं के आसपास के क्षेत्र को इंगित करें; KDJ संकेतक कैसे बनाएं आदि।

सारांश

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


अधिक