এই কৌশলটি হ'ল এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ) এবং মসৃণ দিকনির্দেশক সূচক (এসডিআই) এর উপর ভিত্তি করে একটি অভিযোজিত প্রবণতা অনুসরণকারী ট্রেডিং সিস্টেম। এটি বাজারের প্রবণতা এবং ঝুঁকি নিয়ন্ত্রণের জন্য একাধিক প্রযুক্তিগত সূচক এবং ঝুঁকি পরিচালনার সরঞ্জামগুলিকে একত্রিত করে। কৌশলটি বাজারের প্রবণতা নির্ধারণ এবং কেনা এবং বিক্রয় সংকেত উত্পন্ন করার জন্য এসডিআইয়ের দিকের সাথে দ্রুত এবং ধীর ইএমএর ক্রসওভার ব্যবহার করে। অতিরিক্তভাবে, কৌশলটি লাভ গ্রহণ, স্টপ লস এবং ট্রেলিং স্টপগুলি লাভ রক্ষা এবং ক্ষতি সীমাবদ্ধ করার জন্য ঝুঁকি পরিচালনার বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করে।
এই কৌশলটির মূল শক্তি হ'ল এর অভিযোজনযোগ্যতা এবং বিস্তৃত ঝুঁকি পরিচালনার পদ্ধতি। ইএমএ সময়কাল, এসডিআই মসৃণকরণ এবং ঝুঁকি পরিচালনার প্রান্তিকের মতো সামঞ্জস্যযোগ্য পরামিতিগুলির ব্যবহারের মাধ্যমে ব্যবসায়ীরা বিভিন্ন বাজারের পরিস্থিতি এবং ব্যক্তিগত ঝুঁকি পছন্দগুলির জন্য কৌশলটি অনুকূল করতে পারে। লিভারেজ এবং অবস্থানের আকারের নমনীয় সেটিং কৌশলটির অভিযোজনযোগ্যতা আরও বাড়িয়ে তোলে, এটি বিভিন্ন ট্রেডিং স্টাইল এবং মূলধনের আকারের জন্য উপযুক্ত করে তোলে।
সূচক গণনাঃ
ট্রেড সিগন্যাল জেনারেশনঃ
পজিশন ম্যানেজমেন্টঃ
ঝুঁকি ব্যবস্থাপনাঃ
সময় ফিল্টারিংঃ
ট্রেন্ড ক্যাপচারিং ক্যাপাসিটিঃ ইএমএ এবং এসডিআই একত্রিত করে কার্যকরভাবে বাজার প্রবণতা চিহ্নিত করে এবং অনুসরণ করে।
উচ্চ অভিযোজনযোগ্যতাঃ সামঞ্জস্যযোগ্য পরামিতিগুলির মাধ্যমে বিভিন্ন বাজারের অবস্থার সাথে খাপ খায়।
বিস্তৃত ঝুঁকি ব্যবস্থাপনাঃ সর্বজনীন ঝুঁকি নিয়ন্ত্রণের জন্য লাভ গ্রহণ, স্টপ লস এবং ট্রেলিং স্টপগুলি সংহত করে।
নমনীয় পজিশন কন্ট্রোলঃ বিভিন্ন ঝুঁকিপূর্ণ চাহিদা পূরণের জন্য লিভারেজ এবং মূলধন ব্যবহারের অনুপাত সামঞ্জস্যযোগ্য।
ব্যাকটেস্টিং বন্ধুত্বপূর্ণঃ কৌশল অপ্টিমাইজেশনের জন্য ঐতিহাসিক ডেটা ব্যাকটেস্টিং সমর্থন করে।
আবেগ নিরপেক্ষঃ উদ্দেশ্যমূলক সূচকগুলির উপর ভিত্তি করে, বিষয়গত আবেগগুলির প্রভাব হ্রাস করে।
বহুমুখিতাঃ বিভিন্ন সময়সীমা এবং ট্রেডিং যন্ত্রপাতিতে প্রয়োগ করা যেতে পারে।
ওভারট্রেডিং: অস্থির বাজারে ঘন ঘন ট্রেডিং হতে পারে, যার ফলে খরচ বাড়তে পারে।
লেগিং প্রকৃতিঃ ইএমএ এবং এসডিআই হ'ল লেগিং সূচক, প্রবণতা বিপরীতে প্রতিক্রিয়া জানাতে ধীর গতিতে।
ভুয়া ব্রেকআউট ঝুঁকিঃ স্বল্পমেয়াদী ওঠানামাকে প্রবণতা হিসেবে ভুল ব্যাখ্যা করতে পারে, যা ভুল ট্রেডিংয়ের দিকে পরিচালিত করে।
প্যারামিটার সংবেদনশীলতাঃ পারফরম্যান্স প্যারামিটার সেটিংসের উপর অত্যন্ত নির্ভরশীল, ক্রমাগত অপ্টিমাইজেশান প্রয়োজন।
বাজার পরিবেশের উপর নির্ভরশীলতাঃ নির্দিষ্ট বাজার অবস্থার মধ্যে নিম্ন ফল দিতে পারে।
লিভারেজ ঝুঁকিঃ উচ্চ লিভারেজ ক্ষতি বাড়িয়ে তুলতে পারে, তাই সতর্কতার সাথে ব্যবহারের প্রয়োজন।
প্রযুক্তি নির্ভরতাঃ স্থিতিশীল প্রযুক্তিগত পরিবেশে নির্ভর করে, সিস্টেমের ব্যর্থতা ক্ষতি হতে পারে।
ডায়নামিক প্যারামিটার সমন্বয়ঃ বিভিন্ন বাজারের পর্যায়ে উপযুক্ত করার জন্য EMA এবং SDI প্যারামিটারগুলির অভিযোজিত সমন্বয় বাস্তবায়ন করুন।
মাল্টি-টাইমফ্রেম বিশ্লেষণঃ প্রবণতা বিচার সঠিকতা উন্নত করার জন্য একাধিক সময়কাল থেকে সংকেত একীভূত করুন।
ভোল্টেবিলিটি ফিল্টারিংঃ উচ্চ ভোল্টেবিলিটি সময়কালে ট্রেডিং নিয়মগুলি সামঞ্জস্য করার জন্য ATR এর মতো ভোল্টেবিলিটি সূচক অন্তর্ভুক্ত করুন।
মার্কেট স্টেট স্বীকৃতিঃ ট্রেডিং লজিককে যথাযথভাবে অপ্টিমাইজ করার জন্য মার্কেট স্টেট শ্রেণীবিভাগ (ট্রেন্ড/রেঞ্জ) প্রবর্তন করা।
মূলধন ব্যবস্থাপনা অপ্টিমাইজেশানঃ অ্যাকাউন্ট লাভ ও ক্ষতির স্থিতির উপর ভিত্তি করে গতিশীল অবস্থান সমন্বয় বাস্তবায়ন।
সূচক সংমিশ্রণঃ সিগন্যাল নির্ভরযোগ্যতা বাড়ানোর জন্য RSI বা MACD এর মতো পরিপূরক সূচক যুক্ত করার কথা বিবেচনা করুন।
মেশিন লার্নিং ইন্টিগ্রেশনঃ প্যারামিটার নির্বাচন এবং সংকেত উত্পাদন অপ্টিমাইজ করার জন্য মেশিন লার্নিং অ্যালগরিদম চালু করুন।
ইএমএ এবং এসডিআইকে একত্রিত করে এই অভিযোজিত প্রবণতা অনুসরণকারী কৌশলটি শক্তিশালী বাজারের অভিযোজনযোগ্যতা এবং ঝুঁকি পরিচালনার ক্ষমতা প্রদর্শন করে। নমনীয় পরামিতি সেটিং এবং বিস্তৃত ঝুঁকি নিয়ন্ত্রণের ব্যবস্থাগুলির মাধ্যমে এটি ব্যবসায়ীদের একটি নির্ভরযোগ্য পরিমাণগত ট্রেডিং কাঠামো সরবরাহ করে। কৌশলটির মূল সুবিধা হ'ল এর সংবেদনশীল প্রবণতা ক্যাপচার এবং কঠোর ঝুঁকি নিয়ন্ত্রণ, যা এটিকে বিভিন্ন বাজারের পরিবেশে স্থিতিশীল পারফরম্যান্স বজায় রাখতে সক্ষম করে।
তবে, ব্যবসায়ীদের এখনও কৌশলটির অন্তর্নিহিত সম্ভাব্য ঝুঁকির বিষয়ে সচেতন হওয়া দরকার, যেমন বিলম্ব এবং পরামিতি সংবেদনশীলতা। ক্রমাগত অপ্টিমাইজেশন এবং উন্নতির মাধ্যমে, বিশেষত গতিশীল পরামিতি সমন্বয়, মাল্টি-টাইমফ্রেম বিশ্লেষণ এবং বাজার অবস্থা স্বীকৃতির মতো ক্ষেত্রে, কৌশলটির পারফরম্যান্স এবং স্থিতিশীলতা আরও বাড়ানোর সম্ভাবনা রয়েছে।
সামগ্রিকভাবে, এই কৌশলটি পরিমাণগত ট্রেডিংয়ের জন্য একটি শক্ত ভিত্তি সরবরাহ করে, যা পদ্ধতিগত এবং শৃঙ্খলাবদ্ধ ট্রেডিং পদ্ধতির সন্ধানকারী বিনিয়োগকারীদের জন্য উপযুক্ত। কৌশল নীতিগুলি গভীরভাবে বোঝার মাধ্যমে এবং ব্যক্তিগত ট্রেডিং শৈলীর সাথে তাদের একত্রিত করে, ব্যবসায়ীরা আর্থিক বাজারে তাদের প্রতিযোগিতামূলক সুবিধা বাড়ানোর জন্য কার্যকরভাবে এই সরঞ্জামটি ব্যবহার করতে পারে।
/*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()