পরিবর্তন হার ট্রেডিং কৌশল

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

সারসংক্ষেপ

এই কৌশলটি ক্রয়/বিক্রয় সংকেত নির্ধারণের জন্য সময়ের সাথে পরিবর্তনের হার গণনা করে। এটি ব্যবসায়ীদের স্বল্পমেয়াদী মূল্য ওঠানামাতে সুযোগগুলি ধরতে সহায়তা করতে পারে।

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

কৌশলটি প্রধানত নিম্নলিখিত সূচকগুলির উপর ভিত্তি করেঃ

  1. দ্রুত সরল চলমান গড় (ডিফল্ট 14 দিন): স্বল্পমেয়াদী প্রবণতা পরিমাপ করতে
  2. ধীর সরল চলমান গড় (ডিফল্ট 100 দিন): দীর্ঘমেয়াদী প্রবণতা পরিমাপ করতে
  3. রেফারেন্স সিম্পল মুভিং এভারেজ (ডিফল্ট ৩০ দিন): সামগ্রিক দিকনির্দেশনা নির্ধারণের জন্য
  4. পরিবর্তনের হারঃ মূল্যের প্রবণতার মাত্রা বিচার করার জন্য রিপ্লে পেরিওডের সর্বোচ্চ/নিম্নতম মূল্যের ভিত্তিতে গণনা করা হয় (ডিফল্ট 12 বার) ।

নির্দিষ্ট প্রবেশের নিয়মঃ

  1. রেফারেন্স এসএমএ-র নিচে মূল্য
  2. পূর্বনির্ধারিত নিম্ন ROC প্রান্তিকের উপরে ROC (ডিফল্ট 2.3%)
  3. দ্রুত এসএমএ বৃদ্ধি এবং ধীর এসএমএ হ্রাস, সম্ভাব্য ক্রসওভার নির্দেশ করে

নির্দিষ্ট প্রস্থান নিয়মঃ

  1. রেফারেন্স এসএমএ এর ঊর্ধ্বে মূল্য
  2. পূর্বনির্ধারিত উচ্চ ROC প্রান্তিক সীমা অতিক্রম করার জন্য ROC (ডিফল্ট 4.7%)
  3. ধারাবাহিকভাবে 3 টি উত্থান বার
  4. বর্তমান মুনাফা > ০
  5. ধীর এসএমএর উপরে দ্রুত এসএমএ

পজিশনের আকার হ'ল লিভারেজের জন্য মোট শেয়ারের শতাংশ (ডিফল্ট 96%) ।

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

এই কৌশলটির নিম্নলিখিত সুবিধা রয়েছে:

  1. স্যুইং সনাক্ত করতে ROC ব্যবহার করে উচ্চতর রিটার্নের জন্য আপসাইড / ডাউনসাইড মুভমেন্টগুলি ক্যাপচার করতে পারে।

  2. দ্রুত / ধীর এসএমএ একত্রিত করা কম / উচ্চ পয়েন্টগুলি আরও সঠিকভাবে সনাক্ত করতে সহায়তা করে।

  3. রেফারেন্স এসএমএ স্বল্পমেয়াদী গোলমাল থেকে বিভ্রান্তি এড়ানোর জন্য সামগ্রিক দিকনির্দেশনা প্রদান করে।

  4. স্টপ লসকে অনুসরণ করা লাভকে লক করে দেয় এবং নেমে যাওয়ার ঝুঁকি হ্রাস করে।

  5. পজিশন সাইজিং থেকে লাভ বৃদ্ধি পায়।

সামগ্রিকভাবে, কৌশলটি মূল্যের দোলন থেকে লাভ অর্জনের জন্য ROC, SMA এবং অন্যান্য সরঞ্জামগুলি কার্যকরভাবে ব্যবহার করে। এটি অস্থির বাজারে ভাল ফলাফল অর্জন করতে পারে।

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

এই কৌশলটি নিম্নলিখিত ঝুঁকিগুলিও বহন করেঃ

  1. ভুল ROC এবং SMA পরামিতিগুলি মিস করা সংকেত বা খারাপ ট্রেডের কারণ হতে পারে। বিভিন্ন বাজারের জন্য অপ্টিমাইজেশান প্রয়োজন।

  2. অতিরিক্ত পজিশনের আকার ঝুঁকি বাড়ায়। অর্ডার শতাংশ পরীক্ষা করা উচিত এবং মিট করা উচিত।

  3. ট্রেলিং স্টপ লস অস্থির বাজারে অকাল প্রস্থান করতে পারে। স্টপ লস শতাংশ সামঞ্জস্য করা যেতে পারে।

  4. ট্রেন্ড ফিল্টার এবং ঝুঁকি ব্যবস্থাপনা অন্তর্ভুক্ত করা উচিত।

  5. ব্যাকটেস্ট ওভারফিটিং ঝুঁকি। বাজারে লাইভ ট্রেডিংয়ের মাধ্যমে স্থিতিশীলতা যাচাই করা উচিত।

প্যারামিটার অপ্টিমাইজেশান, পজিশন সাইজিং, স্টপ লস অ্যাডজাস্টমেন্ট, রোজ্যাবিলিটি টেস্টিং ইত্যাদির মাধ্যমে ঝুঁকিগুলি পরিচালনা করা যেতে পারে।

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

কৌশলটি নিম্নলিখিত দিকগুলিতে উন্নত করা যেতে পারেঃ

  1. সিগন্যালের নির্ভুলতা বাড়াতে ভোল্টেবিলিটি, ভলিউম এর মতো অন্যান্য প্রযুক্তিগত সূচক যোগ করুন।

  2. হুইপসা প্রভাবকে হ্রাস করার জন্য ট্রেডিং ফ্রিকোয়েন্সি হ্রাস করে ট্রেডের সংখ্যা অনুকূল করুন।

  3. মূল মূল্যের স্তরের আশেপাশে ব্রেকআউট কৌশল অন্তর্ভুক্ত করুন।

  4. মেশিন লার্নিং ব্যবহার করে স্বয়ংক্রিয়ভাবে প্যারামিটার অপ্টিমাইজ করুন।

  5. বিভিন্ন বাজারে এবং সময়সীমার মধ্যে স্থিতিশীলতা পরীক্ষা করুন।

  6. বিভিন্ন পণ্য যেমন স্টক, ফরেক্স ইত্যাদির জন্য বিশেষ প্যারামিটারগুলি টিউন করুন।

  7. লাইভ ফলাফলের উপর ভিত্তি করে সিগন্যাল এবং ঝুঁকি নিয়ন্ত্রণগুলি ক্রমাগত পরিমার্জন করুন।

সংক্ষিপ্তসার

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


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

// @version=4
// Author: Sonny Parlin (highschool dropout)
// Best if run on 5m timeframe
strategy(shorttitle="ROC+Strategy", title="Rate of Change Strategy",
                                      overlay=true,  currency=currency.USD,
                                      initial_capital=10000)

// Inputs and variables
ss = input(14, minval=10, maxval=50, title="SMA Fast (days)")
ff = input(100, minval=55, maxval=200, title="SMA Slow (days)")
ref = input(30, minval=20, maxval=50, title="SMA Reference (days)")
lowOffset = input(0.023, "ROC Low (%)", minval=0, step=0.01)
highOffset = input(0.047, "ROC High (%)", minval=0, step=0.01)
orderStake = input(0.96, "Order Stake (%)", minval=0, step=0.01)
lookback = input(12, "Lookback Candles", minval=1, step=1) 

// SMA
smaFast = sma(close, ss)
smaSlow = sma(close, ff)
smaRef = sma(close, ref)
ROC = (max(close[lookback],close) - min(close[lookback],close)) / max(close[lookback],close)

// Set up SMA plot but don't show by default
plot(smaFast, "smaFast", color=#00ff00, display = 0)
plot(smaSlow, "smaSlow", color=#ff0000, display = 0)
plot(smaRef, "smaRef", color=#ffffff, display = 0)

// The buy stratey:
// Guard that the low is under our SMA Reference line 
// Guard that the rate of change over the lookback period is greater than our 
// ROC lowOffset %, default is 0.023. (low < smaRef) and (ROC > lowOffset)
// SMA fast is on the rise and SMA slow is falling and they are very likely
// to cross. (rising(smaFast,1)) and (falling(smaSlow, 1)) 
enterLong = (low < smaRef) and (ROC > lowOffset) and (rising(smaFast,1)) and (falling(smaSlow,1)) 

// The sell Strategy:
// Guard that close is higher than our SMA reference line and that the rate of 
// change over the lookback period is greater than our highOffset %, default
// is 0.047. (close > smaRef) and (ROC > highOffset)
// Guard that close has risen by 3 candles in a row (rising(close,3)) 
// Guard that we currently have profit (strategy.openprofit > 0)
// Guard that SMA fast is higher than smaSlow (smaFast > smaSlow)
// If it keeps going up past our close position the trailing stoploss will kick in!
enterShort = (close > smaRef) and (ROC > highOffset) and (rising(close,3)) and (strategy.openprofit > 0) and (smaFast > smaSlow)

// Order size is based on total equity
// Example 1:
// startingEquity = 2000
// close = 47434.93
// orderStake = 0.45
// (2,000 × orderStake) / close = orderSize = 0.0189733599 = approx $900

// Example 2:
// startingEquity = 2000
// close = 1.272
// orderStake = 0.45
// (startingEquity × orderStake) / close = orderSize = 707.5471698113 = approx $900
orderSize = (strategy.equity * orderStake) / close

// Trailing Stoploss
// I'm using 2.62 as my default value, play with this for different results.
longTrailPerc = input(title="Trailing Stoploss (%)",
     type=input.float, minval=0.0, step=0.1, defval=3.62) * 0.01
     
longStopPrice = 0.0

longStopPrice := if (strategy.position_size > 0)
    stopValue = close * (1 - longTrailPerc)
    max(stopValue, longStopPrice[1])
else
    0

if (enterLong)
    strategy.entry("Open Long Position", strategy.long, orderSize, when=strategy.position_size <= 0)
    
if (enterShort)
    strategy.exit(id="Close Long Position", stop=longStopPrice)


//plot(strategy.equity)

আরো