শিলা হিসেবে সলিড ভিআইপি কোয়ান্ট কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-১২-১৯ 13:54:05
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটিকে বলা হয় The Solid as a Rock VIP Quant Strategy। এটি একটি স্থিতিশীল এবং নির্ভরযোগ্য পরিমাণগত ট্রেডিং ফ্রেমওয়ার্ক তৈরির জন্য সংশোধিত WMA সূচক এবং SSL চ্যানেল সূচককে একত্রিত করে।

নীতি

কৌশলটি দুটি সূচককে অন্তর্ভুক্ত করে। একটি হ'ল সংশোধিত ডাব্লুএমএ সূচক, যা প্রতিটি মোমবাতিটির গড় মূল্য গণনা করে এবং তারপরে প্রবণতার দিক নির্ধারণের জন্য এক্সপোনেন্সিয়াল চলমান গড় পদ্ধতি প্রয়োগ করে। অন্যটি হ'ল এসএসএল চ্যানেল সূচক, যা সর্বোচ্চ এবং সর্বনিম্ন দামের চলমান গড় ব্যবহার করে মূল্য চ্যানেল নির্ধারণ এবং বর্তমান প্রবণতার অবস্থা বিচার করে।

যখন পরিবর্তিত ডাব্লুএমএ সূচক একটি ক্রয় সংকেত তৈরি করে, অর্থাৎ, সোনার ক্রস, আমরা চ্যানেলে মূল্য উপযুক্ত কিনা তা নির্ধারণ করতে এসএসএল চ্যানেল সূচককে একত্রিত করি। যদি মোমবাতি শরীর চ্যানেলের নিম্ন সীমাটির সম্পূর্ণরূপে নীচে থাকে তবে আমরা ক্রয় অর্ডার স্থাপন করব।

সুবিধা

  1. দুইটি সূচককে একত্রিত করা ক্রেতা সংকেতকে আরও নির্ভরযোগ্য করে তোলে যাতে মিথ্যা ব্রেকআউট এড়ানো যায়।
  2. সংশোধিত ডব্লিউএমএ সূচকটি আরও সুনির্দিষ্টভাবে বাঁক পয়েন্টগুলি নির্ধারণ করতে পারে।
  3. এসএসএল চ্যানেল স্পষ্টভাবে উচ্চ স্তরে ক্রয় এড়ানোর জন্য মূল্য চ্যানেল বিচার করে।
  4. এক্সপোনেনশিয়াল মুভিং মিডিয়ার পদ্ধতি ব্যবহার করে দীর্ঘমেয়াদী প্রবণতা নির্ধারণ করা আরও সুবিধাজনক।

ঝুঁকি এবং সমাধান

  1. স্টপ লস পয়েন্টগুলি সহজেই অস্থির বাজারে ট্রিগার করা যেতে পারে। আমরা যথাযথভাবে স্টপ লস পরিসীমা প্রসারিত করতে পারি।
  2. চলমান গড় সিস্টেমগুলি স্বল্পমেয়াদী বাজারের গোলমালের প্রতি সংবেদনশীল, যা ভুল সংকেত তৈরি করতে পারে। আমরা ফিল্টারিং প্রভাব বাড়ানোর জন্য চলমান গড় পরামিতিগুলি যথাযথভাবে বাড়িয়ে তুলতে পারি।
  3. ভুল প্যারামিটার সেটিং কৌশল কর্মক্ষমতা প্রভাবিত করতে পারে. আমরা সেরা প্যারামিটার সমন্বয় খুঁজে ব্যাক টেস্টিং মাধ্যমে প্যারামিটার অপ্টিমাইজ করতে পারেন.

অপ্টিমাইজেশান নির্দেশাবলী

  1. আমরা বিভিন্ন ধরণের চলমান গড় পরীক্ষা করতে পারি, যেমন EMA এবং VWMA, সেরা মিলে যাওয়া গড় রেখা সূচক খুঁজে পেতে।
  2. আমরা কম ভলিউম এলাকায় সংকেত এড়াতে ভলিউম সূচক যোগ করতে পারেন।
  3. আমরা বিভিন্ন উপায়ে চ্যানেল আঁকতে পারি, যেমন ডনচিয়ান চ্যানেল, যাতে চ্যানেলের সীমানা আরো নির্ভরযোগ্য হয়।
  4. আমরা অন্যান্য সহায়ক সূচক যোগ করতে পারি, যেমন এমএসিডি এবং আরএসআই, প্রবেশের সময় আরও নিশ্চিত করতে।

সংক্ষিপ্তসার

মোডিফাইড ডাব্লুএমএ সূচক এবং এসএসএল চ্যানেল সূচকের উদ্ভাবনী সংমিশ্রণের মাধ্যমে, এই কৌশলটি একটি স্থিতিশীল এবং নির্ভরযোগ্য পরিমাণগত ট্রেডিং ফ্রেমওয়ার্ক তৈরি করে। এটি উচ্চ স্তরে কেনার ঝুঁকি এড়ানোর সময় বাজারের গোলমাল ফিল্টার করার একটি শক্তিশালী ক্ষমতা রয়েছে। সঠিক পরামিতি সেটিং এবং নির্দিষ্ট অপ্টিমাইজেশানগুলির সাথে এটি একটি উচ্চতর পারফরম্যান্স কৌশল হবে।


/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 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/
// © Darshana_Alwis

//@version=5
strategy("VIP", overlay=true, initial_capital=1000,currency=currency.USD,default_qty_type=strategy.percent_of_equity,default_qty_value=100,pyramiding=0)
//SSS = Sultan+Saud Strategy

//The original idea of the code belonges to saudALThaidy
//The strategy code is basically made out of two other indicators, edited and combined by me.
// 1- NSDT HAMA Candles => https://www.tradingview.com/script/k7nrF2oI-NSDT-HAMA-Candles/
// 2- SSL Channel => https://www.tradingview.com/script/6y9SkpnV-SSL-Channel/


//MA INFO
WickColor = input.color(color.rgb(80, 80, 80, 100), title='Wick Color', tooltip='Suggest Full Transparency.')
LengthMA = input.int(100, minval=1, title='MA Line Length', inline='MA Info')
TakeProfit = input.float(1, minval=0, title='Take Profit Percentage', step=1)
UseStopLose = input.bool(false, title='Use Stop Percentage')
StopLose = input.float(1, minval=0, title='StopLose Percentage', step=1)

MASource = close

ma(source, length, type) =>
    type == "SMA" ? ta.sma(source, length) :
     type == "EMA" ? ta.ema(source, length) :
     type == "SMMA (RMA)" ? ta.rma(source, length) :
     type == "WMA" ? ta.wma(source, length) :
     type == "VWMA" ? ta.vwma(source, length) :
     na

ma1_color  = color.rgb(230, 172, 0)
ma1 = ma(high, 200, "SMA")

ma2_color  = color.red
ma2 = ma(low, 200, "SMA")

Hlv1 = float(na)
Hlv1 := close > ma1 ? 1 : close < ma2 ? -1 : Hlv1[1]
sslUp1   = Hlv1 < 0 ? ma2 : ma1
sslDown1 = Hlv1 < 0 ? ma1 : ma2

Color1 = Hlv1 == 1 ? ma1_color : ma2_color
fillColor1 = color.new(Color1, 90)

highLine1 = plot(sslUp1, title="UP", linewidth=2, color = Color1)
lowLine1 = plot(sslDown1, title="DOWN", linewidth=2, color = Color1)

OpenLength = 25
HighLength = 20
LowLength = 20
CloseLength = 20


     
SourceOpen = (open[1] + close[1]) / 2
SourceHigh = math.max(high, close)
SourceLow = math.min(low, close)
SourceClose = (open + high + low + close) / 4

funcCalcMA1(src1, len1) => ta.ema(src1, len1)
funcCalcOpen(SourceOpen, OpenLength) => ta.ema(SourceOpen, OpenLength)
funcCalcHigh(SourceHigh, HighLength) => ta.ema(SourceHigh, HighLength)
funcCalcLow(SourceLow, LowLength) => ta.ema(SourceLow, LowLength)
funcCalcClose(SourceClose, CloseLength) => ta.ema(SourceClose, CloseLength)

MA_1 = funcCalcMA1(MASource, LengthMA)

CandleOpen = funcCalcOpen(SourceOpen, OpenLength)
CandleHigh = funcCalcHigh(SourceHigh, HighLength)
CandleLow = funcCalcLow(SourceLow, LowLength)
CandleClose = funcCalcClose(SourceClose, CloseLength)

//PLOT CANDLES
//-------------------------------NSDT HAMA Candels
BodyColor = CandleOpen > CandleOpen[1] ? color.rgb(230, 172, 0) : color.red
barcolor(BodyColor)
plotcandle(CandleOpen, CandleHigh, CandleLow, CandleClose, color=BodyColor, title='HAMA Candles', wickcolor=WickColor, bordercolor=na)
plot(MA_1, title='MA Line', color=BodyColor, style=plot.style_line, linewidth=2)

//------------------------------SSL Channel


plot_buy = false
avg = ((high-low)/2)+low
LongCondition = (Hlv1 == 1 and Hlv1[1] == -1) and (BodyColor == color.rgb(230, 172, 0)) and (MA_1 < avg) and (CandleHigh < avg) and (strategy.opentrades == 0)
if LongCondition
    strategy.entry("BUY with VIP", strategy.long)
    plot_buy := true

base = strategy.opentrades.entry_price(0)
baseProfit = (base+((base/100)*TakeProfit))
baseLose = (base-((base/100)*StopLose))

strategy.exit("SELL with VIP","BUY with VIP",limit = baseProfit)
if UseStopLose and (close < MA_1)
    strategy.exit("SELL with VIP","BUY with VIP",stop = baseLose)
if not UseStopLose and (close < MA_1)
    strategy.exit("SELL with VIP","BUY with VIP", stop = close)
    
plotshape(plot_buy, title="Buy Label", text="Buy", location=location.belowbar, style=shape.labelup, size=size.tiny, color=Color1, textcolor=color.white)

fill(highLine1, lowLine1, color = fillColor1)


আরো