সুইং ট্রেডিং ইন্ডিকেটর কৌশল


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

সুইং ট্রেডিং ইন্ডিকেটর কৌশল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি মূলত MACD সূচকের উপর ভিত্তি করে গোল্ড ফর্ক মাল্টিসিগন্যাল, ডেড ফর্ক খালি সিগন্যাল তৈরি করে। বিশেষত, যখন MACD লাইনটি নীচে থেকে সিগন্যাল লাইনটি অতিক্রম করে তখন গোল্ড ফর্ক মাল্টিসিগন্যাল তৈরি করে; যখন MACD লাইনটি সিগন্যাল লাইনটি উপরে থেকে নীচে অতিক্রম করে তখন ডেড ফর্ক খালি সিগন্যাল তৈরি করে।

যখন গোল্ড ফর্ক সিগন্যাল আসে, যদি বন্ধের দাম ইএমএর গড়ের চেয়ে বেশি হয়, তবে আরও বেশি করুন; যখন মৃত ফর্ক সিগন্যাল আসে, যদি বন্ধের দাম ইএমএর গড়ের চেয়ে কম হয়, তবে খালি করুন। এটি বড় প্রবণতার অধীনে বিপরীত ট্রেডিংয়ের গ্যারান্টি দেয়।

প্রবেশের পরে, কৌশলটি স্টপ লস এবং স্টপ লস ব্যবহার করে গতিশীল স্টপ লস করে। বিশেষত, একাধিক স্টপ লস প্রবেশের দাম হিসাবে সেট করা হয়(১- সর্বাধিক পতন); স্টপ-অফ সেট করুন প্রবেশ মূল্য হিসাবে(1+TARGET_STOP_RATIO*সর্বাধিক পতন) খালি বাটন সেট বিপরীত যেখানে সর্বাধিক পতন গতিশীল গণনা করা হয়, যা সুইং কম থেকে ক্লোজিং মূল্যের শতাংশ পতন স্থানকে নির্দেশ করে; টার্গেট_স্টপ_রেটিও ডিফল্ট 2 হিসাবে গণনা করা হয়, যা লাভ-ক্ষতির অনুপাত 2

এইভাবে সেট করা অফ-প্লেস পয়েন্টের সুবিধা হল, বাজারের ওঠানামার উপর ভিত্তি করে ক্রেডিট হার এবং স্টপ লস পয়েন্টকে গতিশীলভাবে সামঞ্জস্য করা যায়। বড় ওঠানামার সময় দ্রুত বন্ধ করুন, ছোট ওঠানামার সময় স্টপ ট্র্যাক করুন।

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

  1. MACD সূচক ব্যবহার করে একটি পল্টো-হোল সংকেত তৈরি করা হয়, যা কার্যকরভাবে মূল্যের বিপরীত হওয়ার সময় নির্ধারণ করতে পারে।

  2. ইএমএ সমতুল্য সঙ্গে একটি ফিল্টার হিসাবে কাজ করে, ট্রেডিং এড়ানোর জন্য ট্রেন্ডিং আপ নির্বাচন করুন।

  3. ডায়নামিক অফ-ফিল্ড কন্ট্রোল সিস্টেম, যা রিয়েল-টাইমে লাভ-ক্ষতি অনুপাত, স্টপ লস পয়েন্টগুলিকে সামঞ্জস্য করতে পারে, উচ্চ মুনাফা অর্জনের জন্য ঝুঁকি নিয়ন্ত্রণ করে।

  4. বাজারের অস্থিরতার কারণে, দ্রুত আউটপুট, যা বাজারের সময়কে হ্রাস করতে পারে, ব্যস্ত বিনিয়োগকারীদের জন্য উপযুক্ত।

কৌশলগত ঝুঁকি ও সমাধান

  1. MACD সূচকটি প্রায়শই একটি মিথ্যা সংকেত তৈরি করে যেখানে বাজারটি তির্যকভাবে সংকলিত হয়। সমাধানটি হ’ল সমান্তরাল লাইনটি ফিল্টার হিসাবে যুক্ত করা, বিপরীতমুখী ব্যবসায় এড়ানো।

  2. DYNAMIC STOP এর ফলে বাজারে অত্যধিক ওঠানামা দেখা দেয়, কিন্তু বেশিরভাগ ক্ষেত্রে এটি ভাল কাজ করে। যদি আপনি একটি চরম পরিস্থিতির সম্মুখীন হন তবে আপনি স্থির লাভ-ক্ষতির অনুপাত বিবেচনা করতে পারেন।

  3. মুনাফা অর্জনের জন্য সীমিত স্থান রয়েছে, মুনাফা অর্জনের জন্য ঘন ঘন লেনদেনের প্রয়োজন। এটি বিনিয়োগকারীদের একটি নির্দিষ্ট মানসিক সহনশীলতা এবং সময় বিনিয়োগের প্রয়োজন। যদি কোনও সময় না থাকে তবে উচ্চ চক্রের সাথে সামঞ্জস্য করার কথা বিবেচনা করা যেতে পারে।

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

  1. স্বতন্ত্র জাতের বৈশিষ্ট্য অনুসারে MACD প্যারামিটারগুলি সামঞ্জস্য করুন, গোল্ডেন ফর্কের ডাই ফর্কের লেনদেনের কার্যকারিতা অনুকূলিত করুন।

  2. ট্রেন্ড নির্ধারণের জন্য বিভিন্ন মুভিং এভারেজ পরীক্ষা করা এবং আরও ভাল ফিল্টার খোঁজা।

  3. TARGET_STOP_RATIO, সর্বাধিক পতন গণনা পদ্ধতি পরীক্ষা করুন, স্টপ স্টপ লস কৌশলটি অনুকূলিত করুন।

  4. সিগন্যালের গুণগত মান উন্নত করার জন্য অন্যান্য শর্তাবলী যেমন লেনদেনের পরিমাণ পরিবর্তন, ওঠানামা ইত্যাদি যোগ করুন।

  5. মেশিন লার্নিং অ্যালগরিদমগুলি আরও বৈশিষ্ট্যগুলিকে উন্নত করার চেষ্টা করছে, গতিশীল মাল্টি-ফ্যাক্টর মডেল তৈরি করছে, যাতে আরও বুদ্ধিমান স্টপ-অফ-লস অর্জন করা যায়।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 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/
// © maxencetajet

//@version=5
strategy("MACD Strategy", overlay=true, initial_capital=1000, slippage=25)

src = input(title="Source", defval=close)
target_stop_ratio = input.float(title='Risk/Reward', defval=2, minval=0.5, maxval=100)
risk = input.float(2, title="Risk per Trade %")

riskt = risk / 100 + 1

useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("5 June 2022"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("5 July 2022"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")

inTradeWindow =  true
emaV = input.int(200, title="Length", group="EMA")
swingHighV = input.int(7, title="Swing High", group="number of past candles")
swingLowV = input.int(7, title="Swing Low", group="number of past candles")

ema = ta.ema(src, emaV)

fast_length = input(title="Fast Length", defval=12, group="MACD")
slow_length = input(title="Slow Length", defval=26, group="MACD")
signal_length = input.int(title="Signal Smoothing",  minval = 1, maxval = 50, defval = 9, group="MACD")
sma_source = input.string(title="Oscillator MA Type",  defval="EMA", options=["SMA", "EMA"], group="MACD")
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"], group="MACD")

fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

longcondition = close > ema and ta.crossover(macd, signal) and macd < 0
shortcondition = close < ema and ta.crossunder(macd, signal) and macd > 0

float risk_long = na
float risk_short = na
float stopLoss = na
float takeProfit = na
float entry_price = na

risk_long := risk_long[1]
risk_short := risk_short[1]

swingHigh = ta.highest(high, swingHighV)
swingLow = ta.lowest(low, swingLowV)

lotB = (strategy.equity*riskt-strategy.equity)/(close - swingLow)
lotS = (strategy.equity*riskt-strategy.equity)/(swingHigh - close)

if strategy.position_size == 0 and longcondition and inTradeWindow
    risk_long := (close - swingLow) / close
    strategy.entry("long", strategy.long, qty=lotB)
    
if strategy.position_size == 0 and shortcondition and inTradeWindow
    risk_short := (swingHigh - close) / close  
    strategy.entry("short", strategy.short, qty=lotS)

if strategy.position_size > 0

    stopLoss := strategy.position_avg_price * (1 - risk_long)
    takeProfit := strategy.position_avg_price * (1 + target_stop_ratio * risk_long)
    entry_price := strategy.position_avg_price
    strategy.exit("long exit", "long", stop = stopLoss, limit = takeProfit)
    
if strategy.position_size < 0

    stopLoss := strategy.position_avg_price * (1 + risk_short)
    takeProfit := strategy.position_avg_price * (1 - target_stop_ratio * risk_short)
    entry_price := strategy.position_avg_price
    strategy.exit("short exit", "short", stop = stopLoss, limit = takeProfit)
    
plot(ema, color=color.white, linewidth=2, title="EMA")
p_ep = plot(entry_price, color=color.new(color.white, 0), linewidth=2, style=plot.style_linebr, title='entry price')
p_sl = plot(stopLoss, color=color.new(color.red, 0), linewidth=2, style=plot.style_linebr, title='stopLoss')
p_tp = plot(takeProfit, color=color.new(color.green, 0), linewidth=2, style=plot.style_linebr, title='takeProfit')
fill(p_sl, p_ep, color.new(color.red, transp=85))
fill(p_tp, p_ep, color.new(color.green, transp=85))