ডাবল টার্টল ব্রেকআউট কৌশল


সৃষ্টির তারিখ: 2023-11-28 16:25:41 অবশেষে সংশোধন করুন: 2023-11-28 16:25:41
অনুলিপি: 0 ক্লিকের সংখ্যা: 689
1
ফোকাস
1619
অনুসারী

ডাবল টার্টল ব্রেকআউট কৌশল

ওভারভিউ

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

কৌশল নীতি

মূল লজিকটি হ’ল বড় চক্রের উচ্চতায় ছোট চক্রের উচ্চতাটি ভেঙে খালি করা এবং বড় চক্রের নিম্নের নীচে ছোট চক্রের নিম্নের সময় আরও বেশি করা। পজিশন তৈরির পরে, একটি চলমান স্টপ এবং একটি চলমান স্টপ সেট করুন, প্রথমে স্টপটি নিশ্চিত করুন। যখন পজিশন সংখ্যাটি সেট করা স্টপ সংখ্যায় জমা হয়, পরবর্তী চক্রের জন্য স্টপ অর্ডারটি বাতিল করুন, তারপরে অর্ধেক পজিশনটি ছেড়ে চলে যান এবং মুনাফা লক করার জন্য চলমান স্টপ এবং চলমান স্টপ সেট করুন এবং দামের পার্থক্যটি ট্র্যাক করুন।

এই পদক্ষেপগুলি হলঃ

  1. গণনা করুন বড় পিরিয়ড ((20 পিরিয়ড) উচ্চ পয়েন্টprevHigh এবং ছোট পিরিয়ড ((4 পিরিয়ড) উচ্চ পয়েন্টsmallPeriodHigh。
  2. যখন সর্বশেষ K লাইনের উচ্চতা prevHigh এর চেয়ে বড় হয় এবং prevHigh ছোট পিরিয়ড উচ্চতার চেয়ে বড় হয়, তখন বড় পিরিয়ডের উচ্চতা ছোট পিরিয়ডের উচ্চতা অতিক্রম করে। এই সময়ে কোনও অবস্থান না থাকলে খালি থাকে।
  3. পজিশন তৈরির পর মোবাইল স্টপ সেট করুন, পজিশন রিভার্সনের পর স্টপ ওয়ারেন্ট বাতিল করুন, যাতে ক্ষতি বন্ধ না হয়।
  4. যখন পজিশনের সংখ্যা সেট করা মোবাইল স্টপ-অফ চক্রের সংখ্যায় পৌঁছে যায় (বর্তমানে 0 চক্র), পরবর্তী চক্রের জন্য অর্ধেক পজিশন বের করে এবং মোবাইল স্টপ-অফ এবং মোবাইল স্টপ-অফ সেট করে, দামের পার্থক্য ট্র্যাক করে এবং মুনাফা লক করে।
  5. নিম্ন পয়েন্টের জন্য একইভাবে, বড় চক্রের নিম্ন পয়েন্ট এবং ছোট চক্রের নিম্ন পয়েন্টের উপর ভিত্তি করে একাধিক অবস্থান তৈরি করা।

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

এটি একটি সমন্বিত এবং শক্তিশালী কৌশল যা নিম্নলিখিত সুবিধাগুলির সাথে আসেঃ

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

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

প্রধান ঝুঁকি এবং প্রতিকার নিম্নরূপঃ

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

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

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

  1. এর ফলে, ট্রাফিকের সংখ্যা বৃদ্ধি পাবে এবং এই ধরনের ঘটনা সত্যই ঘটেছে কিনা তা নিশ্চিত করার জন্য একটি ব্রেকআপ ফিল্টার ব্যবহার করা হবে।
  2. প্রবণতা নির্ণয়ের সূচক যোগ করুন, প্রবণতার শেষের দিকে পজিশন তৈরি করা এড়িয়ে চলুন।
  3. আরও সময়কালের সাথে মিলিত হয়ে, এই আবিষ্কারের সময় নির্ধারণ করুন।
  4. মেশিন লার্নিং অ্যালগরিদম এবং গতিশীল অপ্টিমাইজেশান প্যারামিটার যোগ করা হয়েছে।
  5. পরিসংখ্যানগত আরবিটেশন (Statistical Arbitrage) এর জন্য অন্যান্য কৌশলগুলির সাথে সমন্বয় করা।

সারসংক্ষেপ

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

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

//@version=3
strategy(title = "Turtle soup plus one", shorttitle = "Turtle soup plus one", overlay=true)

bigPeriod = input(20)
smallPeriod = input(4)
takeProfitBars = input(0)
trailingStop = input(5, title = "Trailing stop percentages")
if (strategy.position_size == 0)
    strategy.cancel("Long")
    strategy.cancel("Short")
    strategy.cancel("Stop")



stopLossPrice = 0.1
stopLossPrice := nz(stopLossPrice[1])
takeProfitStarted = false
takeProfitStarted := nz(takeProfitStarted[1])

prevHigh = highest(high, bigPeriod - smallPeriod)[smallPeriod]
smallPeriodHigh = highest(high, smallPeriod - 1)[1]
if (high > prevHigh and prevHigh > smallPeriodHigh and close > prevHigh and strategy.position_size == 0)
    strategy.order("Short", strategy.short, stop = prevHigh)

if strategy.position_size < 0 and strategy.position_size[1] == 0
    stopLossPrice := high[1]
    strategy.order("Stop", strategy.long, qty = -strategy.position_size, stop = stopLossPrice)
    takeProfitStarted := false

if (strategy.position_size < 0 and sum(strategy.position_size, takeProfitBars) == strategy.position_size * takeProfitBars and close < strategy.position_avg_price and not takeProfitStarted)
    takeProfitStarted := true
    strategy.cancel("Stop")
    strategy.order("ExitHalf", strategy.long, qty = ceil(-strategy.position_size / 2), stop = close)
    if (strategy.position_size != -1)
        strategy.exit("ExitFull", "Short", qty = -strategy.position_size - ceil(-strategy.position_size / 2), loss = stopLossPrice, trail_price  = close, trail_offset = -(close - strategy.position_avg_price) * trailingStop / 100 / syminfo.mintick)
        

prevLow = lowest(low, bigPeriod - smallPeriod)[smallPeriod]
smallPeriodLow = lowest(low, smallPeriod - 1)[1]
if (low < prevLow and prevLow < smallPeriodLow and close < prevLow and strategy.position_size == 0)
    strategy.order("Long", strategy.long, stop = prevLow)

if strategy.position_size > 0 and strategy.position_size[1] == 0
    stopLossPrice := low[1]
    strategy.order("Stop", strategy.short, qty = strategy.position_size, stop = stopLossPrice)
    takeProfitStarted := false

if (strategy.position_size > 0 and sum(strategy.position_size, takeProfitBars) == strategy.position_size * takeProfitBars and close > strategy.position_avg_price and not takeProfitStarted)
    takeProfitStarted := true
    strategy.cancel("Stop")
    strategy.order("ExitHalf", strategy.short, qty = ceil(strategy.position_size / 2), stop = close)
    if (strategy.position_size != 1)
        strategy.exit("ExitFull", "Long", qty = strategy.position_size - ceil(strategy.position_size / 2),loss = stopLossPrice, trail_price  = close, trail_offset = (close - strategy.position_avg_price) * trailingStop / 100 / syminfo.mintick)

// === Backtesting Dates ===
testPeriodSwitch = input(false, "Custom Backtesting Dates")
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(3, "Backtest Start Month")
testStartDay = input(6, "Backtest Start Day")
testStartHour = input(08, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0)
testStopYear = input(2038, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(14, "Backtest Stop Day")
testStopHour = input(14, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStopHour,0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
isPeriod = testPeriodSwitch == true ? testPeriod() : true
// === /END
if not isPeriod
    strategy.cancel_all()
    strategy.close_all()