মুভিং এভারেজ বাউন্স কৌশল


সৃষ্টির তারিখ: 2023-12-08 16:47:39 অবশেষে সংশোধন করুন: 2023-12-08 16:47:39
অনুলিপি: 0 ক্লিকের সংখ্যা: 925
1
ফোকাস
1621
অনুসারী

মুভিং এভারেজ বাউন্স কৌশল

কৌশল ওভারভিউ

একটি চলমান গড় বিপরীতমুখী কৌশল হল এমন একটি কৌশল যা চলমান গড়ের নীচে দামের বিপরীতের উপর নজর রাখে। এটি পরীক্ষা করে যে ক্যাপটি নীচে থেকে বিপরীতমুখী হয়েছে কিনা, যদি তা হয় তবে এটি একটি মাল্টি-হেড সংকেত; যদি ক্যাপটি চলমান গড়ের উপরের দিক থেকে নীচে থেকে বিপরীতমুখী হয় তবে এটি একটি খালি মাথা সংকেত।

কৌশল নাম

Exponential Moving Average Bounce Strategy

কৌশল নীতি

এই কৌশলটি এক্সপোনেন্সিয়াল মুভিং এভারেজের উপর ভিত্তি করে। এটি রিয়েল-টাইমে একটি EMA লাইন গণনা করে। তারপরে দামটি EMA লাইন থেকে উপরে বা নীচে বিপরীত হয় কিনা তা পরীক্ষা করেঃ

  • যদি দাম প্রথমে EMA লাইনের নিচে পড়ে এবং তারপর আবার EMA লাইনের উপরে উঠে যায়, তাহলে এটি একটি মাল্টি হেড সিগন্যাল
  • যদি দাম ইএমএ লাইন অতিক্রম করে এবং আবার ইএমএ লাইনের নীচে নেমে যায়, তবে এটি একটি ফাঁকা সিগন্যাল

এই ধরনের প্রতিক্রিয়া কৌশলগত দিকনির্দেশনা হিসেবে ব্যবহৃত হয়।

কৌশলগত শক্তি বিশ্লেষণ

চলমান অপারেশন, ফাঁদ এড়াতে

ইএমএ বিপরীতমুখী কৌশলটি কেবলমাত্র দামের বিপরীতমুখী হওয়ার পরে প্রবেশ করে এবং বিপরীতমুখী অপারেশনকে আটকাতে পারে।

রিটার্ন ছোট, ঐতিহাসিক লাভ

ইন্ডেক্সাল মুভিং এভারেজ ব্যবহারের কারণে, কার্যকরভাবে দামের তথ্য মসৃণ করতে সক্ষম হয়ে, বাজার শব্দটি ফিল্টার করে, এই কৌশলটিকে ছোট এবং আরও ভাল historicalতিহাসিক উপার্জনের জন্য প্রত্যাহার করে।

সহজে বোঝা যায়, প্যারামিটারগুলিকে নমনীয়ভাবে সামঞ্জস্য করা যায়

ইএমএ রিবাউন্ড কৌশলটি কেবলমাত্র চলমান গড়ের উপর নির্ভর করে, খুব সহজ এবং সহজ, নতুনদের পক্ষে সহজেই বোঝা যায়; এবং ইএমএ চক্রের প্যারামিটারগুলি বিভিন্ন জাতের সাথে খাপ খাইয়ে নিতে নমনীয়ভাবে সামঞ্জস্য করা যায়।

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

ভুয়া সংকেত

ইএমএ লাইনের কাছাকাছি প্রায়শই ঘন জাল ব্রেক রয়েছে, যা ভুল সংকেত সৃষ্টি করতে পারে। এই শব্দগুলি ফিল্টার করতে ইএমএ প্যারামিটারগুলি সামঞ্জস্য করতে হবে।

চলমান অপারেশন, টার্নিং পয়েন্টের পূর্বাভাস নেই

এই কৌশলটি মূলত সুসাম্প্রদায়িক অপারেশন। দামের বিপরীত দিকের পূর্বাভাস দেওয়া যায় না, কেবল প্রবণতা অনুসরণ করা যায়। এটি সম্ভবত চক্রের সমন্বয়ের জন্য সেরা প্রবেশের সময়টি মিস করে।

স্টপ ড্যামেজ পজিশনে সহজেই আঘাত করা যায়

মুভিং এভারেজের কাছাকাছি স্টপ লেভেল কখনও কখনও ভেঙ্গে যায়, যার ফলে ক্ষতির বিস্তার ঘটে। এর জন্য আরও নমনীয় স্টপ পদ্ধতি ব্যবহার করা প্রয়োজন।

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

অন্যান্য সূচকের সাথে সংযুক্ত ফিল্টারিং সংকেত

অন্য সূচক যেমন আরএসআই, এমএসিডি ইত্যাদি যোগ করা যেতে পারে যা মূল্যের বিপরীততা নিশ্চিত করে এবং মিথ্যা সংকেতগুলি ফিল্টার করে।

অপ্টিমাইজ করা ক্ষতি প্রতিরোধ

টাইম স্টপ, শক স্টপ ইত্যাদির মতো আরও নমনীয় স্টপ পদ্ধতি ব্যবহার করা যেতে পারে, যা আঘাতের ঝুঁকি হ্রাস করতে পারে।

প্যারামিটার অপ্টিমাইজেশান

ইএমএ চক্রের প্যারামিটারগুলিকে অনুকূলিতকরণ করুন এবং সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে বের করুন। আপনি ইএমএ প্যারামিটারগুলিকে গতিশীল পরিবর্তন করতে এবং বাজারের চক্রগুলি অনুসরণ করতে পারেন।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
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/
// © tweakerID

// Simple strategy that checks for price bounces over an Exponential Moving Average. If the CLOSE of the candle bounces
// back from having it's LOW below the EMA, then it's a Bull Bounce. If the CLOSE of the candle bounces down from having it's
// high above the EMA, then it's a Bear Bounce. This logic can be reverted.

//@version=4
strategy("EMA Bounce", overlay=true, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100, 
     initial_capital=10000, 
     commission_value=0.04, 
     calc_on_every_tick=false, 
     slippage=0)

direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

/////////////////////// STRATEGY INPUTS ////////////////////////////////////////
title1=input(true, "-----------------Strategy Inputs-------------------")  

i_EMA=input(20, title="EMA Length")

/////////////////////// BACKTESTER /////////////////////////////////////////////
title2=input(true, "-----------------General Inputs-------------------")  

// Backtester General Inputs
i_SL=input(true, title="Use Swing Stop Loss and Take Profit")
i_SPL=input(defval=10, title="Swing Point Loopback")
i_PercIncrement=input(defval=.2, step=.1, title="Swing Point SL Perc Increment")*0.01
i_TPRRR = input(1.2, step=.1, title="Take Profit Risk Reward Ratio")

// Bought and Sold Boolean Signal
bought = strategy.position_size > strategy.position_size[1] 
 or strategy.position_size < strategy.position_size[1]

// Price Action Stop and Take Profit
LL=(lowest(i_SPL))*(1-i_PercIncrement)
HH=(highest(i_SPL))*(1+i_PercIncrement)
LL_price = valuewhen(bought, LL, 0)
HH_price = valuewhen(bought, HH, 0)
entry_LL_price = strategy.position_size > 0 ? LL_price : na 
entry_HH_price = strategy.position_size < 0 ? HH_price : na 
tp=strategy.position_avg_price + (strategy.position_avg_price - entry_LL_price)*i_TPRRR
stp=strategy.position_avg_price - (entry_HH_price - strategy.position_avg_price)*i_TPRRR


/////////////////////// STRATEGY LOGIC /////////////////////////////////////////

EMA=ema(close, i_EMA)
LowAboveEMA=low > EMA
LowBelowEMA=low < EMA
HighAboveEMA=high > EMA
HighBelowEMA=high < EMA
BullBounce=LowAboveEMA[1] and LowBelowEMA and close > EMA //and close > open
BearBounce=HighBelowEMA[1] and HighAboveEMA and close < EMA //and close < open
plot(EMA)

BUY=BullBounce
SELL=BearBounce

//Inputs
DPR=input(false, "Allow Direct Position Reverse")
reverse=input(false, "Reverse Trades")

// Entries
if reverse
    if not DPR
        strategy.entry("long", strategy.long, when=SELL and strategy.position_size == 0)
        strategy.entry("short", strategy.short, when=BUY and strategy.position_size == 0)
    else     
        strategy.entry("long", strategy.long, when=SELL)
        strategy.entry("short", strategy.short, when=BUY)
else
    if not DPR 
        strategy.entry("long", strategy.long, when=BUY and strategy.position_size == 0)
        strategy.entry("short", strategy.short, when=SELL and strategy.position_size == 0)
    else
        strategy.entry("long", strategy.long, when=BUY)
        strategy.entry("short", strategy.short, when=SELL)


SL=entry_LL_price
SSL=entry_HH_price
TP=tp
STP=stp

strategy.exit("TP & SL", "long", limit=TP, stop=SL, when=i_SL)
strategy.exit("TP & SL", "short", limit=STP, stop=SSL, when=i_SL)

/////////////////////// PLOTS //////////////////////////////////////////////////

plot(strategy.position_size > 0 ? SL : na , title='SL', style=plot.style_cross, color=color.red)
plot(strategy.position_size < 0 ? SSL : na , title='SSL', style=plot.style_cross, color=color.red)
plot(strategy.position_size > 0 ? TP : na, title='TP', style=plot.style_cross, color=color.green)
plot(strategy.position_size < 0 ? STP : na, title='STP', style=plot.style_cross, color=color.green)
// Draw price action setup arrows
plotshape(BUY ? 1 : na, style=shape.triangleup, location=location.belowbar, 
 color=color.green, title="Bullish Setup", transp=80, size=size.auto)
plotshape(SELL ? 1 : na, style=shape.triangledown, location=location.abovebar, 
 color=color.red, title="Bearish Setup", transp=80, size=size.auto)