চলমান গড় ক্রসওভার কৌশল অনুসরণ করার প্রবণতা


সৃষ্টির তারিখ: 2024-01-29 16:52:46 অবশেষে সংশোধন করুন: 2024-01-29 16:52:46
অনুলিপি: 3 ক্লিকের সংখ্যা: 657
1
ফোকাস
1664
অনুসারী

চলমান গড় ক্রসওভার কৌশল অনুসরণ করার প্রবণতা

ওভারভিউ

এই কৌশলটি সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল সরল

কৌশল নীতি

এই কৌশলটি প্রথমে EMA, SMA, RMA, WMA এবং VWMA সহ চলমান গড়ের প্রকারের উপর ভিত্তি করে সেট করা হয়। তারপরে চলমান গড় গণনার জন্য একটি সময়কাল সেট করা হয়, সাধারণত 10 থেকে 250 কে লাইন। বিভিন্ন মুদ্রা জোড়া অনুযায়ী, বিভিন্ন চলমান গড়ের প্রকার এবং সময়কালের সংখ্যা নির্বাচন করা সম্পূর্ণ ভিন্ন প্রভাব অর্জন করতে পারে।

এই কৌশলটি নিম্নরূপঃ

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

পজিশন গঠনের সময় মূল্যবৃদ্ধি এবং পজিশন খোলার সময় মূল্য হ্রাসের ইঙ্গিত হিসাবে বিবেচনা করা হয়।

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

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

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

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

এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ

  1. কিছু মুদ্রা জোড়া এবং প্যারামিটারে, আয় এবং স্থিতিশীলতা খুব বেশি নয়;
  2. স্বল্পমেয়াদী মূল্যের পরিবর্তনের প্রতি কার্যকরভাবে প্রতিক্রিয়া জানাতে অক্ষমতা এবং উচ্চতর অস্থির মুদ্রার জন্য দুর্বল কার্যকারিতা;
  3. চলমান গড়ের সময়কাল বেছে নেওয়ার ভিত্তিটি যথেষ্ট বৈজ্ঞানিক নয় এবং এটি কিছুটা বিষয়গত।

প্রতিরোধ ও অপ্টিমাইজেশনের দিকঃ

  1. দীর্ঘ সময়কাল, যেমন 12 ঘন্টা, 1 দিন, অপ্রয়োজনীয় লেনদেন হ্রাস এবং স্থিতিশীলতা বৃদ্ধি করতে পারে;
  2. প্যারামিটার অপ্টিমাইজেশান ফাংশন যোগ করা হয়েছে, যা স্বয়ংক্রিয়ভাবে বিভিন্ন প্যারামিটার সমন্বয় পরীক্ষা করে এবং সর্বোত্তম প্যারামিটার খুঁজে বের করে;
  3. চলমান গড়ের সময়কাল নির্বাচন করার জন্য একটি বৈশিষ্ট্য যুক্ত করা হয়েছে যাতে সিস্টেমটি স্বয়ংক্রিয়ভাবে সর্বোত্তম সময়কাল নির্ধারণ করতে পারে।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Author @divonn1994

initial_balance = 100
strategy(title='Close v Open Moving Averages Strategy', shorttitle = 'Close v Open', overlay=true, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=initial_balance)

//Input for number of bars for moving average, Switch to choose moving average type, Display Options and Time Frame of trading----------------------------------------------------------------

bars = input.int(66, "Moving average length (number of bars)", minval=1, group='Strategy') //66 bars and VWMA for BTCUSD on 12 Hours.. 35 bars and VWMA for BTCUSD on 1 Day
strategy = input.string("VWMA", "Moving Average type", options = ["EMA", "SMA", "RMA", "WMA", "VWMA"], group='Strategy')

redOn = input.string("On", "Red Background Color On/Off", options = ["On", "Off"], group='Display')
greenOn = input.string("On", "Green Background Color On/Off", options = ["On", "Off"], group='Display')
maOn = input.string("On", "Moving Average Plot On/Off", options = ["On", "Off"], group='Display')

startMonth = input.int(title='Start Month 1-12 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=12, group='Beginning of Strategy')
startDate = input.int(title='Start Date 1-31 (set any start time to 0 for furthest date)', defval=1, minval=0, maxval=31, group='Beginning of Strategy')
startYear = input.int(title='Start Year 2000-2100 (set any start time to 0 for furthest date)', defval=2011, minval=2000, maxval=2100, group='Beginning of Strategy')

endMonth = input.int(title='End Month 1-12 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=12, group='End of Strategy')
endDate = input.int(title='End Date 1-31 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=31, group='End of Strategy')
endYear = input.int(title='End Year 2000-2100 (set any end time to 0 for today\'s date)', defval=0, minval=0, maxval=2100, group='End of Strategy')

//Strategy Calculations-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

inDateRange = true

maMomentum = switch strategy
    "EMA" => (ta.ema(close, bars) > ta.ema(open, bars)) ? 1 : -1
    "SMA" => (ta.sma(close, bars) > ta.sma(open, bars)) ? 1 : -1
    "RMA" => (ta.rma(close, bars) > ta.rma(open, bars)) ? 1 : -1
    "WMA" => (ta.wma(close, bars) > ta.wma(open, bars)) ? 1 : -1
    "VWMA" => (ta.vwma(close, bars) > ta.vwma(open, bars)) ? 1 : -1
    =>
        runtime.error("No matching MA type found.")
        float(na)

openMA = switch strategy
    "EMA" => ta.ema(open, bars)
    "SMA" => ta.sma(open, bars)
    "RMA" => ta.rma(open, bars)
    "WMA" => ta.wma(open, bars)
    "VWMA" => ta.vwma(open, bars)
    =>
        runtime.error("No matching MA type found.")
        float(na)
        
closeMA = switch strategy
    "EMA" => ta.ema(close, bars)
    "SMA" => ta.sma(close, bars)
    "RMA" => ta.rma(close, bars)
    "WMA" => ta.wma(close, bars)
    "VWMA" => ta.vwma(close, bars)
    =>
        runtime.error("No matching MA type found.")
        float(na)

//Enter or Exit Positions--------------------------------------------------------------------------------------------------------------------------------------------------------------------

if ta.crossover(maMomentum, 0)
    if inDateRange
        strategy.entry('long', strategy.long, comment='long')
if ta.crossunder(maMomentum, 0)
    if inDateRange
        strategy.close('long')

//Plot Strategy Behavior---------------------------------------------------------------------------------------------------------------------------------------------------------------------

plot(series = maOn == "On" ? openMA : na, title = "Open moving Average", color = color.new(color.purple,0), linewidth=3, offset=1)
plot(series = maOn == "On" ? closeMA : na, title = "Close Moving Average", color = color.new(color.white,0), linewidth=2, offset=1)
bgcolor(color = inDateRange and (greenOn == "On") and maMomentum > 0 ? color.new(color.green,75) : inDateRange and (redOn == "On") and maMomentum <= 0 ? color.new(color.red,75) : na, offset=1)