এই কৌশলটির মূল ধারণাটি হল ইএমএ সূচকের সোনার ক্রস এবং মৃত ক্রস সংকেতগুলি কেনা এবং বিক্রয় সিদ্ধান্ত নিতে ব্যবহার করা। এটি দ্রুত এবং ধীর ইএমএগুলির একাধিক সেট প্লট করে এবং তাদের ক্রসওভারের ভিত্তিতে ট্রেডিং সংকেত তৈরি করে।
কৌশলটি প্রথমে একাধিক ইএমএ লাইন সংজ্ঞায়িত করে, যার মধ্যে দ্রুত ইএমএগুলি ইএমএ 1 থেকে ইএমএ 6 এবং ধীর ইএমএগুলি ইএমএ 7 থেকে ইএমএ 12 অন্তর্ভুক্ত রয়েছে। এটি তারপরে ক্রয় সংকেত buy_signal এবং বিক্রয় সংকেত sell_signal সংজ্ঞায়িত করেঃ
ক্রয় সংকেতটি ক্রয়_সিগন্যাল তৈরি করা হয় যখন ema1 ema3 এর উপরে ক্রস করে।
বিক্রয় সংকেত sell_signal তৈরি হয় যখন ema1 ema3 এর নিচে অতিক্রম করে।
সুতরাং যখন স্বল্পমেয়াদী EMA দীর্ঘমেয়াদী EMA এর উপরে অতিক্রম করে, এটি বাজারে একটি আপ ট্রেন্ড নির্দেশ করে এবং একটি ক্রয় সংকেত ট্রিগার করা হয়। যখন স্বল্পমেয়াদী EMA দীর্ঘমেয়াদী EMA এর নীচে অতিক্রম করে, এটি একটি ডাউন ট্রেন্ড নির্দেশ করে এবং একটি বিক্রয় সংকেত ট্রিগার করা হয়।
কৌশলটি প্রবণতা দিক নির্ধারণ এবং ক্রয় / বিক্রয় সিদ্ধান্ত অনুযায়ী নির্ধারণের জন্য EMA লাইনগুলির ক্রসওভার পর্যবেক্ষণ করে।
এই কৌশলটির সুবিধাগুলির মধ্যে রয়েছেঃ
প্রবণতা নির্ধারণের জন্য ইএমএ লাইন ব্যবহার করে স্বল্পমেয়াদী বাজারের গোলমাল ফিল্টার করা যায় এবং ট্রেডিং সংকেতগুলিকে আরো নির্ভরযোগ্য করে তোলা যায়।
একাধিক ইএমএ প্লট করা প্রবণতা পরিবর্তনগুলিকে আরও সঠিকভাবে সনাক্ত করতে পারে। দ্রুত এবং ধীর ইএমএগুলির মধ্যে ক্রসওভারগুলি গুরুত্বপূর্ণ প্রবণতা বাঁক পয়েন্টগুলি ক্যাপচার করতে সহায়তা করে।
কৌশলটি সহজ এবং স্পষ্ট। ট্রেডিং সংকেতগুলি ইএমএ ক্রস দ্বারা উত্পন্ন হয়, যা কোয়ান্টাম ট্রেডিংয়ের জন্য বোঝা এবং বাস্তবায়ন করা সহজ করে তোলে।
বিভিন্ন পণ্য এবং বাজারের সাথে খাপ খাইয়ে নেওয়ার জন্য EMA সময়ের পরামিতিগুলি কাস্টমাইজযোগ্য।
এই কৌশলের ঝুঁকিগুলির মধ্যে রয়েছেঃ
ইএমএ লাইনগুলির বিলম্বিত প্রভাব রয়েছে যা ট্রেডিং সংকেত বিলম্বিত করতে পারে।
EMA পরামিতিগুলির ভুল নির্বাচন ভুল সংকেত তৈরি করতে পারে।
ইএমএ ক্রসগুলি বিভিন্ন বাজারে মিথ্যা সংকেতগুলি কার্যকরভাবে ফিল্টার করতে ব্যর্থ হয়।
ইএমএ পরামিতিগুলির জন্য সীমিত অপ্টিমাইজযোগ্য জায়গার কারণে অতিরিক্ত ফিটিংয়ের ঝুঁকি রয়েছে।
সমাধান:
বিভিন্ন বাজারে ভুল সংকেত এড়াতে অন্যান্য সূচকগুলির সাথে ফিল্টার যুক্ত করুন।
অতিরিক্ত ফিটিং রোধ করার জন্য বিভিন্ন সময়ের পরামিতিগুলির পরীক্ষার স্থিতিশীলতা।
ঝুঁকি নিয়ন্ত্রণের জন্য পরামিতিগুলি সামঞ্জস্য করুন বা প্রস্থান প্রক্রিয়া যুক্ত করুন।
কৌশলটি নিম্নলিখিত দিকগুলিতে আরও অনুকূলিত করা যেতে পারেঃ
স্টপ লস যোগ করুন যখন লস একটি থ্রেশহোল্ডে পৌঁছায়।
অতিরিক্ত ক্রয়/বিক্রয় সংকেত দিয়ে পুনরায় প্রবেশের যুক্তি বাস্তবায়ন করুন।
সর্বোত্তম ফলাফলের জন্য EMA ক্রসওভার সময়ের পরামিতিগুলি অপ্টিমাইজ করুন।
সিগন্যালের গুণমান উন্নত করার জন্য মাল্টিফ্যাক্টরিয়াল ভ্যালিডেশনের জন্য অন্যান্য সূচক অন্তর্ভুক্ত করা।
সর্বোত্তম প্রয়োগযোগ্যতা খুঁজে পেতে বিভিন্ন পণ্যের উপর পরীক্ষার পরামিতি মিটিং।
লাইভ ট্রেডিং এ স্লিপিং বিবেচনা করুন এবং ব্যাকটেস্টিং এর মাধ্যমে অপ্টিমাইজ করুন।
এটি ইএমএ ক্রসওভারের উপর ভিত্তি করে একটি সহজ প্রবণতা অনুসরণকারী কৌশল। এটি প্রবণতা পরিবর্তনগুলি সনাক্ত করতে পারে তবে বিলম্বিত প্রভাব এবং উইপসাওসের মতো ঝুঁকিও রয়েছে। স্টপ লস, প্যারামিটার অপ্টিমাইজেশন, মাল্টিফ্যাক্টরিয়াল বৈধতা ইত্যাদির সাথে উন্নতি ব্যাকটেস্টিং এবং লাইভ ট্রেডিংয়ে কৌশল কর্মক্ষমতা আরও উন্নত করতে পারে।
/*backtest start: 2023-09-30 00:00:00 end: 2023-10-30 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //Companion Strategy script to my Cloud Study. Enjoy! -MP // study("MP's Cloud Study", overlay=true) strategy(title="MP's Cloud Strat'", shorttitle="MP's Cloud Strat", overlay=true, precision=6, pyramiding=0, initial_capital=10000, currency="USD", default_qty_type=strategy.percent_of_equity,calc_on_order_fills= false, calc_on_every_tick=false, default_qty_value=100.0, commission_type=strategy.commission.percent, commission_value=0.05) //bgcolor ( color=black, transp=20, title='Blackground', editable=true) src = close, len1 = input(2, minval=1, title="Short EMA") src2 = close, len3 = input(7, minval=1, title="Long EMA") emaShort = ema(src, len1) emaLong = ema(src2, len3) StartYear = input(2018, "Start Year") StartMonth = input(01, "Start Month") StartDay = input(18, "Start Day") StopYear = input(2018, "Stop Year") StopMonth = input(12, "Stop Month") StopDay = input(26, "Stop Day") tradeStop = timestamp(StopYear,StopMonth,StopDay,0,0) //src = close, //len1 = input(3, minval=1, title="Fast EMA 1") len2 = input(3, minval=1, title="Fast EMA 2") //len3 = input(8, minval=1, title="Fast EMA 3") len4 = input(5, minval=1, title="Fast EMA 4") len5 = input(8, minval=1, title="Fast EMA 5") len6 = input(10, minval=1, title="Fast EMA 6") //Slow EMA len7 = input(30, minval=1, title="Slow EMA 7") len8 = input(35, minval=1, title="Slow EMA 8") len9 = input(40, minval=1, title="Slow EMA 9") len10 = input(45, minval=1, title="Slow EMA 10") len11 = input(50, minval=1, title="Slow EMA 11") len12 = input(60, minval=1, title="Slow EMA 12") //Fast EMA ema1 = ema(src, len1) ema2 = ema(src, len2) ema3 = ema(src, len3) ema4 = ema(src, len4) ema5 = ema(src, len5) ema6 = ema(src, len6) //Slow EMA ema7 = ema(src, len7) ema8 = ema(src, len8) ema9 = ema(src, len9) ema10 = ema(src, len10) ema11 = ema(src, len11) ema12 = ema(src, len12) //Fast EMA Color Rules //colfastL = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4 and ema4 > ema5 and ema5 > ema6) colfastS = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4 and ema4 < ema5 and ema5 < ema6) //Slow EMA Color Rules //colslowL = ema7 > ema8 and ema8 > ema9 and ema9 > ema10 and ema10 > ema11 and ema11 > ema12 //colslowS = ema7 < ema8 and ema8 < ema9 and ema9 < ema10 and ema10 < ema11 and ema11 < ema12 //Fast EMA Final Color Rules //colFinal = colfastL and colslowL? aqua : colfastS and colslowS? orange : gray //Slow EMA Final Color Rules //colFinal2 = colslowL ? lime : colslowS ? red : gray //Fast EMA Plots p1=plot(ema1, title="Fast EMA 1", style=line, linewidth=2, color=silver) plot(ema2, title="Fast EMA 2", style=line, linewidth=1, color=silver) plot(ema3, title="Fast EMA 3", style=line, linewidth=1, color=silver) plot(ema4, title="Fast EMA 4", style=line, linewidth=1, color=silver) plot(ema5, title="Fast EMA 5", style=line, linewidth=1, color=silver) p2=plot(ema6, title="Fast EMA 6", style=line, linewidth=2, color=silver) fill(p1,p2,color=silver, transp=60) //Slow EMA Plots //p3=plot(ema7, title="Slow EMA 7", style=line, linewidth=4, color=colFinal2) //plot(ema8, title="Slow EMA 8", style=line, linewidth=3, color=colFinal2) //plot(ema9, title="Slow EMA 9", style=line, linewidth=3, color=colFinal2) //plot(ema10, title="Slow EMA 10", style=line, linewidth=3, color=colFinal2) //plot(ema11, title="Slow EMA 11", style=line, linewidth=3, color=colFinal2) //p4=plot(ema12, title="Slow EMA 12", style=line, linewidth=4, color=colFinal2) //fill(p3,p4, color=silver, transp=60) //Plot the Ribbon ma1=plot( emaShort,color=rising(emaShort,2)?green:red,linewidth=1,join=true,transp=20,title="Short") ma2=plot( emaLong,color=rising(emaLong,2)?green:red,linewidth=1,join=true,transp=20,title="Long") fcolor = emaShort>emaLong?green:red fill(ma1,ma2,color=fcolor,transp=80,title="Ribbon Fill") //fast = 4, slow = 16 //fastMA = ema(close, fast) //slowMA = ema(close, slow) //plot(fastMA, color=green, title = "buy/sell") //plot(slowMA, color=red, title = "base") //Conditions buy_signal = crossover(ema1,ema3) sell_signal = crossunder(ema1,ema3) plotshape(sell_signal, style=shape.triangleup, color = red, text="Start Short") plotshape(buy_signal, style=shape.triangledown, color = green, text="Start Long") alertcondition(sell_signal, title = 'Sell/Short', message = 'e= s= c=position b=long t=market l= | delay=30 | e= s= b=short l= t=market q=0.01') alertcondition(buy_signal, title = 'Buy/Long', message = 'e= s= c=position b=short t=market l= | delay=30 | e= s= b=long l= t=market q=0.01') //alertcondition(sell_signal, title = 'Sell/Short', message = 'e= s= c=order b=buy | delay=3 | e= b=sell q=99% p=0.70% u=currency') //alertcondition(buy_signal, title = 'Buy/Long', message = 'e= s= c=order b=sell | delay=30 | e= b=buy q=80 p=0.1% u=currency') testStartYear = input(2018, "From Year") testStartMonth = input(1, "From Month") testStartDay = input(1, "From Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2019, "To Year") testStopMonth = input(1, "To Month") testStopDay = input(1, "To Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) testPeriod() => true if testPeriod() if buy_signal strategy.entry("Long", true) if sell_signal strategy.close("Long")