জোকারকে অনুসরণ করে লাভের কৌশল

লেখক:চাওঝাং, তারিখঃ 2023-09-23 15:04:20
ট্যাগঃ

সারসংক্ষেপ

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

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

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

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

যখন পজিশনের দিক সংকেতের সাথে মেলে, যদি ট্রেইলিং অক্ষম করা হয় তবে লাভ নেওয়ার জন্য একটি সীমা অর্ডার ব্যবহার করা হয়। যদি ট্রেইলিং সক্ষম করা হয়, তবে স্টেপ আকারের উপর ভিত্তি করে লাভের মূল্য ট্রেইল করা হয়।

সুবিধা বিশ্লেষণ

  • মুভিং মিডিয়ায় বাজার শব্দ ফিল্টার করা হয় এবং মিথ্যা সংকেত এড়ানো হয়।

  • ট্রেলিং টেক লাভ মূল্যের ক্রিয়াকলাপের উপর ভিত্তি করে লাভের স্তরকে গতিশীলভাবে সামঞ্জস্য করে। এটি একটি স্থির লাভের দামের চেয়ে আরও নমনীয়।

  • টেলিং লাভ গ্রহণ আরও লাভের মধ্যে লক করে এবং লাভ ফিরিয়ে দেওয়ার সম্ভাবনা হ্রাস করে। এটি একটি নির্দিষ্ট লাভ গ্রহণের স্তরের সাথে খুব তাড়াতাড়ি প্রস্থান করা এড়ায়।

  • স্টপ লস ফাংশনটি ট্রেন্ড বিপরীত হলে কৌশলটি তাড়াতাড়ি প্রস্থান করতে দেয়।

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

  • মুভিং গড়গুলি বিশাল দামের ওঠানামা চলাকালীন মিথ্যা সংকেত বা বিলম্ব তৈরি করতে পারে। এটি ভুল দিকের ব্যবসায় থেকে ক্ষতির কারণ হতে পারে। এমএ পরামিতিগুলির অপ্টিমাইজেশন এবং ফিল্টার যুক্ত করা সাহায্য করতে পারে।

  • একটি খুব বেশি লাভের হার নির্ধারণ করা হোল্ডিং সময়কাল এবং প্রকৃত এবং প্রত্যাশিত লাভের দামের মধ্যে বিচ্যুতি বৃদ্ধি করে। অনুপাত কমিয়ে এই ঝুঁকি হ্রাস করে।

  • একটি ট্রেলিং স্টেপ সেট খুব ছোট কারণে অত্যধিক অর্ডার আপডেট এবং ফি এবং স্লিপিং বৃদ্ধি। ট্রেলিং অফসেটের অপ্টিমাইজেশান প্রয়োজন।

  • ট্রেইলিং টিপি কেবল উপরে চলে এবং ড্রডাউনগুলি বিবেচনা করে না। এটি প্রকৃত এবং প্রত্যাশিত লাভের দামের মধ্যে একটি বিচ্যুতির কারণ হতে পারে। একটি দ্বি-মুখী ট্রেইলিং প্রক্রিয়া সাহায্য করতে পারে।

অপ্টিমাইজেশান নির্দেশাবলী

  • অস্থিরতার উপর ভিত্তি করে এমএ পরামিতিগুলির গতিশীল সমন্বয় বিবেচনা করুন। অস্থিরতা বৃদ্ধি যখন বৃহত্তর সময়ের এবং অস্থিরতা হ্রাস যখন ছোট সময়ের।

  • গবেষণার অপ্টিমাইজ করুন লাভের অনুপাত বিভিন্ন পণ্য এবং বাজারের জন্য বিচ্যুতি ঝুঁকি হ্রাস করতে।

  • উভয় উপরের এবং নীচের দিকে ট্রেইল করার জন্য দ্বি-মুখী ট্রেইলিং প্রক্রিয়াটি আবিষ্কার করুন। এটি মুনাফাকে মূল্যের কাছাকাছি রাখবে।

  • দুর্বল প্রবণতায় লাভের হার কমাতে এবং শক্তিশালী প্রবণতায় লাভের হার বাড়ানোর জন্য প্রবণতা শক্তির সূচকগুলি অন্তর্ভুক্ত করুন।

  • মেশিন লার্নিং মডেলের সাথে একত্রিত করে গতিশীলভাবে পূর্বাভাস মূল্য পরিসীমা উপর ভিত্তি করে লাভের অনুপাত সেট করুন।

সিদ্ধান্ত

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


/*backtest
start: 2023-08-23 00:00:00
end: 2023-09-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='Joker Trailing TP Bot', shorttitle='Joker TTP Bot', overlay=true, pyramiding=0, process_orders_on_close=false, close_entries_rule='ANY', calc_on_every_tick=false, calc_on_order_fills=false, commission_type=strategy.commission.percent, commission_value=0.07, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, currency=currency.USD) //, max_labels_count=500)

fromDate = input(timestamp('01 Jan 2021 00:00 UTC'), 'From Date')
toDate = input(timestamp('31 Dec 2121 23:59 UTC'), 'To Date')
fastMALen = input.int(23, 'Fast SMA Length')
slowMALen = input.int(50, 'Slow SMA Length')
longTakeProfitPerc = input.float(0.5, 'Long Take Profit %', minval=0.05, step=0.05) * 0.01
shortTakeProfitPerc = input.float(0.5, 'Short Take Profit %', minval=0.05, step=0.05) * 0.01
enableTrailing = input.bool(true, 'Enable Trailing')
trailingTakeProfitPerc = input.float(0.01, 'Trailing Take Profit %', minval=0.01, maxval=100, step=0.01) * 0.01

float fastMA = ta.sma(close, fastMALen)
float slowMA = ta.sma(close, slowMALen)
bool isWithinPeriod = true
bool openLongPosition = isWithinPeriod and ta.crossover(fastMA, slowMA)
bool openShortPosition = isWithinPeriod and ta.crossunder(fastMA, slowMA)
bool longIsActive = openLongPosition or strategy.position_size > 0
bool shortIsActive = openShortPosition or strategy.position_size < 0

float longTakeProfitPrice = na
longTakeProfitPrice := if longIsActive
    if openLongPosition and not (strategy.position_size > 0)
        close * (1 + longTakeProfitPerc)
    else
        nz(longTakeProfitPrice[1], close * (1 + longTakeProfitPerc))
else
    na

float shortTakeProfitPrice = na
shortTakeProfitPrice := if shortIsActive
    if openShortPosition and not (strategy.position_size < 0)
        close * (1 - shortTakeProfitPerc)
    else
        nz(shortTakeProfitPrice[1], close * (1 - shortTakeProfitPrice))
else
    na

float longTrailingTakeProfitStepTicks = longTakeProfitPrice * trailingTakeProfitPerc / syminfo.mintick
float shortTrailingTakeProfitStepTicks = shortTakeProfitPrice * trailingTakeProfitPerc / syminfo.mintick

strategy.entry(id = 'Long Entry', direction = strategy.long, when = openLongPosition, alert_message = 'Long(' + syminfo.ticker + '): Started')
strategy.entry(id = 'Short Entry', direction = strategy.short, when = openShortPosition, alert_message = 'Short(' + syminfo.ticker + '): Started')
strategy.exit(id = 'Long Take Profit', from_entry = 'Long Entry', limit = enableTrailing ? na : longTakeProfitPrice, trail_price = enableTrailing ? longTakeProfitPrice : na, trail_offset = enableTrailing ? longTrailingTakeProfitStepTicks : na, when = longIsActive, alert_message = 'Long(' + syminfo.ticker + '): Take Profit activated')
strategy.exit(id = 'Short Take Profit', from_entry = 'Short Entry', limit = enableTrailing ? na : shortTakeProfitPrice, trail_price = enableTrailing ? shortTakeProfitPrice : na, trail_offset = enableTrailing ? shortTrailingTakeProfitStepTicks : na, when = shortIsActive, alert_message = 'Short(' + syminfo.ticker + '): Take Profit activated')

plot(series = fastMA, title='Fast SMA', color = color.blue, linewidth = 1, style = plot.style_line)
plot(series = slowMA, title='Slow SMA', color = color.orange, linewidth = 1, style = plot.style_line)
plot(series = longTakeProfitPrice, title='Long Take Profit', color = color.green, linewidth = 1, style = plot.style_cross, offset = 1)
plot(series = shortTakeProfitPrice, title='Short Take Profit', color = color.red, linewidth = 1, style = plot.style_cross, offset = 1)
plot(series = strategy.position_avg_price, title='Position', color = color.white, linewidth = 1, style = plot.style_linebr)


আরো