আপেক্ষিক পেন লাভ মুভিং এভারেজ ক্রসওভার কৌশল


সৃষ্টির তারিখ: 2023-10-18 11:16:53 অবশেষে সংশোধন করুন: 2023-10-18 11:16:53
অনুলিপি: 0 ক্লিকের সংখ্যা: 644
1
ফোকাস
1617
অনুসারী

আপেক্ষিক পেন লাভ মুভিং এভারেজ ক্রসওভার কৌশল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি Vitelot এর RBI সূচকের উপর ভিত্তি করে তৈরি করা হয়েছে, যা K-রেখার তুলনামূলক পেন্সিলের অনুপাত ((RB)) এর চলমান গড় হিসাবে গণনা করা হয়। RB গণনা করা হয়ঃ

সূত্রের মধ্যে, RB হল সূর্যাস্তের দৈর্ঘ্যের দৈর্ঘ্যের অনুপাত এবং পুরো K-রেখার দৈর্ঘ্যের অনুপাত, ধনাত্মক; সূর্যাস্তের RB নেতিবাচক। RB এর মান -1 থেকে 1 এর মধ্যে রয়েছে।

আরবিআই সূচকটি আরবিআইয়ের চলমান গড়ের মাধ্যমে গোলমালকে ফিল্টার করে বাজারের মূল বৈশিষ্ট্যটি ক্যাপচার করে। যখন আরবিআই সূচকটি তার সংকেত লাইনটি অতিক্রম করে তখন একটি কেনার সংকেত উত্পন্ন হয়; যখন আরবিআই সূচকটি তার সংকেত লাইনটি অতিক্রম করে তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।

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

এই কৌশলটি ঝুঁকি নিয়ন্ত্রণ এবং মুনাফা লক করার জন্য একটি স্টপ-অফ এবং স্টপ-অফ ব্যবস্থাও স্থাপন করে। পজিশন খোলার পরে ট্রেইলটি স্টপ-অফ সেট করে এবং স্টপ-অফ সেট করে।

সামর্থ্য বিশ্লেষণ

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

  • সমান্তরাল ফিল্টারিংয়ের সাথে মিলিত হয়ে, এটি একাধিক হেডের অনিশ্চিত সময়ের মিথ্যা সংকেতগুলি কার্যকরভাবে এড়াতে পারে এবং ফাঁকা হেডের ক্ষতি হ্রাস করতে পারে।

  • স্টপ লস স্টপ সেটআপগুলি স্বতন্ত্র পজিশনের ক্ষতির ঝুঁকি হ্রাস করতে সহায়তা করে এবং একই সাথে মুনাফা লক করে এবং সামগ্রিকভাবে মুনাফা হার বাড়ায়।

  • এই কৌশলটি স্বল্প পরিমাপের, সহজে বোঝা যায় এবং স্বয়ংক্রিয় ট্রেডিংয়ের জন্য উপযুক্ত।

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

  • এই কৌশলটি কেবলমাত্র RBI সূচকের উপর ভিত্তি করে তৈরি করা হয়েছে, যদি সূচকটি নিজেই ভুল সংকেত দেয় তবে সামগ্রিক কৌশলটিও ব্যর্থ হবে।

  • ইন্ডিকেটর প্যারামিটার সেটিং ভুল হলে ট্রেডিং সিগন্যালের মান কমে যেতে পারে।

  • যে কোন প্রযুক্তিগত সূচক নির্দিষ্ট বাজারের পরিস্থিতিতে ব্যর্থ হতে পারে এবং সম্পূর্ণরূপে ক্ষতি এড়াতে পারে না।

  • স্টপ-অফ-পয়েন্ট খুব ছোট হলে, স্টপ-অফ-পয়েন্ট খুব ঘন ঘন হতে পারে। স্টপ-অফ-পয়েন্ট খুব বড় হলে, স্টপ-অফ-পয়েন্ট একক ক্ষতি বাড়িয়ে দিতে পারে।

  • এর ফলে অ্যাকাউন্ট খোলার ঝুঁকি রয়েছে।

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

  • বিভিন্ন প্যারামিটার সমন্বয় পরীক্ষা করে RBI সূচকের প্যারামিটার অপ্টিমাইজ করা যায়।

  • সিগন্যালের গুণমান উন্নত করতে অন্যান্য সহায়ক সূচকগুলির সাথে ফিল্টার করা যেতে পারে।

  • মেশিন লার্নিং প্রশিক্ষণের মাধ্যমে স্টপ ড্যামেজ স্টপ প্যারামিটারগুলিকে অপ্টিমাইজ করা যায়।

  • ক্যাপাসিটি ম্যানেজমেন্ট কৌশল যোগ করুন, সামগ্রিক অবস্থান এবং ঝুঁকি ফাঁক নিয়ন্ত্রণ করুন।

  • আপনি বিভিন্ন সময় ধরে পজিশন রাখার কৌশল ব্যবহার করতে পারেন, যেমন রাতারাতি পজিশন রাখা বা শর্ট লাইন ট্রেডিং।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2022-10-11 00:00:00
end: 2023-10-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("RBI Backtest /w TSSL", shorttitle="RBI Strategy", overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000, slippage = 5)
// RBI:
//  The EMA of the relative body (RB) of Japanese candles is evaluated.
//  The RB of a candle (my definition) is simply the ratio of the body with respect to its full length
//  and taken positive for bull candles and negative for bear candles:
//      e.g. a bull "marubozo" has RB=1 a bear "marubozo" has RB=-1;
//      a "doji" has RB=0.
//  This simple indicator grasps the essence of the market by filtering out a great deal of noise.
//
//  A flag can be selected to calculate its very basic binary version, where a bull candle counts as a one
//  and a bear candle counts as a minus one.
//
//  Enter (or exit) the market when the signal line crosses the base line.
//  When the market is choppy we have a kind of alternating bear and bull candles so that
//  RBI is FLAT and usually close to zero. 
//  Therefore avoid entering the market when RBI is FLAT and INSIDE the Exclusion level.
//  The exclusion level is to be set by hand: go back in history and check when market was choppy; a good
//  way to set it is to frame the oscillations of RBI whe price was choppy.
//
//  RBI is more effective when an EMA of price is used as filtering. I found EMA(13) to be
//  a decent filter: go long when base crosses signal upwards AND closing price is above EMA(13);
//  same concept for going short.
//
//  As any other indicator, use it with responsibility: THERE CAN'T BE A SINGLE MAGIC INDICATOR winning
//  all trades.
//
//  Above all, have fun.
//
// Vitelot/Yanez/Vts March 31, 2019

par1 = input(5, title="MA1 Period")
par2 = input(5, title="Signal Period")
exclusion = input(0.2, title="Exclusion level")

useBin = input(false, title="Calculate the binary version")

treshold_long = input(0, title="Treshold Long")
treshold_short = input(0, title="Treshold Short")

fixedSL = input(title="SL Activation", defval=300)
trailSL = input(title="SL Trigger", defval=1)
fixedTP = input(title="TP Activation", defval=120)
trailTP = input(title="TP Trigger", defval=1)

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth   = input(defval = 6, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 19, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2017)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
startTimeOk()  => true // create function "within window of time" if statement true

ynSimple(t) =>
    s = (close>open)? 1: -1
    ema(sum(s,t),t)

ynRel(t) =>
    s = (close-open)/(high-low)
    ema(sum(s,t),t)

yn = useBin? ynSimple(par1): ynRel(par1) 
sig = ema(yn,par2)


plot(yn, color=aqua, title="RBI", linewidth=3, transp=0)
plot(sig, color=orange, title="Signal", linewidth=2, transp=0)

hline(0, color=white, title="Zero level", editable=false)
hline(exclusion, color=yellow, title="Exclusion level +", editable=true, linestyle=line)
hline( 0-exclusion, color=yellow, title="Exclusion level -", editable=true, linestyle=line)

long = crossover(yn,sig) and yn < treshold_long
short = crossover(sig,yn)  and yn > treshold_short

// === STRATEGY - LONG POSITION EXECUTION ===
strategy.entry("Long", strategy.long, when= long and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP) 
strategy.exit("Exit", when= short)
// === STRATEGY - SHORT POSITION EXECUTION ===
strategy.entry("Short", strategy.short, when= short and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP)
strategy.exit("Exit", when= long)