ইনট্রাবার ভোল্টেবিলিটি ট্রেডিং স্ট্র্যাটেজি দিয়ে ট্রেন্ড বিপরীত

লেখক:চাওঝাং, তারিখঃ 2024-02-26 17:15:54
ট্যাগঃ

img

সারসংক্ষেপ

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

কৌশলগত নীতি

এই কৌশলটির মূল যুক্তি নিম্নলিখিত বিষয়গুলির উপর ভিত্তি করেঃ

  1. বিভিন্ন সময় উইন্ডোতে (সংক্ষিপ্ত এবং দীর্ঘ উইন্ডো) লেনদেনের পরিমাণের ক্রয় চাপ এবং বিক্রয় চাপ গণনা করুন। ক্রয় এবং বিক্রয় চাপের পার্থক্যের উপর ভিত্তি করে ভবিষ্যতের প্রবণতা দিক বিচার করুন।

  2. ম্যাকডি এর পার্থক্য মান (ম্যাকডি লাইন এবং সংকেত লাইনের মধ্যে পার্থক্য) ব্যবহার করে লং এবং শর্ট স্ট্যাটাস নির্ধারণ করুন। ট্রেন্ড বিপরীতমুখীতা যাচাই করার জন্য লেনদেনের পরিমাণে ক্রয় এবং বিক্রয় চাপ সংকেতগুলির সাথে একত্রিত করুন।

  3. যখন লেনদেনের পরিমাণের ক্রয় চাপের বৈষম্য বৃদ্ধি পায় এবং এমএসিডি লাইনটি অতিক্রম করে, তখন নির্ধারিত হয় যে বাজারে বিক্রয় থেকে ক্রয়ের দিকে প্রবণতা বিপরীত হতে পারে।

  4. যখন লেনদেনের পরিমাণের বিক্রয় চাপের অস্বাভাবিকতা বৃদ্ধি পায় এবং এমএসিডি লাইনটি অতিক্রম করে, তখন এটি নির্ধারিত হয় যে বাজারে কেনার থেকে বিক্রয়ের দিকে প্রবণতা বিপরীত হতে পারে।

  5. রিভার্স সিগন্যাল প্রবেশ করানোর পর ঝুঁকি নিয়ন্ত্রণের জন্য মুনাফা গ্রহণ এবং স্টপ লস কৌশল ব্যবহার করুন।

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

এই কৌশলটির সুবিধাগুলির মধ্যে রয়েছেঃ

  1. লেনদেনের পরিমাণে দীর্ঘ/সংক্ষিপ্ত পার্থক্য ব্যবহার করে প্রবণতা বিপরীত পয়েন্ট নির্ধারণ করা হলে লেনদেনের পরিমাণের ভূমিকা উপেক্ষা করে কেবল প্রবণতা নির্ধারণের সূচক যেমন চলমান গড়ের উপর নির্ভর করা এড়ানো যায়।

  2. বিপরীতমুখী অবস্থার জন্য MACD সংকেত একত্রিত করা বিচার সঠিকতা উন্নত করতে পারে।

  3. লেনদেনের পরিমাণে অস্বাভাবিকতা নির্ধারণের জন্য দীর্ঘ এবং সংক্ষিপ্ত সময় উইন্ডোগুলি ব্যবহার করে বিপরীত সংকেতগুলি আরও নির্ভরযোগ্য করে তোলে।

  4. বিপরীতমুখী কৌশলগুলি উচ্চতর গড় মুনাফা হার থাকে।

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

এই কৌশলের ঝুঁকিগুলির মধ্যে রয়েছেঃ

  1. লেনদেনের পরিমাণ এবং এমএসিডি সংকেতগুলি মিথ্যা সংকেত দিতে পারে, যা বিপরীতমুখী হওয়ার ক্ষেত্রে ভুল বিচার করতে পারে।

  2. বিপরীতমুখী সংকেত সক্রিয় হওয়ার পরে, বাজার আবারও সামঞ্জস্য করতে পারে এবং সরাসরি অবিলম্বে বিপরীতমুখী হতে পারে না।

  3. অযৌক্তিক লাভ এবং স্টপ লস সেটিং ক্ষতি বাড়ানোর কারণ হতে পারে।

  4. উচ্চতর ড্রাউন, যা স্থিতিশীল রিটার্নের জন্য বিনিয়োগকারীদের জন্য উপযুক্ত নয়।

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

এই কৌশলটির জন্য অপ্টিমাইজেশানগুলির মধ্যে রয়েছেঃ

  1. বিপরীত রায়গুলি আরও সুনির্দিষ্ট করার জন্য দীর্ঘ এবং সংক্ষিপ্ত সময় উইন্ডোগুলি অপ্টিমাইজ করুন।

  2. লং/শর্ট নির্ভুলতা উন্নত করার জন্য MACD পরামিতিগুলি অপ্টিমাইজ করুন।

  3. ক্ষতির ঝুঁকি কমাতে লাভ এবং স্টপ লস অ্যালগরিদমগুলি অপ্টিমাইজ করুন।

  4. পুনরাবৃত্তি সাফল্যের হার উন্নত করার জন্য আরো অস্বাভাবিকতা বিচার সূচক যোগ করুন।

  5. পজিশনের আকার এবং অর্থ ব্যবস্থাপনা মডিউল যোগ করুন।

সিদ্ধান্ত

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


/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("3 10 Oscillator Profile Flagging", shorttitle="3 10 Oscillator Profile Flagging", overlay=false)

signalBiasValue = input(title="Signal Bias", defval=0.26)
macdBiasValue = input(title="MACD Bias", defval=0.8)
shortLookBack = input( title="Short LookBack", defval=3)
longLookBack = input( title="Long LookBack", defval=10)
takeProfit = input( title="Take Profit", defval=0.75)
stopLoss = input( title="Stop Loss", defval=0.5)

fast_ma = ta.sma(close, 3)
slow_ma = ta.sma(close, 10)
macd = fast_ma - slow_ma
signal = ta.sma(macd, 16)
hline(0, "Zero Line", color = color.black)

buyVolume = volume*((close-low)/(high-low))
sellVolume = volume*((high-close)/(high-low))
buyVolSlope = buyVolume - buyVolume[1]
sellVolSlope = sellVolume - sellVolume[1]
signalSlope = ( signal - signal[1] )
macdSlope = ( macd - macd[1] )
plot(macd, color=color.blue, title="Total Volume")
plot(signal, color=color.orange, title="Total Volume")
intrabarRange = high - low

getLookBackSlope(lookBack) => signal - signal[lookBack]
getBuyerVolBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if buyVolume[i] > sellVolume[i]
            j += 1
    j

getSellerVolBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if sellVolume[i] > buyVolume[i]
            j += 1
    j

getVolBias(lookBack) =>
    float b = 0
    float s = 0
    for i = 1 to lookBack
        b += buyVolume[i]
        s += sellVolume[i]
    b > s

getSignalBuyerBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] > signalBiasValue
            j += 1
    j

getSignalSellerBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] < ( 0 - signalBiasValue )
            j += 1
    j

getSignalNoBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] < signalBiasValue and signal[i] > ( 0 - signalBiasValue )
            j += 1
    j

getPriceRising(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if close[i] > close[i + 1]
            j += 1
    j


getPriceFalling(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if close[i] < close[i + 1] 
            j += 1
    j

getRangeNarrowing(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if intrabarRange[i] < intrabarRange[i + 1] 
            j+= 1
    j

getRangeBroadening(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if intrabarRange[i] > intrabarRange[i + 1] 
            j+= 1
    j

bool isNegativeSignalReversal = signalSlope < 0 and signalSlope[1] > 0
bool isNegativeMacdReversal = macdSlope < 0 and macdSlope[1] > 0

bool isPositiveSignalReversal = signalSlope > 0 and signalSlope[1] < 0
bool isPositiveMacdReversal = macdSlope > 0 and macdSlope[1] < 0

bool hasBearInversion = signalSlope > 0 and macdSlope < 0
bool hasBullInversion = signalSlope < 0 and macdSlope > 0

bool hasSignalBias = math.abs(signal) >= signalBiasValue
bool hasNoSignalBias = signal < signalBiasValue and signal > ( 0 - signalBiasValue )

bool hasSignalBuyerBias = hasSignalBias and signal > 0
bool hasSignalSellerBias = hasSignalBias and signal < 0

bool hasPositiveMACDBias = macd > macdBiasValue
bool hasNegativeMACDBias = macd < ( 0 - macdBiasValue )

bool hasBullAntiPattern = ta.crossunder(macd, signal)
bool hasBearAntiPattern = ta.crossover(macd, signal)

bool hasSignificantBuyerVolBias = buyVolume > ( sellVolume * 1.5 )
bool hasSignificantSellerVolBias = sellVolume > ( buyVolume * 1.5 )

// 7.48 Profit 52.5% 
if ( hasSignificantBuyerVolBias and getPriceRising(shortLookBack) == shortLookBack  and getBuyerVolBias(shortLookBack) == shortLookBack and hasPositiveMACDBias and hasBullInversion)
    strategy.entry("Short1", strategy.short, qty=10)
strategy.exit("TPS", "Short1", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss)

// 32.53 Profit 47.91%
if ( getPriceFalling(shortLookBack) and (getVolBias(shortLookBack) == false) and signalSlope < 0 and hasSignalSellerBias)
    strategy.entry("Long1", strategy.long, qty=10)
strategy.exit("TPS", "Long1", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)

আরো