ইএমএ স্কেল ক্রস ট্রেন্ড স্ট্র্যাটেজি অনুসরণ

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

img

সারসংক্ষেপ

এই কৌশলটি বিভিন্ন দৈর্ঘ্যের দুটি EMA এর ঢালগুলির ক্রস ব্যবহার করে সংকেত অনুসরণ করে প্রবণতা তৈরি করে। ডিফল্টরূপে, 130 এবং 400 ব্যবহার করা হয়, যা খুব ভাল সম্পাদন করে।

কৌশলটি বাজারে প্রবেশের জন্য নিম্নলিখিত শর্তগুলি রয়েছেঃ

  • দ্রুত ঢাল > ধীর ঢাল এবং মূল্য > EMA 200: লং যান
  • দ্রুত ঢাল < ধীর ঢাল এবং মূল্য < EMA 200: শর্ট যান

যখন সরল ঢালগুলো বিপরীত দিকে অতিক্রম করে, তখন এটি অবস্থান বন্ধ করে দেয়।

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

এছাড়াও একটি বিকল্প ভোলাটিলিটি ফিল্টার রয়েছে, যা কেবলমাত্র দুটি ঢালের মধ্যে পার্থক্য একটি নির্দিষ্ট মানের চেয়ে বেশি হলে অবস্থানটি খোলে। উদ্দেশ্যটি হ'ল যখন দাম পাশের দিকে চলেছে এবং শব্দটি সংকেতটির চেয়ে অনেক বেশি হয় তখন অবস্থানগুলি খোলা এড়ানো।

উপভোগ করো!

কৌশলগত যুক্তি

এই কৌশলটির মূল বিষয় হল ভিন্ন দৈর্ঘ্যের দুটি EMA-র ঢালের তুলনা করা।

প্রথমে, 130 এবং 400 এর দৈর্ঘ্যের EMA গুলি গণনা করা হয়, তারপরে প্রতিটি ঢাল গণনা করা হয়, তারপরে প্রতিটি ঢালের জন্য মসৃণ ঢালের বক্ররেখা পেতে দৈর্ঘ্য 3 এর EMA গুলি গণনা করা হয়।

যখন দ্রুত ইএমএ ঢাল ধীর ইএমএ ঢালের উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উৎপন্ন হয়। যখন দ্রুত ইএমএ ঢাল ধীর ইএমএ ঢালের নীচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উৎপন্ন হয়।

গোলমাল ফিল্টার করার জন্য, ২০০ পেরিওড EMA একটি ট্রেন্ড ফিল্টার হিসাবে ব্যবহার করা যেতে পারে, শুধুমাত্র যখন দাম EMA এর উপরে থাকে তখনই লং সিগন্যাল এবং EMA এর নিচে থাকলে শুধুমাত্র সংক্ষিপ্ত সিগন্যাল বিবেচনা করে।

উপরন্তু, একটি অস্থিরতা ফিল্টার ব্যবহার করা যেতে পারে, যখন দুটি ঢালের মধ্যে পার্থক্য একটি থ্রেশহোল্ডের চেয়ে বেশি হয় তখনই সংকেত তৈরি করা হয়, যেখানে ঢালগুলি ক্রস হয় তবে অস্থিরতা অপর্যাপ্ত হয় এমন ঘটনাগুলি এড়ানো হয়।

যখন দ্রুত এবং ধীর ঢালগুলি বিপরীতভাবে অতিক্রম করে, মুনাফা/হানি বন্ধ করার জন্য পজিশনগুলি বন্ধ হয়ে যায়।

সুবিধা বিশ্লেষণ

  1. সিগন্যাল উৎপন্ন করতে ঢাল ক্রস ব্যবহার কার্যকরভাবে প্রবণতা ট্র্যাক করতে পারেন

  2. ইএমএ সময়ের সমন্বয়গুলি বিভিন্ন বাজারের অবস্থার সাথে খাপ খাইয়ে নিতে পারে

  3. প্রবণতা ফিল্টার চঞ্চল মূল্য কর্ম দ্বারা বিভ্রান্ত করা এড়ানো

  4. অস্থিরতা ফিল্টার মিথ্যা সংকেত ফিল্টার আউট

  5. সহজ এবং পরিষ্কার যুক্তি, সহজেই বোঝা এবং বাস্তবায়ন

  6. একাধিক টাইমফ্রেমে ব্যবহার করা যেতে পারে

ঝুঁকি বিশ্লেষণ

  1. বড় বাজারে ঘন ঘন খোলা এবং বন্ধ হতে পারে

  2. অনুপযুক্ত ইএমএ সময়গুলি প্রবণতা টার্নিং পয়েন্টগুলি মিস করতে পারে

  3. পরিবর্তিত বাজারের অবস্থার সাথে সামঞ্জস্য রেখে পরামিতিগুলিকে সামঞ্জস্য করা উচিত

  4. এমএ সিস্টেমের মত, বড় প্রবণতা চরম সময়ে বিপরীত হতে পারে

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

  1. সর্বোত্তম পরামিতি খুঁজে পেতে বিভিন্ন EMA সময়ের সমন্বয় চেষ্টা করুন

  2. সম্পদ বৈশিষ্ট্য এবং বাজারের অবস্থার উপর নির্ভর করে পরামিতি নির্বাচন করুন

  3. ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস কৌশল যুক্ত করার কথা বিবেচনা করুন

  4. ইএমএ সময়কালকে গতিশীলভাবে সামঞ্জস্য করার বিষয়টি বিবেচনা করুন

  5. বিভিন্ন অস্থিরতা থ্রেশহোল্ড মান পরীক্ষা করুন

  6. সময়সীমার মধ্যে পরীক্ষার কার্যকারিতা

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

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


/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// strategy(title="Slopes",initial_capital=1000, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.06, slippage = 2, default_qty_value=30, overlay=false)

//definizione input

start = timestamp(input(2018, "start year"), input(1, "start month"), input(1, "start day"), 00, 00)
end = timestamp(input(2020, "end year"), input(1, "end month"), input(1, "end day"), 00, 00)

average = input (title="Source MA Type", type=input.string, defval="EMA",options=["EMA","SMA"])

len1=input(130,title="Fast MA Length")
len2=input(400,title="Slow MA Length")

smoothingavg = input (title="Smoothing MAs Type", type=input.string, defval="EMA",options=["EMA","SMA"])
smoothingavglen = input (3,title="Smoothing MAs Length")

trendfilter=input(true,title="Trend Filter")
trendfilterperiod=input(200,title="Trend Filter MA Period")
trendfiltertype=input (title="Trend Filter MA Type", type=input.string, defval="EMA",options=["EMA","SMA"])

volatilityfilter=input(false,title="Volatility Filter")
volatilitydelta=input(0.0003,step=0.0001,title="Delta Slopes EMA")

//variabili

m1 = if average == "EMA" 
    ema(close,len1)
else
    sma(close,len1)

m2=if average == "EMA" 
    ema(close,len2)
else
    sma(close,len2)

slp1=(m1-m1[1])/m1
slp2=(m2-m2[1])/m2

e1=if smoothingavg == "EMA" 
    ema(slp1,smoothingavglen)
else
    sma(slp1,smoothingavglen)

e2=if smoothingavg == "EMA" 
    ema(slp2,smoothingavglen)
else
    sma(slp2,smoothingavglen)

plot(e1,color=color.yellow)
plot(e2,color=color.red)
//plot (abs(e1-e2),color=color.white)
//plot (ema(e1-e2,9),color=color.yellow)

//variabili accessorie e condizioni

TrendConditionL=if trendfiltertype =="EMA"
    close>ema(close,trendfilterperiod)
else
    close>sma(close,trendfilterperiod)
    
TrendConditionS=if trendfiltertype =="EMA"
    close<ema(close,trendfilterperiod)
else
    close<sma(close,trendfilterperiod)
    
VolatilityCondition = abs(e1-e2) > volatilitydelta

ConditionEntryL= if trendfilter == true
    if volatilityfilter == true
        e1>e2 and TrendConditionL and VolatilityCondition
    else
        e1>e2 and TrendConditionL
else
    if volatilityfilter == true
        e1>e2 and VolatilityCondition
    else 
        e1>e2

ConditionEntryS= if trendfilter == true
    if volatilityfilter == true
        e1<e2 and TrendConditionS and VolatilityCondition
    else 
        e1<e2 and TrendConditionS
else
    if volatilityfilter == true
        e1<e2 and VolatilityCondition
    else
        e1<e2

ConditionExitL=crossunder(e1,e2)
ConditionExitS=crossover(e1,e2)

if true
    if ConditionExitS
        if strategy.position_size < 0
            strategy.close("SLPShort")

if true
    if ConditionExitL
        if strategy.position_size > 0
            strategy.close("SLPLong")

if true
    if ConditionEntryL
        strategy.entry ("SLPLong",long=true)
        
if true
    if ConditionEntryS 
        strategy.entry("SLPShort",long=false)

আরো