फाइबर इंडेक्स पर आधारित मूविंग स्टॉप-लिमिट रणनीति


निर्माण तिथि: 2024-02-06 14:33:06 अंत में संशोधित करें: 2024-02-06 14:33:06
कॉपी: 0 क्लिक्स: 677
1
ध्यान केंद्रित करना
1617
समर्थक

फाइबर इंडेक्स पर आधारित मूविंग स्टॉप-लिमिट रणनीति

अवलोकन

इस रणनीति का उपयोग स्वचालित रूप से स्टॉप और स्टॉप-ऑफ कीमतों को सेट करने के लिए एक फ्लैट-लाइन सूचक का उपयोग करके किया जाता है। यह ट्रेंडिंग स्थितियों में अधिक लाभ प्राप्त करने के साथ-साथ उतार-चढ़ाव की स्थिति में नुकसान को कम करने के लिए भी काम करता है।

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

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

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

ऑर्डर देने के बाद, रणनीति नवीनतम स्टॉप मूल्य को ट्रैक करना जारी रखती है। जब एक कम स्टॉप होता है, तो रणनीति मूल कमीशन को रद्द कर देती है, फिर से ऑर्डर करती है, और एक चलती रोक को लागू करती है। जब कीमत बढ़ जाती है तो यह स्टॉप मूल्य को तोड़ देती है।

श्रेष्ठता विश्लेषण

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

  1. रुझान में अधिक लाभ प्राप्त करने में सक्षम। औसत प्रवेश मूल्य के आधार पर स्टॉप सेटिंग्स को कॉन्फ़िगर किया गया है, जिससे आप रुझान में अधिकतम भाग ले सकते हैं और अधिक लाभ प्राप्त कर सकते हैं।

  2. जब कीमतें फिर से निचले स्तर तक पहुंचती हैं, तो नुकसान को समय पर रोक दिया जाता है, जिससे कि आप झटके में फंसने से बच सकें।

  3. स्टॉकिंग का समर्थन करता है. स्टॉकिंग सेटिंग्स को कॉन्फ़िगर किया गया है, जब कीमतें एक निश्चित सीमा तक गिरती हैं, तो स्टॉकिंग को बढ़ाया जाता है, जिससे औसत स्टॉकिंग लागत कम हो जाती है.

  4. आसान ऑपरेशन. केवल एक अच्छी तरह से कॉन्फ़िगर किया गया सील और स्टॉप अनुपात की आवश्यकता होती है, और पूरे लेनदेन को मैन्युअल रूप से पूरा करने की आवश्यकता नहीं होती है।

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

इस रणनीति में कुछ जोखिम भी हैं, जो मुख्य रूप से निम्नलिखित पर केंद्रित हैंः

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

  2. कोई स्टॉप लॉस सेटिंग नहीं। अधिक लाभ के लिए, रणनीति में कोई स्टॉप लॉस सेटिंग नहीं है। यदि कोई महत्वपूर्ण घटना घटती है, तो भारी नुकसान हो सकता है।

  3. कोई सीमा नहीं है कि कितनी बार और कितनी राशि जमा की जाए। कई बार जमा करने से घाटा बढ़ सकता है।

समाधान के लिएः

  1. आपात स्थिति में व्यापार को निलंबित करने के लिए शर्तें निर्धारित की जा सकती हैं।
  2. यदि कोई व्यक्ति किसी भी तरह की कोई समस्या है, तो उसे अपने खाते में लॉगिन करने के लिए कहें।
  3. जमा की संख्या और राशि की सीमा।

अनुकूलन दिशा

इस रणनीति में अनुकूलन के लिए काफी जगह है, मुख्य रूप से निम्नलिखित पहलुओं सेः

  1. अन्य संकेतकों के संयोजन का उपयोग करके प्रवेश की पुष्टि करें। प्रवेश की शर्तों में ईएमए, एमएसीडी जैसे संकेतकों की पुष्टि को शामिल किया जा सकता है, ताकि झटके की स्थिति में इसे रोक दिया जा सके।

  2. स्टॉप मैकेनिज्म में शामिल हों। एक निश्चित स्टॉप या ट्रैक स्टॉप को कॉन्फ़िगर करें, जिससे चरम स्थितियों में भारी नुकसान से बचा जा सके।

  3. ऑप्टिमाइज़ेशन लॉजिकः विशिष्ट बाजार स्थितियों के आधार पर, मूल्य सीमा और ऑप्टिमाइज़ेशन की संख्या को अनुकूलित किया जा सकता है। ओवरहाइजिंग को रोकना।

  4. मशीन लर्निंग एल्गोरिदम के साथ संयुक्त। उदाहरण के लिए, एलएसटीएम जैसे एल्गोरिदम का उपयोग मूल्य के संभावित आंदोलन और समर्थन प्रतिरोध की भविष्यवाणी करने के लिए किया जाता है।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
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/
// © CryptoRox

//@version=4
//Paste the line below in your alerts to run the built-in commands.
//{{strategy.order.alert_message}}
strategy(title="Fibs limit only", shorttitle="Strategy", overlay=true, precision=8, pyramiding=1000, commission_type=strategy.commission.percent, commission_value=0.04)

//Settings 
testing = input(false, "Live")
//Use epochconverter or something similar to get the current timestamp.
starttime = input(1600976975, "Start Timestamp") * 1000
//Wait XX seconds from that timestamp before the strategy starts looking for an entry.
seconds = input(60, "Start Delay") * 1000
testPeriod = true


leverage = input(1, "Leverage")
tp = input(1.0, "Take Profit %") / leverage
dca = input(-1.0, "DCA when < %") / leverage *-1
fibEntry = input("1", "Entry Level", options=["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"])

//Strategy Calls
equity = strategy.equity
avg = strategy.position_avg_price
symbol = syminfo.tickerid
openTrades = strategy.opentrades
closedTrades = strategy.closedtrades
size = strategy.position_size

//Fibs
lentt = input(60, "Pivot Length")
h = highest(lentt)
h1 = dev(h, lentt) ? na : h
hpivot = fixnan(h1)
l = lowest(lentt)
l1 = dev(l, lentt) ? na : l
lpivot = fixnan(l1)
z = 400
p_offset= 2
transp = 60
a=(lowest(z)+highest(z))/2
b=lowest(z)
c=highest(z)

fib0 = (((hpivot - lpivot)) + lpivot)
fib1 = (((hpivot - lpivot)*.21) + lpivot)
fib2 = (((hpivot - lpivot)*.3) + lpivot)
fib3 = (((hpivot - lpivot)*.5) + lpivot)
fib4 = (((hpivot - lpivot)*.62) + lpivot)
fib5 = (((hpivot - lpivot)*.7) + lpivot)
fib6 = (((hpivot - lpivot)* 1.00) + lpivot)
fib7 = (((hpivot - lpivot)* 1.27) + lpivot)
fib8 = (((hpivot - lpivot)* 2) + lpivot)
fib9 = (((hpivot - lpivot)* -.27) + lpivot)
fib10 = (((hpivot - lpivot)* -1) + lpivot)

notna = nz(fib10[60])
entry = 0.0
if fibEntry == "1"
    entry := fib10
if fibEntry == "2"
    entry := fib9
if fibEntry == "3"
    entry := fib0
if fibEntry == "4"
    entry := fib1
if fibEntry == "5"
    entry := fib2
if fibEntry == "6"
    entry := fib3
if fibEntry == "7"
    entry := fib4
if fibEntry == "8"
    entry := fib5
if fibEntry == "9"
    entry := fib6
if fibEntry == "10"
    entry := fib7
profit = avg+avg*(tp/100)
pause = 0
pause := nz(pause[1])
paused = time < pause

fill = 0.0
fill := nz(fill[1])
count = 0.0
count := nz(fill[1])

filled = count > 0 ? entry > fill-fill/100*dca : 0
signal = testPeriod and notna and not paused and not filled ? 1 : 0

neworder = crossover(signal, signal[1])
moveorder = entry != entry[1] and signal and not neworder ? true : false
cancelorder = crossunder(signal, signal[1]) and not paused
filledorder = crossunder(low[1], entry[1]) and signal[1]

last_profit = 0.0
last_profit := nz(last_profit[1])

if neworder and signal
    strategy.order("New", 1, 0.0001, alert_message='New Order|e=binancefuturestestnet s=btcusdt b=long q=0.0011 fp=' + tostring(entry)) 
if moveorder
    strategy.order("Move", 1, 0.0001, alert_message='Move Order|e=binancefuturestestnet s=btcusdt b=long c=order|e=binancefuturestestnet s=btcusdt b=long q=0.0011 fp=' + tostring(entry))
if filledorder and size < 1
    fill := entry
    count := count+1 
    pause := time + 60000
    p = close+close*(tp/100)
    strategy.entry("Filled", 1, 1,  alert_message='Long Filled|e=binancefuturestestnet s=btcusdt b=short c=order|delay=1|e=binancefuturestestnet s=btcusdt b=long c=position q=100% ro=1 fp=' + tostring(p))
if filledorder and size >= 1
    fill := entry
    count := count+1 
    pause := time + 60000
    strategy.entry("Filled", 1, 1,  alert_message='Long Filled|e=binancefuturestestnet s=btcusdt b=short c=order|delay=1|e=binancefuturestestnet s=btcusdt b=long c=position q=100% ro=1 fp=' + tostring(profit))

if cancelorder and not filledorder
    pause := time + 60000
    strategy.order("Cancel", 1, 0.0001,  alert_message='Cancel Order|e=binancefuturestestnet s=btcusdt b=long c=order')

if filledorder
    last_profit := profit

closeit = crossover(high, profit) and size >= 1
if closeit
    strategy.entry("Close ALL", 0, 0, alert_message='Profit')
    count := 0
    fill := 0.0
    last_profit := 0.0
    
//Plots
bottom = signal ? color.green : filled ? color.red : color.white
plot(entry, "Entry", bottom)