শেষ N মোমবাতি বিপরীত যুক্তি কৌশল

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

img

সারসংক্ষেপ

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

কৌশল নীতি

এই কৌশল প্রধানত নিম্নলিখিত গুরুত্বপূর্ণ পরামিতিগুলির উপর নির্ভর করেঃ

  1. numCandlesToCheck: চেক করার জন্য মোমবাতি সংখ্যা নির্দিষ্ট করতে ব্যবহৃত হয়
  2. numCandlesToExit: খোলা অবস্থানের পর মোমবাতি সংখ্যা নির্দিষ্ট করে যা প্রস্থান করতে হবে
  3. বিপরীত লজিকঃ বিপরীত লজিক প্যারামিটার। যখন সত্য, মূল দীর্ঘ এবং সংক্ষিপ্ত লজিক বিপরীত হয়

মূল যুক্তি হ'ল ফর লুপের মাধ্যমে সর্বশেষ নুম ক্যান্ডলসটোচেক মোমবাতিগুলি অতিক্রম করা এবং রিয়েল টাইমে পরপর সবুজ এবং লাল মোমবাতিগুলি গণনা করা। যদি পরপর লাল মোমবাতিগুলি ≥নুম ক্যান্ডলসটোচেক হয় তবে lastNCandlesRed সত্য হিসাবে চিহ্নিত করুন। যদি পরপর সবুজ মোমবাতিগুলি ≥নুম ক্যান্ডলসটোচেক হয় তবে lastNCandlesGreen সত্য হিসাবে চিহ্নিত করুন।

যখন lastNCandlesGreen সত্য হয়, যদি inverseLogic মিথ্যা হয় তবে দীর্ঘ যান, অন্যথায় সংক্ষিপ্ত যান। বিপরীতে, যখন lastNCandlesRed সত্য হয়, যদি inverseLogic মিথ্যা হয় তবে সংক্ষিপ্ত যান, অন্যথায় দীর্ঘ যান।

দীর্ঘ বা সংক্ষিপ্ত যাই হোক না কেন, barsSinceEntry কাউন্টারটি খোলার অবস্থানের পরে 0 এ পুনরায় সেট করা হবে। যখন barsSinceEntry numCandlesToExit এর চেয়ে বড় বা সমান হয়, তখন বর্তমান অবস্থানটি বন্ধ হয়ে যাবে।

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

এটি একটি আকর্ষণীয় কৌশল যা সিদ্ধান্ত নেওয়ার জন্য মোমবাতি রঙ ব্যবহার করে, একটি বিপরীত লজিক প্যারামিটার সহ যা দীর্ঘ এবং সংক্ষিপ্ত লজিককে নমনীয়ভাবে সামঞ্জস্য করতে পারে। প্রধান সুবিধা হলঃ

  1. এই ধারণাটি নতুন এবং বাজারের সাধারণ যুক্তির বিরুদ্ধে বিপরীত বিনিয়োগ গঠন করতে পারে
  2. কোডটি পরিষ্কার এবং সংক্ষিপ্ত, সহজেই বোঝা যায় এবং সংশোধন করা যায়
  3. প্যারামিটার সমন্বয় দ্বারা সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে পারেন
  4. বাজারের অবস্থা যাই হোক না কেন, এই কৌশল চালানো এবং সংকেত উত্পাদন চালিয়ে যেতে পারে

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

এই কৌশলটির জন্য কিছু ঝুঁকিও রয়েছেঃ

  1. মোমবাতি রঙ বাজারের অবস্থা সম্পূর্ণরূপে প্রতিনিধিত্ব করতে পারে না, ভুল সংকেত ট্র্যাকিং ঝুঁকি বিদ্যমান
  2. numCandlesToCheck এর জন্য সর্বোত্তম মান নির্ধারণ করতে ব্যর্থ
  3. numCandlesToExit এর জন্য সর্বোত্তম মান নির্ধারণ করতে ব্যর্থ
  4. ভুল ইনভার্স লজিক প্যারামিটার ক্ষতি বাড়াতে পারে
  5. একক স্টপ ক্ষতি কার্যকরভাবে নিয়ন্ত্রণ করতে অক্ষম

এই ঝুঁকি মোকাবেলায় নিয়ন্ত্রণ ও অপ্টিমাইজেশনের জন্য নিম্নলিখিত ব্যবস্থা গ্রহণ করা যেতে পারেঃ

  1. ভুল সংকেত এড়ানোর জন্য অন্যান্য ফিল্টার বৃদ্ধি করুন, উদাহরণস্বরূপ উচ্চতর সময়সীমার প্রবণতা নির্ধারণ করুন
  2. সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে বিভিন্ন পরামিতি মান অতিক্রম
  3. একক ক্ষতি নিয়ন্ত্রণের জন্য স্টপ লস মেকানিজম যোগ করুন
  4. বিপরীত লজিক প্যারামিটারের কার্যকারিতা যাচাই করুন

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

এই কৌশলটির মূল অপ্টিমাইজেশান দিকগুলি হলঃ

  1. আটকে না থাকার জন্য অর্ডার বুকের অবস্থা বাড়ান
  2. numCandlesToCheck এবং numCandlesToExit এর মান অপ্টিমাইজ করুন
  3. মিথ্যা সংকেত ফিল্টার করতে উচ্চতর সময়সীমার উপর প্রবণতা সূচক যোগ করুন
  4. স্টপ লস যোগ করুন এবং লাভ নিন
  5. কার্যকারিতা যাচাই করার জন্য বিভিন্ন পণ্যের উপর ব্যাকটেস্ট
  6. মূল এবং বিপরীত লজিক মধ্যে রিটার্ন তুলনা করুন

সিদ্ধান্ত

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


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

//@version=4
strategy("Last Number of  Candles", overlay=true)

// Define the condition for a green candle
isGreenCandle(candle) =>
    close[candle] > open[candle]

// Define the condition for a red candle
isRedCandle(candle) =>
    close[candle] < open[candle]

// Input to specify the number of candles to check
numCandlesToCheck = input(5, title="Number of Candles to Check")
numCandlesToExit = input(2, title="Number of Candles To Exit")  // Corrected the input title

// Initialize variables to count consecutive green and red candles
var int consecutiveGreenCandles = 0
var int consecutiveRedCandles = 0

// Initialize barsSinceEntry outside the loop
var int barsSinceEntry = 0

// Loop through the last "numCandlesToCheck" candles
for i = 0 to numCandlesToCheck - 1
    if isGreenCandle(i)
        consecutiveGreenCandles := consecutiveGreenCandles + 1
        consecutiveRedCandles := 0 // Reset the count for consecutive red candles
    else if isRedCandle(i)
        consecutiveRedCandles := consecutiveRedCandles + 1
        consecutiveGreenCandles := 0 // Reset the count for consecutive green candles

// Check if the last "numCandlesToCheck" candles are green or red
lastNCandlesGreen = consecutiveGreenCandles >= numCandlesToCheck
lastNCandlesRed = consecutiveRedCandles >= numCandlesToCheck

// Calculate the quantity based on the investment value and current asset price
investmentValue = input(10000, title="Investment Value")
var assetPrice = close
var quantity = investmentValue / assetPrice


inverseLogic = input(false, title="inverseLogic")

// Entry condition: Open a buy order if the last "numCandlesToCheck" candles are green
if lastNCandlesGreen
    if inverseLogic
        strategy.entry("Short", strategy.long, qty = quantity)
    else 
        strategy.entry("Buy", strategy.long, qty = quantity)// Reset barsSinceEntry when entering a trade
    barsSinceEntry := 0

// Entry condition: Open a short order if the last "numCandlesToCheck" candles are red
if lastNCandlesRed
    if inverseLogic
        strategy.entry("Buy", strategy.long, qty = quantity)

    else 
        strategy.entry("Short", strategy.short, qty = quantity)
    // Reset barsSinceEntry when entering a trade
    barsSinceEntry := 0

// Increment barsSinceEntry
barsSinceEntry := barsSinceEntry + 1

// Exit condition: Close the position after 2 bars
if barsSinceEntry >= numCandlesToExit
    strategy.close("Buy")
    strategy.close("Short")


আরো