দ্রুত ধীর দ্বিগুণ চলমান গড় ট্রেডিং কৌশল

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

img

সারসংক্ষেপ

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

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

কৌশলটি প্রথমে দ্রুত চলমান গড় maFastLength এবং ধীর চলমান গড় maSlowLength এর দৈর্ঘ্য সেট করে। এটি তারপরে দ্রুত চলমান গড় fastMA এবং ধীর চলমান গড় slowMA গণনা করে। দ্রুত চলমান গড় দামের পরিবর্তনে আরও দ্রুত প্রতিক্রিয়া জানায় এবং বর্তমান প্রবণতা বিচার করতে ব্যবহৃত হয়, যখন ধীর চলমান গড় আরও ধীর গতিতে প্রতিক্রিয়া জানায় এবং প্রবণতার দিক নির্ধারণ করতে ব্যবহৃত হয়।

যখন দ্রুত চলমান গড়টি ধীর চলমান গড়ের উপরে অতিক্রম করে, তখন একটি দীর্ঘ প্রবেশ সংকেত goLong (()) উত্পন্ন হয়। যখন দ্রুত চলমান গড়টি ধীর চলমান গড়ের নীচে অতিক্রম করে, তখন বিদ্যমান দীর্ঘ অবস্থানগুলি killLong (()) সংকেতের সাথে বন্ধ হয়ে যায়।

কৌশলটি শুধুমাত্র দীর্ঘ, শুধুমাত্র সংক্ষিপ্ত বা উভয় দীর্ঘ এবং সংক্ষিপ্ত ব্যবসায়ের অনুমতি দিতে পারে।

শুধুমাত্র লং মোডে, লং পজিশনগুলি goLong ((() সিগন্যালে প্রবেশ করা হয় এবং killLong ((() সিগন্যালে প্রস্থান করা হয়।

শুধুমাত্র শর্ট মোডে, শর্ট পজিশনগুলি killLong ((() সিগন্যালে প্রবেশ করা হয় এবং goLong ((() সিগন্যালে প্রস্থান করা হয়।

সোয়াপিং মোডে, লং পজিশনগুলি goLong (() এ প্রবেশ করা হয়, বন্ধ হয় এবং killLong (() এ শর্ট পজিশনে বিপরীত হয়।

কৌশলটিতে স্টপ লস, ট্রেলিং স্টপ, মেসেজিং এবং অন্যান্য অপশন রয়েছে।

সুবিধা

  1. সহজ এবং বাস্তবায়ন করা সহজ।

  2. দীর্ঘ, সংক্ষিপ্ত বা উভয়ই যেতে নমনীয়তা।

  3. অপশনাল স্টপ লস এবং ট্রেলিং স্টপ ফিচার।

  4. ট্রেডস সতর্ক করার জন্য কাস্টমাইজযোগ্য বার্তা।

  5. বাজারের প্রবণতা পরিবর্তনের জন্য সংবেদনশীল।

  6. সামঞ্জস্যযোগ্য পরামিতিগুলি বিভিন্ন বাজারের সাথে খাপ খাইয়ে নেওয়া হয়।

ঝুঁকি

  1. অস্থির বা পরিবর্তিত বাজারে অত্যধিক লেনদেন সৃষ্টি করতে পারে।

  2. হঠাৎ সংবাদে প্রতিক্রিয়া জানাতে ধীর।

  3. পরামিতি নির্বাচন কৌশল কর্মক্ষমতা প্রভাবিত করে।

  4. সিগন্যালগুলোকে কঠোরভাবে অনুসরণ করতে হবে, বিবেচনার ভিত্তিতে ট্রেডিং এড়াতে হবে।

  5. ট্রেডিং খরচ বিবেচনা না করা হলে মুনাফা হ্রাস করতে পারে।

উন্নতি

  1. মিথ্যা সংকেত এড়াতে RSI এর মত ফিল্টার যোগ করুন।

  2. সর্বোত্তম সেটিংস খুঁজে পেতে প্যারামিটার অপ্টিমাইজেশান বাস্তবায়ন করুন।

  3. মুনাফা লক করতে এবং সামঞ্জস্য করতে গতিশীল স্টপ ব্যবহার করুন।

  4. প্রবণতা পূর্বাভাসের জন্য মেশিন লার্নিং অন্তর্ভুক্ত করুন।

  5. ব্যক্তিগত ট্রেডিং অভ্যাস অনুযায়ী মেসেজিং অপ্টিমাইজ করুন।

সিদ্ধান্ত

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


/*backtest
start: 2022-10-20 00:00:00
end: 2023-10-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy("SMA Strategy", shorttitle="SMA Strategy", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === Inputs ===
// short ma
maFastSource = input(defval=close, title="Fast MA Source")
maFastLength = input(defval=3, title="Fast MA Period", minval=1)

// long ma
maSlowSource = input(defval=close, title="Slow MA Source")
maSlowLength = input(defval=9, title="Slow MA Period", minval=1)

// Trade direction
shorting = input(defval=false, title="Short only?")
longonly = input(defval=true, title="Long only?")
swapping = input(defval=false, title="Swap orders?")
// risk management
useStop = input(defval=false, title="Use Initial Stop Loss?")
slPoints = input(defval=25, title="Initial Stop Loss Points", minval=1)
useTS = input(defval=false, title="Use Trailing Stop?")
tslPoints = input(defval=120, title="Trail Points", minval=1)
useTSO = input(defval=false, title="Use Offset For Trailing Stop?")
tslOffset = input(defval=20, title="Trail Offset Points", minval=1)

// Messages for buy and sell
message_long_entry  = input("Long entry message", title="Long entry message")
message_long_exit   = input("Long exit message", title="Long exit message")
message_short_entry = input("Short entry message", title="Short entry message")
message_short_exit  = input("Short exit message", title="Short exit message")

// Calculate start/end date and time condition
startDate  = input(timestamp("2021-01-01T00:00:00"), type = input.time)
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time)
 
time_cond  = true
// === Vars and Series ===
fastMA = sma(maFastSource, maFastLength)
slowMA = sma(maSlowSource, maSlowLength)

plot(fastMA, color=color.blue)
plot(slowMA, color=color.purple)

goLong() =>
    crossover(fastMA, slowMA)
killLong() =>
    crossunder(fastMA, slowMA)
    
// Long only
if longonly
    strategy.entry("Buy", strategy.long, when=goLong() and time_cond, alert_message = message_long_entry)
    strategy.close("Buy", when=killLong() and time_cond, alert_message = message_long_exit)

// Short only
if shorting
    strategy.entry("Sell", strategy.short, when=killLong() and time_cond, alert_message = message_short_entry)
    strategy.close("Sell", when=goLong() and time_cond, alert_message = message_short_exit)
    
// Order Swapping
if swapping
    strategy.entry("Buy", strategy.long, when=goLong() and time_cond, alert_message = message_long_entry)
    strategy.entry("Sell", strategy.short, when=killLong() and time_cond, alert_message = message_short_entry)

if useStop
    strategy.exit("XLS", from_entry="Buy", stop=strategy.position_avg_price / 1.08, alert_message = message_long_exit)
    strategy.exit("XSS", from_entry="Sell", stop=strategy.position_avg_price * 1.08, alert_message = message_short_exit)



আরো