টাইম-স্টিপড পিরামিডিং সিম্পল কোয়ান্ট কৌশল

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

img

সারসংক্ষেপ

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

নীতিমালা

কৌশলটি তিনটি মূল যুক্তির উপর ভিত্তি করে তৈরি করা হয়েছে:

  1. সময়-পদক্ষেপযুক্ত পিরামিডিং

    ব্যবহার করুনsessionTimeপ্যারামিটার একটি দৈনিক ট্রেডিং সময় উইন্ডো সেট করতে, এই উইন্ডো সময় খোলা বাজারে ধাপে ধাপে পিরামিড দীর্ঘ পজিশন। অবস্থান আকার সর্বোচ্চ মূলধন গড় বরাদ্দ হয়।

  2. স্বতন্ত্র মুনাফা গ্রহণ এবং ক্ষতি বন্ধ

    লাভের স্তরের সাথে সামঞ্জস্যপূর্ণ সেটtakeProfitএবং স্টপ লস লেভেলstopLossপ্রতিটি খোলা পজিশনের জন্য, যাতে প্রতিটি পজিশনের নিজস্ব লাভ গ্রহণ এবং ব্যাচ এক্সিকিউশন বাস্তবায়নের জন্য স্টপ লস লজিক থাকে।

  3. সময় উইন্ডো শেষ হলে সকল অবস্থান বন্ধ করুন

    উইন্ডোর শেষে টাইম উইন্ডোতে খোলা সমস্ত পজিশন বন্ধ করতে চান কিনা তা নির্বাচন করুন।

সুবিধা

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

  1. ঝুঁকি বৈচিত্র্যঃ একক পজিশনের ক্ষতি কার্যকরভাবে নিয়ন্ত্রণ করার জন্য মূলধনকে বিভিন্ন পজিশনে সমানভাবে বরাদ্দ করুন।

  2. ব্যাচ লাভ গ্রহণ এবং হ্রাস বন্ধ করা। ভর হ্রাস বন্ধ করা এড়ানোর জন্য বিভিন্ন অবস্থানের স্বাধীন যুক্তি রয়েছে।

  3. নমনীয় কনফিগারেশন। সর্বাধিক পিরামিডিং সময়, দৈনিক সময় উইন্ডো, লাভ গ্রহণ / স্টপ লস অনুপাত ইত্যাদির মতো কাস্টমাইজযোগ্য পরামিতি।

  4. সহজ এবং পরিষ্কার যুক্তি, বোঝা সহজ।

ঝুঁকি

এছাড়াও কিছু ঝুঁকি আছেঃ

  1. সমস্ত পজিশন লাভ নেওয়ার আগে স্টপ লস ট্রিগার করলে পুরো মূলধন আটকে যাওয়ার ঝুঁকি। স্টপ লস রেসিও যুক্তিসঙ্গতভাবে কনফিগার করে এড়ানো যায়।

  2. প্রতিদিন মোট খোলা পজিশন মূলধনের কোন সীমা নেই। খুব বেশি পজিশন যদি অস্বাভাবিক বাজারের পরিস্থিতির মুখোমুখি হয় তবে মূলধন বহনযোগ্যতা অতিক্রম করতে পারে। প্রতিদিন সর্বোচ্চ মোট পজিশন মূলধন যোগ করার বিষয়টি বিবেচনা করুন।

  3. ভুল টাইম উইন্ডো কনফিগারেশন ট্রেডিং সুযোগ মিস করতে পারে। ট্রেডিং সম্পদ সক্রিয় ট্রেডিং সময় উইন্ডো পড়ুন সুপারিশ।

উন্নতকরণ

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

  1. প্রযুক্তিগত সূচকগুলির উপর ভিত্তি করে খোলা পজিশনের শর্ত যোগ করুন যাতে অযৌক্তিক পিরামিডিং এড়ানো যায়।

  2. মূলধন বহনযোগ্যতা অতিক্রম না করার জন্য প্রতিদিনের মোট খোলা পজিশনের মূলধন সীমা যোগ করুন।

  3. বিভিন্ন পজিশনের জন্য ভিন্ন লাভ গ্রহণ/স্টপ লস অনুপাত নির্ধারণ করুন যাতে ভিন্ন লাভ গ্রহণ এবং স্টপ লস উপলব্ধি করা যায়।

  4. পজিশনের পরিমাণকে মূলধন পুলের ব্যালেন্সের সাথে সংযুক্ত করার জন্য যুক্তি যোগ করুন।

সিদ্ধান্ত

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


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © A3Sh

//@version=5
strategy("Simple_Pyramiding", overlay=true, pyramiding=99, initial_capital=500, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.075, close_entries_rule='FIFO')

// Study of a Simple DCA strategy that opens a position every day at a specified time.
// A position is opened at the start time of the Timeframe.
// Positions exit individually when the take profit level is triggered.
// Option to activate Stop Loss and/or Position exit at the end of the Timeframe


// Backtest Window
start_time   = input(defval=timestamp("01 April 2021 20:00"), group = "Backtest Window", title="Start Time")
end_time     = input(defval=timestamp("01 Aug 2022 20:00"),  group = "Backtest Window", title="End Time")
window() => true


// Inputs
posCount     = input.int    (6,           group = "Risk",         title = "Max Amount of DCA Entries")
takeProfit   = input.float  (2.5,         group = "Risk",         title = "Take Profit %")
slSwitch     = input.bool   (true,        group = "Risk",         title = "Activate Stop Loss")
stopLoss     = input.float  (9,           group = "Risk",         title = "Stop Loss %")
sessionTime =  input("1800-1700", group = "DCA Settings", title = "DCA Order Timeframe", tooltip="Open order at the start/If ativated, close order at the end")
exitDCA     =  input.bool   (false,       group = "DCA Settings", title = "Exit DCA Entry at end of Timeframe")


// Order size based on max amount of pyramid orders
q = (strategy.equity  / posCount) / open


// Timeframe for opening and closing a DCA order
// example taken from https://stackoverflow.com/questions/69230164/pinescript-basic-question-open-a-trade-at-a-set-time-each-day
t       = time("D", sessionTime)
isStart = na(t[1]) and not na(t) or t[1] < t
isEnd   = na(t) and not na(t[1]) or t[1] < t
bgcolor(t ? color.new(color.blue,95) : na, title = " TimeFrame Color")


// Create DCA Entries
entry_price = 0.0
if isStart and window() 
    for i = 0 to strategy.opentrades
        if strategy.opentrades == i
            entry_price := close
            entry_id = "PE_" + str.tostring(i + 1) 
            strategy.entry(id = entry_id, direction=strategy.long, limit=entry_price, qty=q)
        if strategy.opentrades == posCount
            break
            
 
//Exit DCA Entries when take profit or stop loss is triggered
if strategy.opentrades > 0 and window() 
    for i = 0 to strategy.opentrades 
        exit_from = "PE_" + str.tostring(i + 1)
        exit_id = "Exit_" + str.tostring(i + 1)
        strategy.exit(id= exit_id, from_entry= exit_from, profit = close * takeProfit / 100 / syminfo.mintick, loss = slSwitch ? close * stopLoss /100 / syminfo.mintick :na)
        

//Exit DCA Entries at end of DCA Timeframe
if strategy.opentrades > 0 and exitDCA and isEnd and window() 
    for i = 0 to strategy.opentrades 
        exit_from = "PE_" + str.tostring(i + 1)
        exit_id = "Exit_" + str.tostring(i + 1)
        strategy.exit(id= exit_id, from_entry= exit_from, stop = close)




আরো