কৌশল অনুসরণ করে ট্রিপল মুভিং এভারেজ ট্রেন্ড


সৃষ্টির তারিখ: 2024-02-01 11:02:17 অবশেষে সংশোধন করুন: 2024-02-01 11:02:17
অনুলিপি: 2 ক্লিকের সংখ্যা: 600
1
ফোকাস
1617
অনুসারী

কৌশল অনুসরণ করে ট্রিপল মুভিং এভারেজ ট্রেন্ড

ওভারভিউ

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

কৌশল নীতি

  1. তিনটি ভিন্ন সময়ের চলমান গড় গণনা করুনঃ দ্রুত চলমান গড় 8 দিনের, মাঝারি চলমান গড় 21 দিনের এবং ধীর চলমান গড় 55 দিনের।

  2. প্রবেশের শর্তগুলি বিচার করুনঃ যখন দ্রুত চলমান গড়ের উপরে মধ্যম চলমান গড় অতিক্রম করে এবং তিনটি চলমান গড়ই উত্থানের প্রবণতায় থাকে, তখন বেশি করুন; যখন দ্রুত চলমান গড়ের নীচে মধ্যম চলমান গড় অতিক্রম করে এবং তিনটি চলমান গড়ই পতনের প্রবণতায় থাকে, তখন শূন্য করুন।

  3. খেলার শর্ত নির্ধারণ করুনঃ দ্রুত চলমান গড় বিপরীতভাবে মধ্যম চলমান গড় অতিক্রম করার সময় সমতল।

  4. পজিশন কন্ট্রোলঃ স্থির পজিশন ব্যবহার করে, প্রতিবার পজিশন খোলার জন্য 1 জন। এটিআর গতিশীলতার ভিত্তিতে পজিশন সামঞ্জস্য করার বিকল্পও রয়েছে।

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

  1. তিনটি চলমান গড় ব্যবহার করে ট্রেন্ডের দিকনির্দেশনা নির্ধারণ করা যায় এবং মিথ্যা ব্রেকডাউন এড়ানো যায়।

  2. ট্রেন্ড ট্র্যাকিং এবং লাভের সম্ভাবনা

  3. মুভিং এভারেজ ব্যবহার করে, মুনাফা স্থিতিশীল থাকে এবং প্রত্যাহার তুলনামূলকভাবে কম হয়।

  4. কন্ট্রোলযোগ্য স্টপ লস কৌশল যা বড় ক্ষতির সম্ভাবনা কমিয়ে দেয়।

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

  1. এটি ক্ষুদ্র ক্ষয়ক্ষতির দিকে নিয়ে যায় এবং লাভের দক্ষতা হ্রাস করে।

  2. চলমান গড়ের পিছনে, এটি সম্ভবত প্রবণতা বিপরীত পয়েন্টটি মিস করেছে।

  3. ফিক্সড পজিশনের ঝুঁকি কার্যকরভাবে নিয়ন্ত্রণ করা যায় না এবং বড় ধরনের বাজারের অস্থিরতার সময় পজিশনের পতন হতে পারে।

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

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

  1. চলমান গড়ের চক্রীয় প্যারামিটারগুলিকে ট্রেডিং জাতের বৈশিষ্ট্যগুলির সাথে আরও সামঞ্জস্যপূর্ণ করার জন্য অপ্টিমাইজ করা হয়েছে।

  2. প্রয়োগের অস্থিরতা নির্দেশক এটিআর গতিশীল সমন্বয় পজিশন

  3. স্টপ লস স্ট্র্যাটেজিতে যোগ দিন।

  4. ট্রেডিং ভলিউম সূচকগুলির সাথে ট্রেন্ড নির্ভরযোগ্যতা নির্ধারণ করুন।

সারসংক্ষেপ

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

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

// LOVE JOY PEACE PATIENCE KINDNESS GOODNESS FAITHFULNESS GENTLENESS SELF-CONTROL 
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © JoshuaMcGowan

//@version=4

// 1. Define strategy settings
strategy(title="Triple Moving Average", overlay=true,
     pyramiding=0, initial_capital=1000,
     commission_type=strategy.commission.cash_per_order,
     commission_value=4, slippage=2)
     
fastMALen = input(title="Fast MA Length", type=input.integer, defval=8)
medMALen  = input(title="Medium MA Length", type=input.integer, defval=21)
slowMALen = input(title="Slow MA Length", type=input.integer, defval=55)

//endMonth = input(title="End Month Backtest", type=input.integer, defval=11)
//endYear  = input(title="End Year Backtest", type=input.integer, defval=2019)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 12, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2016, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true

usePosSize = input(title="Use Position Sizing?", type=input.bool, defval=true)
riskPerc   = input(title="Risk %", type=input.float, defval=0.5, step=0.25)

// 2. Calculate strategy values
fastMA = sma(close, fastMALen)
medMA  = sma(close, medMALen)
slowMA = sma(close, slowMALen)

//Position Sizing
riskEquity  = (riskPerc / 100) * strategy.equity
atrCurrency = (atr(20) * syminfo.pointvalue)
posSize     = usePosSize ? floor(riskEquity / atrCurrency) : 1

//Backtest Window
//tradeWindow = (time <= timestamp(endYear, endMonth, 1, 0, 0))

// 3. Determine long trading conditions
enterLong = crossover(fastMA, medMA) and
     (fastMA > slowMA) and (medMA > slowMA) and
     window() 

exitLong = crossunder(fastMA, medMA)

// 4. Code short trading conditions
enterShort = crossunder(fastMA, medMA) and
     (fastMA < slowMA) and (medMA < slowMA) and
     window() 

exitShort = crossover(fastMA, medMA)

// 5. Output strategy data
plot(series=fastMA, color=color.green, title="Fast MA")
plot(series=medMA, color=color.purple, title="Medium MA")
plot(series=slowMA, color=color.red, title="Slow MA",
     linewidth=2)
     
bgColour =
     enterLong and (strategy.position_size < 1) ? color.green :
     enterShort and (strategy.position_size > -1) ? color.red :
     exitLong and (strategy.position_size > 0) ? color.lime :
     exitShort and (strategy.position_size < 0) ? color.orange :
     na

bgcolor(color=bgColour, transp=85)

// 6. Submit entry orders
if (enterLong)
    strategy.entry(id="EL", long=true, qty=1)

if (enterShort)
    strategy.entry(id="ES", long=false, qty=1)

// 7. Submit exit orders
strategy.close_all(when=exitLong and
     (strategy.position_size > 0))
strategy.close_all(when=exitShort and
     (strategy.position_size < 0))

strategy.close_all(when=not window())

//END