রেইনবো মুভিং এভারেজ ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2023-09-28 11:01:59 অবশেষে সংশোধন করুন: 2023-09-28 11:01:59
অনুলিপি: 0 ক্লিকের সংখ্যা: 757
1
ফোকাস
1617
অনুসারী

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি ট্রেডিং সিগন্যাল তৈরির জন্য নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করেঃ

  1. একটি রংধনু চলমান গড় সিস্টেম তৈরি করুন। এই সিস্টেমে 7 টি চলমান গড় রয়েছে, যার মধ্যে প্রথম চলমান গড়ের সময়কাল 12 হয়, উত্সের তথ্যটি বন্ধের দামের গড়। বাকি 6 টি চলমান গড়ের সময়কালটি 3 টি সময়কালের সাথে হ্রাস করে, উত্সের তথ্যটি পূর্ববর্তী চলমান গড়ের মান।

  2. ট্রেন্ডের দিকনির্দেশনা নির্ধারণ করুন: যদি প্রথম চলমান গড়টি রংধনু চলমান গড়ের শীর্ষে থাকে তবে এটি একটি উত্থান হিসাবে সংজ্ঞায়িত হয়; যদি এটি সবচেয়ে নীচে থাকে তবে এটি একটি পতনশীল প্রবণতা হিসাবে সংজ্ঞায়িত হয়; যদি এটি মাঝখানে থাকে তবে এটি একটি সমন্বয় হিসাবে সংজ্ঞায়িত হয়।

  3. ট্রেডিং সিগন্যাল উৎপন্ন করা। যখন রংধনু মুভিং এভারেজ সিস্টেমের প্রবণতা উর্ধ্বমুখী থেকে নিম্নমুখী হয়, তখন বিক্রয় সংকেত উৎপন্ন করা; যখন প্রবণতা নিম্নমুখী থেকে উর্ধ্বমুখী হয়, তখন ক্রয় সংকেত উৎপন্ন করা; যখন প্রবণতা সমন্বয় থেকে উর্ধ্বমুখী বা নিম্নমুখী হয়, তখন বর্তমান অবস্থানকে সমতল করা।

  4. আরএসআই ফিল্টার. শুধুমাত্র যখন আরএসআই সূচকটি স্বাভাবিক দেখায় তখনই ট্রেডিং সিগন্যাল গ্রহণ করা হয়। প্রথম আরএসআই সূচকটি মিথ্যা ব্রেকডাউন এড়াতে ওভার-বিক্রি অঞ্চলের মধ্যে থাকা প্রয়োজন; দ্বিতীয় আরএসআইটি মধ্যবর্তী অঞ্চলে থাকতে পারে না, যাতে ব্রেকডাউনটি যথেষ্ট গতিশীল হয়।

কৌশলগত সুবিধা

এই কৌশলটির সুবিধাগুলো হলঃ

  1. রেইনবো মুভিং এভারেজ সিস্টেম ট্রেন্ডের দিকনির্দেশনা সঠিকভাবে নির্ধারণ করতে পারে। একাধিক মুভিং এভারেজ সমন্বয় কার্যকরভাবে বাজার শব্দ ফিল্টার করতে পারে এবং প্রবণতা বিপরীত সনাক্ত করতে পারে।

  2. RSI সূচকটি একটি দ্বৈত ফিল্টারিং প্রক্রিয়া যা কার্যকরভাবে মিথ্যা ব্রেকিং সংকেতগুলি ফিল্টার করতে পারে, যাতে সেট করা যায় না। প্রথম RSI নিশ্চিত করে যে এটি স্বাভাবিক অঞ্চলে রয়েছে এবং দ্বিতীয় RSI নিশ্চিত করে যে ব্রেকিং শক্তি যথেষ্ট বড়।

  3. প্রবণতা এবং বিপরীতমুখী সূচকগুলির সমন্বয়ে, প্রবণতা পরিবর্তনের সময় আপনি সময়মতো প্রবেশ করতে পারেন এবং পতনের পিছনে তাড়া করা এড়াতে পারেন

  4. “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন” বা “অঞ্চল নির্বাচন”) ।

  5. এই কৌশলটি প্যারামিটার অপ্টিমাইজেশনের জন্য যথেষ্ট জায়গা রয়েছে এবং বিভিন্ন জাত এবং সময়কালের জন্য আরও ভাল ফলাফল অর্জনের জন্য মুভিং এভারেজ চক্র, দৈর্ঘ্যের অনুপাত, আরএসআই প্যারামিটার ইত্যাদি সামঞ্জস্য করে অপ্টিমাইজ করা যেতে পারে।

কৌশলগত ঝুঁকি

এই কৌশলটি নিম্নলিখিত ঝুঁকির সাথে জড়িতঃ

  1. যখন প্রবণতা বিপরীত হয় না, একটি বিভ্রান্তিকর বিপরীত সংকেত তৈরি হতে পারে, যার ফলে ট্রেডিং ক্ষতি হতে পারে। একটি চলমান গড় চক্রটি যথাযথভাবে সামঞ্জস্য করা যেতে পারে যাতে বিপরীত সংকেত আরও স্পষ্ট হয়।

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

  3. বিপরীতমুখী বিলম্বিত হলে, বিপরীতমুখী সংকেত প্রেরণের পরে, ক্ষতির সময় এবং স্থান প্রসারিত হয়। চলমান গড়ের সময়কালের পার্থক্যকে বাড়িয়ে তুলতে পারে, যাতে সংকেতটি আরও সময়মত প্রেরণ করা যায়।

  4. প্যারামিটার সেট না হলে, কিছু সঠিক সংকেত ফিল্টার করা হতে পারে, বা সংকেত বিলম্বিত হতে পারে। বিভিন্ন জাতের বৈশিষ্ট্য অনুসারে প্যারামিটারগুলি সামঞ্জস্য করতে হবে।

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

এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে উন্নত করা যেতে পারেঃ

  1. চলমান গড় প্যারামিটার অপ্টিমাইজেশান: চলমান গড়ের সময়কাল, সময়কালের পার্থক্যের অনুপাত, চলমান গড়ের পদ্ধতি (এসএমএ বা ইএমএ) ইত্যাদি প্যারামিটারগুলি আরও সঠিক প্রবণতা বিচার করার জন্য অপ্টিমাইজ করা যেতে পারে।

  2. RSI প্যারামিটার অপ্টিমাইজেশান. RSI এর প্যারামিটার যেমন চক্রের দৈর্ঘ্য, ওভারবই অঞ্চল, ওভারসোল্ড অঞ্চল, নিরপেক্ষ অঞ্চল ইত্যাদি অপ্টিমাইজ করা যায়, যা ফিল্টারটিকে আরও সুনির্দিষ্ট এবং কার্যকর করে তোলে।

  3. টাইম সাইকেল অপ্টিমাইজেশানঃ আপনি বিভিন্ন টাইম সাইকেল পরীক্ষা করতে পারেন এবং সেরা ফলাফলের জন্য কৌশলটির জন্য সবচেয়ে উপযুক্ত টাইম সাইকেল চয়ন করতে পারেন।

  4. জাতের অপ্টিমাইজেশানঃ বিভিন্ন জাতের বৈশিষ্ট্য অনুসারে প্যারামিটার বা নিয়মগুলি সামঞ্জস্য করা যেতে পারে যাতে কৌশলটি সেই জাতের জন্য সর্বোত্তম হয়।

  5. স্টপ-অফ-লস মেশিন যুক্ত করুন। রিটার্নের ফলাফলের উপর ভিত্তি করে, একটি যুক্তিসঙ্গত স্টপ-অফ-লস স্তর নির্ধারণ করা যেতে পারে, যা একক লেনদেনের ঝুঁকি এবং উপার্জনের আকার নিয়ন্ত্রণ করে।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//╔════════════════════════════════════════════════════════════════════════════╗
//║Rainbow Backtesting base on "Rainbow Moving Average" Strategy as below:     ║
//║1.Rainbow Moving Average setup                                              ║
//║- Source: source of 1st MA                                                  ║
//║- Type: SMA/EMA                                                             ║
//║- Period: period of 1st MA                                                  ║
//║- Displacement: period of 2nd MA to 7th MA with source is previous MA       ║
//║2.Trend Define                                                              ║
//║- Up Trend: Main MA moving at the top of Rainbow                            ║
//║- Down Trend: Main MA moving at the bottom of Rainbow                       ║
//║- Sideway: Main MA moving between the top and the bottom of Rainbow         ║
//║3.Signal                                                                    ║
//║- Buy Signal: When Rainbow change to Up Trend.                              ║
//║- Sell Signal: When Rainbow change to Down Trend.                           ║
//║- Exit: When Rainbow change to Sideway.                                     ║
//║4.RSI Filter                                                                ║
//║- "Enable": Only signals have 1st RSI moving between Overbought and Oversold║
//║and 2nd RSI moving outside Middle Channel are accepted.                     ║
//║- The filter may help trader avoid bull trap, bear trap and choppy market.  ║
//╚════════════════════════════════════════════════════════════════════════════╝

//@version=4
strategy("Rainbow Strategy Backtesting",overlay=false)
//++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++ Rainbow Moving Average +++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++
rainbow_tt="=== Rainbow Moving Average ==="
ma1_source=input(hlc3,title="Source",type=input.source, inline="set1", group=rainbow_tt)
rb_type=input("SMA",title="Type",options=["SMA","EMA"], inline="set1", group=rainbow_tt)
ma1_len=input(12,title="Period", inline="set2", group=rainbow_tt)
dis_len=input(3,title="Displacement", inline="set2", group=rainbow_tt,minval=2)
trend_tt="=== Trend Color ==="
up_col=input(color.new(color.blue,0),title="Up",inline="Color",group=trend_tt)
dn_col=input(color.new(color.red,0),title="Down",inline="Color",group=trend_tt)
sw_col=input(color.new(color.yellow,0),title="No",inline="Color",group=trend_tt)
//1st
ma1=rb_type=="SMA"?sma(ma1_source,ma1_len):ema(ma1_source,ma1_len)
//2nd
ma2=rb_type=="SMA"?sma(ma1,dis_len):ema(ma1,dis_len)
//3rd
ma3=rb_type=="SMA"?sma(ma2,dis_len):ema(ma2,dis_len)
//4
ma4=rb_type=="SMA"?sma(ma3,dis_len):ema(ma3,dis_len)
//5
ma5=rb_type=="SMA"?sma(ma4,dis_len):ema(ma4,dis_len)
//6
ma6=rb_type=="SMA"?sma(ma5,dis_len):ema(ma5,dis_len)
//7
ma7=rb_type=="SMA"?sma(ma6,dis_len):ema(ma6,dis_len)
//MinMax
rb_max=max(ma1,ma2,ma3,ma4,ma5,ma6,ma7)
rb_min=min(ma1,ma2,ma3,ma4,ma5,ma6,ma7)
dir_col=
       ma1==rb_max?up_col:
       ma1==rb_min?dn_col:
       sw_col
dir_style=shape.circle
plotshape(dir_col[1]==dir_col?0:na,title="Trend",style=dir_style,color=dir_col,location=location.absolute)
//++++++++++++++++++++++++++++++++++++++
//+++++++++++++ RSI Filter +++++++++++++
//++++++++++++++++++++++++++++++++++++++
rsi_tt="=== RSI Filter ==="
rsi_filter=input("Enable",title="Filter",options=["Enable","Disable"],inline="set",group=rsi_tt)
over_tt="Over Filter"
rsi_len_1=input(12,title="Period",inline="set",group=over_tt)
rsi_ovb=input(65,title="Overbought",inline="set",group=over_tt)
rsi_ovs=input(35,title="Oversold",inline="set",group=over_tt)
rsi_1=rsi(close,rsi_len_1)
mid_tt="Middle Filter"
rsi_len_2=input(9,title="Period",inline="set",group=mid_tt)
rsi_mid_top=input(56,title="Upper",inline="set",group=mid_tt)
rsi_mid_bot=input(44,title="Lower",inline="set",group=mid_tt)
rsi_2=rsi(close,rsi_len_2)
//Status
var rsi_status="None"
if (rsi_1>rsi_ovs and rsi_1<rsi_ovb) and (rsi_2[1]<rsi_mid_bot or rsi_2[1]>rsi_mid_top)
    rsi_status:="Normal"
else
    rsi_status:="None"
//Signal
BuySignal= 
       rsi_filter=="Disable"?
       dir_col[1]!=up_col
       and
       dir_col[0]==up_col
       :
       dir_col[1]!=up_col
       and
       dir_col[0]==up_col
       and
       rsi_status=="Normal"
       
SellSignal= 
       rsi_filter=="Disable"?
       dir_col[1]!=dn_col
       and
       dir_col[0]==dn_col
       :
       dir_col[1]!=dn_col
       and
       dir_col[0]==dn_col
       and
       rsi_status=="Normal"
       
exit=
       (dir_col[1]!=sw_col
       and
       dir_col[0]==sw_col)
buycol =
       BuySignal?
       up_col: na

sellcol =
       SellSignal?
       dn_col: na

exitcol =
       exit?
       sw_col: na

buy_style=shape.arrowup
sell_style=shape.arrowdown
exit_style=shape.square
plotshape(BuySignal?0:na,title="Buy",text="Buy",style=buy_style,color=buycol,location=location.absolute)
plotshape(SellSignal?0:na,title="Sell",text="Sell",style=sell_style,color=sellcol,location=location.absolute)
plotshape(exit?0:na,title="Exit",text="Exit",style=exit_style,color=exitcol,location=location.absolute)

filter=
       rsi_filter=="Enable"?
       dir_col[1]!=dir_col 
       and BuySignal==false 
       and SellSignal==false 
       and exit==false:
       na
filter_style=shape.xcross
filtercol=
       filter?
       dir_col:na
plotshape(filter?0:na,title="Filter",text="Filter",style=filter_style,color=filtercol,location=location.absolute)

//+++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++ Backtesting ++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++
strategy.entry("Long", strategy.long, when=BuySignal)
strategy.close("Long", when=exit or filter)
strategy.entry("Short", strategy.short, when=SellSignal)
strategy.close("Short", when=exit or filter)
//EOF