
এই কৌশলটি একটি স্বনির্ধারিত প্রবণতা ট্র্যাকিং ট্রেডিং সিস্টেম যা সূচকীয় চলমান গড় ((EMA) এবং স্লাইড দিক নির্দেশক ((SDI) এর উপর ভিত্তি করে। এটি একাধিক প্রযুক্তিগত সূচক এবং ঝুঁকি ব্যবস্থাপনা সরঞ্জামগুলির সাথে মিলিত হয়েছে যা বাজারের প্রবণতা ক্যাপচার এবং ঝুঁকি নিয়ন্ত্রণের উদ্দেশ্যে। এই কৌশলটি দ্রুত এবং ধীর EMA এর ক্রস এবং SDI এর দিকনির্দেশের ব্যবহার করে বাজারের প্রবণতা নির্ধারণ করে এবং সেই অনুযায়ী ক্রয় এবং বিক্রয় সংকেত উত্পন্ন করে।
এই কৌশলটির কেন্দ্রবিন্দু হল এর স্বনির্ধারণযোগ্যতা এবং একটি বিস্তৃত ঝুঁকি ব্যবস্থাপনা পদ্ধতি। ইএমএ চক্র, এসডিআই মসৃণতা এবং ঝুঁকি পরিচালনার থ্রেশহোল্ডের মতো নিয়মিত প্যারামিটার ব্যবহার করে, ব্যবসায়ীরা বিভিন্ন বাজার পরিস্থিতি এবং ব্যক্তিগত ঝুঁকি পছন্দ অনুসারে কৌশলটি অপ্টিমাইজ করতে পারেন। লিভারেজ এবং পজিশনের আকারের নমনীয় সেটিংগুলি কৌশলটির অভিযোজনযোগ্যতা আরও বাড়িয়ে তোলে, যা এটিকে বিভিন্ন ট্রেডিং শৈলী এবং তহবিলের আকারের জন্য উপযুক্ত করে তোলে।
সূচক গণনাঃ
ট্রেডিং সিগন্যাল জেনারেটঃ
পজিশন ম্যানেজমেন্টঃ
ঝুঁকি ব্যবস্থাপনা:
সময় ফিল্টারঃ
ট্রেন্ড ক্যাপচার ক্ষমতাঃ ইএমএ এবং এসডিআই এর সাথে মিলিত হয়ে, কার্যকরভাবে বাজারের প্রবণতা সনাক্ত এবং অনুসরণ করুন।
স্বনির্ধারণযোগ্যতাঃ বিভিন্ন বাজারের অবস্থার সাথে সামঞ্জস্যপূর্ণ প্যারামিটারগুলির মাধ্যমে।
সামগ্রিক ঝুঁকি ব্যবস্থাপনাঃ সমন্বিত স্টপ, স্টপ লস এবং ট্র্যাকিং স্টপ লস, সামগ্রিক ঝুঁকি নিয়ন্ত্রণ।
নমনীয় পজিশন কন্ট্রোলঃ বিভিন্ন ঝুঁকি পছন্দ অনুসারে লিভারেজ এবং তহবিল ব্যবহারের অনুপাত সামঞ্জস্য করা যায়।
পুনরাবৃত্তি-বান্ধবঃ কৌশল অনুকূলিতকরণের জন্য ঐতিহাসিক তথ্য পুনরাবৃত্তি সমর্থন করে।
আবেগ নিরপেক্ষতা: উদ্দেশ্যমূলক পরিমাপের উপর ভিত্তি করে, বিষয়গত আবেগ প্রভাবকে হ্রাস করা।
বহুমুখিতাঃ বিভিন্ন সময়কাল এবং লেনদেনের জাতের জন্য ব্যবহার করা যেতে পারে।
অতিরিক্ত লেনদেনঃ বাজারের অস্থিরতার ফলে লেনদেনের ঘন ঘনতা বৃদ্ধি পায় এবং খরচ বাড়তে পারে।
পিছিয়ে পড়াঃ ইএমএ এবং এসডিআই পিছিয়ে পড়া সূচক, প্রবণতা বিপরীত হওয়ার সময় প্রতিক্রিয়াশীল হতে পারে।
ভুয়া ব্রেকআউট ঝুঁকিঃ স্বল্পমেয়াদী অস্থিরতার মধ্যে ভুল ট্রেডিংয়ের সম্ভাবনা রয়েছে।
প্যারামিটার সংবেদনশীলতাঃ পারফরম্যান্স প্যারামিটার সেটিংসের উপর অত্যন্ত নির্ভরশীল, যার জন্য ক্রমাগত অপ্টিমাইজেশান প্রয়োজন।
বাজার পরিবেশের উপর নির্ভরশীলতাঃ কিছু বাজার অবস্থার অধীনে খারাপ পারফরম্যান্স হতে পারে
লিভারেজ ঝুঁকিঃ উচ্চ লিভারেজ ক্ষতি বাড়িয়ে তুলতে পারে, সতর্কতার সাথে ব্যবহার করা উচিত।
প্রযুক্তিগত নির্ভরতাঃ একটি স্থিতিশীল প্রযুক্তিগত পরিবেশের উপর নির্ভরশীল, সিস্টেমের ত্রুটিগুলি ক্ষতির কারণ হতে পারে।
ডায়নামিক প্যারামিটার অ্যাডজাস্টমেন্টঃ EMA এবং SDI প্যারামিটারগুলিকে বিভিন্ন বাজারের পর্যায়ে সামঞ্জস্য করার জন্য স্বতঃস্ফূর্তভাবে সামঞ্জস্য করা যায়।
মাল্টি টাইম ফ্রেম অ্যানালিসিসঃ একাধিক সময়কালের সংকেতকে একত্রিত করে প্রবণতা নির্ণয়ের সঠিকতা বাড়ানো।
অস্থিরতা ফিল্টারঃ এটিআর এর মতো অস্থির সূচক যুক্ত করুন, উচ্চ অস্থিরতার সময় ট্রেডিং নিয়মগুলি সামঞ্জস্য করুন।
বাজারের অবস্থা সনাক্তকরণঃ বাজারের অবস্থা শ্রেণিবদ্ধকরণ ((ট্রেন্ড / কম্পন), লক্ষ্যবস্তু অপ্টিমাইজড ট্রেডিং লজিক।
তহবিল ব্যবস্থাপনা অপ্টিমাইজেশানঃ অ্যাকাউন্টের মুনাফা-ক্ষতি অনুসারে স্বয়ংক্রিয়ভাবে ঝুঁকি সমন্বয় করে গতিশীল অবস্থান সমন্বয় উপলব্ধ।
সূচক সমন্বয়ঃ সংকেতের নির্ভরযোগ্যতা বাড়ানোর জন্য আরএসআই বা এমএসিডি এর মতো অন্যান্য পরিপূরক সূচক যুক্ত করার বিষয়টি বিবেচনা করুন।
মেশিন লার্নিং ইন্টিগ্রেশনঃ মেশিন লার্নিং অ্যালগরিদম প্রবর্তন, প্যারামিটার নির্বাচন এবং সংকেত উত্পাদন অপ্টিমাইজ করা।
ইএমএ এবং এসডিআই-এর সমন্বয়ে এই স্বনির্ধারিত প্রবণতা ট্র্যাকিং কৌশলটি শক্তিশালী বাজার অভিযোজনযোগ্যতা এবং ঝুঁকি ব্যবস্থাপনার ক্ষমতা প্রদর্শন করে। নমনীয় প্যারামিটার সেট এবং বিস্তৃত ঝুঁকি নিয়ন্ত্রণ ব্যবস্থাগুলির মাধ্যমে এটি ব্যবসায়ীদের জন্য একটি নির্ভরযোগ্য পরিমাণগত ট্রেডিং ফ্রেমওয়ার্ক সরবরাহ করে। কৌশলটির মূল সুবিধা হ’ল প্রবণতার সংবেদনশীল ক্যাপচার এবং ঝুঁকির কঠোর নিয়ন্ত্রণ যা এটিকে বিভিন্ন বাজারের পরিস্থিতিতে স্থিতিশীল পারফরম্যান্স বজায় রাখতে সক্ষম করে।
যাইহোক, ব্যবসায়ীদের কৌশলটির অন্তর্নিহিত পিছিয়ে পড়া এবং প্যারামিটার সংবেদনশীলতার মতো সম্ভাব্য ঝুঁকির বিষয়ে সতর্ক থাকতে হবে। ক্রমাগত অপ্টিমাইজেশন এবং উন্নতির মাধ্যমে, বিশেষত গতিশীল প্যারামিটার সমন্বয়, মাল্টি-টাইম ফ্রেম বিশ্লেষণ এবং বাজার অবস্থার সনাক্তকরণের ক্ষেত্রে, কৌশলটি তার কর্মক্ষমতা এবং স্থায়িত্বকে আরও বাড়িয়ে তুলবে বলে আশা করা হচ্ছে।
সামগ্রিকভাবে, এই কৌশলটি পরিমাণগত ব্যবসায়ের জন্য একটি শক্ত ভিত্তি সরবরাহ করে, যা ব্যবসায়ীদের জন্য উপযুক্ত যারা ব্যবসায়ের পদ্ধতিগত এবং শৃঙ্খলাবদ্ধ পদ্ধতির সন্ধান করছেন। কৌশলগত নীতিগুলি গভীরভাবে বোঝার মাধ্যমে এবং ব্যক্তিগত ট্রেডিং শৈলীর সাথে একত্রিত করে, ব্যবসায়ীরা আর্থিক বাজারে তাদের প্রতিযোগিতামূলক সুবিধা বাড়ানোর জন্য এই সরঞ্জামটি কার্যকরভাবে ব্যবহার করতে পারেন।
/*backtest
start: 2024-06-01 00:00:00
end: 2024-06-30 23:59:59
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/
// © erdas0
//@version=5
strategy("Strategy SEMA SDI Webhook", overlay=true, slippage = 1, commission_value = 0.035, default_qty_type=strategy.percent_of_equity, default_qty_value=50, initial_capital = 1000, calc_on_order_fills = true, process_orders_on_close = true)
// Start and end dates
dts=input(false,"",inline="dts")
dte=input(false,"",inline="dte")
start_date = input(timestamp("2023-01-01 00:00:00"), "Start Date",inline="dts")
end_date = input(timestamp("2124-01-01"), "End Date",inline="dte")
times = true
// Initial capital
leverage= input.int(10, "Leverage", minval=1,inline="qty") //Leverage Test
usdprcnt= input.int(50, "%", minval=1,inline="qty")
qty= input(false,"Inital USDT ◨",inline="qty")
initial_capital = qty ? (strategy.initial_capital+strategy.netprofit)/close*leverage*usdprcnt/100 : na
//Level Inputs
tpon=input(false,"TP ◨",group ="Take Profit/Stop Loss", inline="1")
sloc=input(true,"SL ◨",group ="Take Profit/Stop Loss", inline="1")
tron=input(true,"Trailing ◨",group ="Take Profit/Stop Loss", inline="1")
tp = tpon ? input.float(25, "Take Profit %", minval=0.1,step=0.1,group ="Take Profit/Stop Loss", inline="2") : na
sl = sloc ? input.float(4.8, "Stop Loss %", minval=0.1,step=0.1,group ="Take Profit/Stop Loss", inline="2") : na
tr = tron ? input.float(1.9, "Trailing Stop ", minval=0.1,step=0.1,group ="Take Profit/Stop Loss", inline="4") : na
// Take profit and stop loss levels
dir=strategy.position_size/math.abs(strategy.position_size) //Directions
newtrade=strategy.closedtrades>strategy.closedtrades[1]
pftpcnt=dir<0 ? (strategy.position_avg_price-low)/strategy.position_avg_price*100 : dir>0 ? (high-strategy.position_avg_price)/strategy.position_avg_price*100 : na //max profit
pftpr= (1 + pftpcnt*dir/100) * strategy.position_avg_price //Trailing Price
take_profit = (1 + tp*dir/100) * strategy.position_avg_price
stop_loss = (1 - sl*dir/100) * strategy.position_avg_price
var float maxpft=na //max profit percent
maxpft := newtrade ? 0 : strategy.openprofit > 0 ? math.max(pftpcnt,maxpft) : maxpft
var float Tr=na //Trailing
Tr := newtrade ? na : pftpcnt >= tr and maxpft-pftpcnt >= tr ? close : Tr
//Inputs
ocema=input(true, title='EMA ◨',group="Inputs",inline="2")
ocsd=input(true, title='SDI ◨',group="Inputs",inline="2")
ocsm=input(true, title='Smooth ◨',group="Inputs",inline="2")
lenf = input.int(58, "Fast Ema", minval=1,group ="Inputs", inline="3")
lens = input.int(70, "Slow Ema", minval=1,group ="Inputs", inline="3")
slen = input.int(3, "Smooth", minval=1,group ="Inputs", inline="4")
dilen = input.int(1, title="DI Length", minval=1,group ="SDI", inline="5")
sdi = input.int(6, title="DI Smooth", minval=1,group ="SDI", inline="5")
//EMA
emaf=ta.ema(close,lenf)
emas=ta.ema(close,lens)
semaf=ta.ema(emaf,slen)
semas=ta.ema(emas,slen)
//SDI
dirmov(len,smt) =>
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
truerange = ta.rma(ta.tr, len)
plus = ta.ema(fixnan(100 * ta.rma(plusDM, len) / truerange),smt)
minus = ta.ema(fixnan(100 * ta.rma(minusDM, len) / truerange),smt)
[plus, minus]
[plus,minus]=dirmov(dilen,sdi)
pm=ta.ema(plus-minus,10)
sdcl= plus>minus ? color.new(color.green,80) :plus<minus ? color.new(color.red,80) : na
cpm= pm>pm[1] ? color.lime : pm<pm[1] ? color.red : color.yellow
barcolor(cpm,title="PM Color")
//Plot
plot(ocsm ? semaf:emaf,"Fast Ema",color=color.green)
plot(ocsm ? semas:semas,"Slow Ema",color=color.red)
// Conditions
Long = (ocsd ? plus>minus:true) and (ocema ? (ocsm ? semaf:emaf)>(ocsm ? semas:emas):true)
Short = (ocsd ? plus<minus:true) and (ocema ? (ocsm ? semaf:emaf)<(ocsm ? semas:emas):true)
// Strategy conditions
if Long and times
strategy.close("Short","Close S")
strategy.entry("Long", strategy.long, comment="L",qty = initial_capital)
if strategy.position_size>0
strategy.exit("Long LTP", "Long", limit=take_profit, stop=stop_loss, comment="LSL",comment_profit = "LTP")
if Tr and strategy.position_size>0
strategy.exit("Long LTP", "Long", limit=take_profit, stop=pftpr, comment="Tr",comment_profit = "LTP")
if Short and times
strategy.close("Long","Close L")
strategy.entry("Short", strategy.short, comment="S",qty = initial_capital)
if strategy.position_size<0
strategy.exit("Short STP", "Short", limit=take_profit, stop=stop_loss, comment="SSL",comment_profit ="STP" )
if Tr and strategy.position_size<0
strategy.exit("Short STP", "Short", limit=take_profit, stop=pftpr, comment="Tr",comment_profit = "STP")
if not times
strategy.close_all()