বিটকয়েন ট্রেডিং কৌশল RVI এবং EMA ভিত্তিক

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

img

সারসংক্ষেপ

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

কৌশল নীতি

  1. অতিরিক্ত ক্রয় এবং অতিরিক্ত বিক্রয়ের শর্তগুলি বিচার করতে আরভিআই ব্যবহার করুন। যখন আরভিআই সূচক লাইনটি তার সংকেত লাইনের উপরে অতিক্রম করে, এটি দীর্ঘ যেতে একটি অতিরিক্ত ক্রয় সংকেত। যখন আরভিআই লাইনটি তার সংকেত লাইনের নীচে অতিক্রম করে, এটি সংক্ষিপ্ত যেতে একটি অতিরিক্ত বিক্রয়ের সংকেত।

  2. প্রবণতা দিক নির্ধারণের জন্য দ্বৈত ইএমএ ব্যবহার করুন। যখন দ্রুত ইএমএ ধীর ইএমএর উপরে থাকে, এটি একটি উত্থান প্রবণতা। যখন ধীর ইএমএ দ্রুত ইএমএর উপরে থাকে, এটি একটি হ্রাস প্রবণতা।

  3. শুধুমাত্র যখন RVI প্রবেশের সংকেত দেয় এবং EMAs একটি উত্থান প্রবণতা দেখায় তখনই লম্বা যান। শুধুমাত্র যখন RVI প্রবেশের সংকেত দেয় এবং EMAs একটি bearish প্রবণতা দেখায় তখনই সংক্ষিপ্ত যান।

  4. লং যাওয়ার পর স্টপ লসটি সাম্প্রতিক সর্বনিম্নের নীচে Atr এর দূরত্ব দ্বারা সেট করা হয়এট্রিল, এবং লাভ গ্রহণ করা হয়েছে সাম্প্রতিক সর্বোচ্চ উপরে একটি দূরত্ব দ্বারা এট্রিলatrTP। শর্ট হওয়ার পর স্টপ লস সাম্প্রতিক উচ্চতার উপরে atr এর দূরত্ব দ্বারা সেট করা হয়এট্রা এসএল, এবং লভ্যাংশ গ্রহণ করা হয়েছে সাম্প্রতিক সর্বনিম্নের নীচে একটি দূরত্ব দ্বারাatrTP.

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

  1. প্রবণতা এবং অত্যধিক ক্রয়-বিক্রয় সূচকগুলির সংমিশ্রণ মিথ্যা ব্রেকআউট এড়ায়।

  2. ডায়নামিক স্টপ লস এবং লাভ নিতে সাহায্য করে বড় পদক্ষেপ ধরতে।

  3. ট্রেন্ডের গুণমান এবং অতিরিক্ত ক্রয়/অতিরিক্ত বিক্রয়ের মাত্রা ভারসাম্য করে, সংকেতের নির্ভুলতা উন্নত করে।

  4. ব্যাপক ব্যাকটেস্টিং, অপ্টিমাইজড পরামিতি, ভাল বাস্তব ট্রেডিং কর্মক্ষমতা.

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

  1. ইএমএ-র মতে, বাজারে ঘন ঘন প্রবণতা পরিবর্তনের ফলে ওভারট্রেডিং হতে পারে।

  2. RVI পরামিতি এবং EMA সময়ের বিভিন্ন ট্রেডিং যন্ত্রের জন্য অপ্টিমাইজেশান প্রয়োজন, অন্যথায় কর্মক্ষমতা ক্ষতিগ্রস্ত হতে পারে।

  3. বাজারের অস্থিরতার উপর ভিত্তি করে স্টপ লস এবং লাভের অনুপাত যুক্তিসঙ্গতভাবে নির্ধারণ করা উচিত, অন্যথায় ঝুঁকি কার্যকরভাবে নিয়ন্ত্রণ করা যাবে না।

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

  1. ট্রেডিংয়ের সিদ্ধান্তগুলি আরও সুনির্দিষ্ট করার জন্য আরো সূচক যোগ করা যেতে পারে, যেমন দোলক, বোলিংজার ব্যান্ড ইত্যাদি।

  2. স্টপ লস/টেক প্রফিট দূরত্বগুলি গতিশীলভাবে ATR এর মতো অস্থিরতা পরিমাপের উপর ভিত্তি করে সামঞ্জস্য করা যেতে পারে, উচ্চ অস্থিরতার সময়কালে বৃহত্তর স্টপগুলিকে অনুমতি দেয়।

  3. পরামিতি সংমিশ্রণগুলি কৌশল দৃঢ়তা উন্নত করার জন্য বিভিন্ন যন্ত্রের জন্য পৃথকভাবে পরীক্ষা করা এবং অনুকূলিত করা যেতে পারে।

সিদ্ধান্ত

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


/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//this strategy works well on h4 (btc or eth)


//@version=5
strategy(title="Relative Vigor Index", shorttitle="RVGI",overlay=true)
//indicator(title="Relative Vigor Index", shorttitle="RVGI", format=format.price, precision=4, timeframe="", timeframe_gaps=true)
len = input.int(4, title="Length rvi", minval=1)
rvi = math.sum(ta.swma(close-open), len)/math.sum(ta.swma(high-low),len)
sig = ta.swma(rvi)
offset = input.int(0, "Offset rvi", minval = -500, maxval = 500)


atrlength = input.int(19,title="Atr Length",minval=1)
ema1 =  input.int(95,title="Long EMA rapida",minval=1,step=10)
ema2 =  input.int(200,title="Long EMA lenta",minval=1,step=10)

atrSL = input.float(2.0,title="Atr SL", step=0.1)
atrTP = input.float(1.0,title="Atr TP", step=0.1)

atr = ta.atr(atrlength)
esalcista = low > ta.ema(close,ema1) and ta.ema(close,ema1) > ta.ema(close,ema2)
bajista = high < ta.ema(close,ema1) and ta.ema(close,ema1) < ta.ema(close,ema2)


//plot(high + atr)
//plot(low - atr)

//strategy.entry("compra",strategy.long, when=ta.crossover(rvi,sig))
//strategy.close("compra",when=ta.crossunder(rvi,sig))

//plot(rvi, color=#008000, title="RVGI", offset = offset)
//plot(sig, color=#FF0000, title="Signal", offset = offset)
//plotshape(true,style=shape.xcross)

var TP = 0.0
var SL = 0.0

comprado = strategy.position_size>0
vendido = strategy.position_size<0

crucepositivo = ta.crossover(rvi,sig)
crucenegativo = ta.crossunder(rvi,sig)

if comprado
    // ver SL
    if low < SL
        strategy.close("BUY",comment="SL")
        
        
if comprado    
    //ver tp
    if high > TP
        strategy.close("BUY",comment="TP")
        
       
    
    
    
if not comprado and not vendido
    if crucepositivo and esalcista
        strategy.entry("BUY",strategy.long)
        SL := low - (atr * atrSL)
        TP := high + (atr * atrTP)
        alert("BUY",alert.freq_once_per_bar)



//---------------

if vendido
    // ver SL
    if high > SL
        strategy.close("SELL",comment="SL")
        
        
if vendido    
    //ver tp
    if low < TP
        strategy.close("SELL",comment="TP")
        
       

if not vendido and not comprado
    if crucenegativo and bajista
        strategy.entry("SELL",strategy.short)
        SL := high + (atr * atrSL)
        TP := low - (atr * atrTP)
        alert("SELL",alert.freq_once_per_bar)







//----------------

//plotshape(comprado,style=shape.xcross)
plot( comprado ? SL : na, color=color.red,style=plot.style_circles)
plot( comprado ? TP : na, color=color.blue,style=plot.style_circles)

plot( ta.ema(close,ema1),color=color.orange)
plot( ta.ema(close,ema2),color=color.yellow)


plot( vendido ? SL : na, color=color.red,style=plot.style_circles)
plot( vendido ? TP : na, color=color.blue,style=plot.style_circles)


আরো