পরিমাণগত সমর্থন ও প্রতিরোধের ওসিলেশন কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৪-০১-২৫
ট্যাগঃ

img

সারসংক্ষেপ

কৌশল নীতি

  1. ভুল ট্রেড এড়ানোর জন্য ট্রেন্ড সিগন্যাল বিচার করতে সহায়তা করার জন্য ক্যান্ডেলস্টিক প্যাটার্ন স্বীকৃতি চালু করে।

সুবিধা বিশ্লেষণ

  1. আরএসআই প্যারামিটার অপ্টিমাইজেশান সঠিকভাবে ভুল ট্রেড এড়ানোর জন্য ওভারকুপ এবং ওভারসোল্ড এলাকা নির্ধারণ করে।
  2. এসটিও প্যারামিটার অপ্টিমাইজেশন, মসৃণতা সমন্বয় গোলমাল ফিল্টার করে এবং সংকেতের গুণমান উন্নত করে।
  3. ক্যান্ডেলস্টিকের দিক পরিবর্তন চিনতে এবং সঠিক ট্রেডিং সিগন্যাল নিশ্চিত করতে হেকিন-আশি প্রযুক্তি চালু করা হয়।
  4. এসএমএ লাইনগুলি প্রধান প্রবণতার দিক নির্ধারণে সহায়তা করে, প্রবণতার বিরুদ্ধে ট্রেডিং এড়ায়।

ঝুঁকি বিশ্লেষণ

  1. উচ্চ ট্রেডিং ফ্রিকোয়েন্সি ট্রেডিং খরচ এবং স্লিপিং খরচ বৃদ্ধি করে।

কৌশল অপ্টিমাইজেশন

  1. সিগন্যালের গুণমান উন্নত করার জন্য এসটিও পরামিতি, মসৃণতা এবং সময়কাল সামঞ্জস্য করুন।
  2. প্রবণতা বিচারকে অনুকূল করার জন্য চলমান গড় সময়কাল সামঞ্জস্য করুন।
  3. সিগন্যালের নির্ভুলতা বাড়াতে আরও প্রযুক্তিগত সূচক চালু করা।

সিদ্ধান্ত


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//study(title="@sentenzal strategy", shorttitle="@sentenzal strategy", overlay=true)
strategy(title="@sentenzal strategy", shorttitle="@sentenzal strategy", overlay=true  )
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
overbought = input(80, minval=1)
oversold = input(20, minval=1)
smaLengh = input(100, minval=1)
smaLengh2 = input(50, minval=1)
smaLengh3 = input(20, minval=1)

src = input(close, title="RSI Source")
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testPeriod() =>
    time >= testPeriodStart ? true : false

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
crossBuy = crossover(k, d) and k < oversold
crossSell = crossunder(k, d) and k > overbought

dcLower = lowest(low, 10)
dcUpper = highest(high, 10)


heikinashi_close = security(heikinashi(syminfo.tickerid), timeframe.period, close)
heikinashi_open = security(heikinashi(syminfo.tickerid), timeframe.period, open)
heikinashi_low = security(heikinashi(syminfo.tickerid), timeframe.period, low)
heikinashi_high = security(heikinashi(syminfo.tickerid), timeframe.period, high)
heikinashiPositive = heikinashi_close >= heikinashi_open

heikinashiBuy = heikinashiPositive == true and heikinashiPositive[1] == false  and heikinashiPositive[2] == false
heikinashiSell = heikinashiPositive == false and heikinashiPositive[1] == true and heikinashiPositive[2] == true

//plotshape(heikinashiBuy, style=shape.arrowup, color=green, location=location.belowbar, size=size.tiny)
//plotshape(heikinashiSell, style=shape.arrowdown, color=red, location=location.abovebar, size=size.tiny)

buy = (crossBuy == true or crossBuy[1] == true or crossBuy[2] == true) and (heikinashiBuy == true or heikinashiBuy[1] == true or heikinashiBuy[2] == true)
sell = (crossSell == true or crossSell[1] == true or crossSell[2] == true) and (heikinashiSell == true or heikinashiSell[1] == true or heikinashiSell[2] == true)

mult = timeframe.period == '15' ? 4 : 1
mult2 = timeframe.period == '240' ? 0.25 : mult

movingAverage = sma(close, round(smaLengh))
movingAverage2 = sma(close, round(smaLengh2))
movingAverage3 = sma(close, round(smaLengh3))

uptrend = movingAverage < movingAverage2 and movingAverage2 < movingAverage3 and close > movingAverage
downtrend = movingAverage > movingAverage2 and movingAverage2 > movingAverage3 and close < movingAverage

signalBuy = (buy[1] == false and buy[2] == false and buy == true) and uptrend
signalSell = (sell[1] == false and sell[2] == false and sell == true) and downtrend

takeProfitSell = (buy[1] == false and buy[2] == false and buy == true) and uptrend == false
takeProfitBuy = (sell[1] == false and sell[2] == false and sell == true)  and uptrend

plotshape(signalBuy, style=shape.triangleup, color=green, location=location.belowbar, size=size.tiny)
plotshape(signalSell, style=shape.triangledown, color=red, location=location.abovebar, size=size.tiny)



plot(movingAverage, linewidth=3, color=orange, transp=0)
plot(movingAverage2, linewidth=2, color=purple, transp=0)
plot(movingAverage3, linewidth=1, color=navy, transp=0)

alertcondition(signalBuy, title='Signal Buy', message='Signal Buy')
alertcondition(signalSell, title='Signal Sell', message='Signal Sell')


strategy.close("L", when=dcLower[1] > low)
strategy.close("S", when=dcUpper[1] < high)

strategy.entry("L", strategy.long, 1, when = signalBuy and testPeriod() and uptrend) 
strategy.entry("S", strategy.short, 1, when = signalSell and testPeriod() and uptrend ==false) 

//strategy.exit("Exit Long", from_entry = "L", loss = 25000000, profit=25000000)
//strategy.exit("Exit Short", from_entry = "S", loss = 25000000, profit=25000000)



আরো