চতুর্ভুজীয় ফিটিং ট্রেডিং সিগন্যাল কৌশল

লেখক:চাওঝাং, তারিখঃ 2023-09-23 15:40:57
ট্যাগঃ

সারসংক্ষেপ

এই কৌশলটি যখন দাম ফিট লাইনগুলি ভেঙে যায় তখন ট্রেডিং সিগন্যাল তৈরি করতে বারগুলির উচ্চ / নিম্ন পয়েন্টগুলিতে একটি বর্গাকার বক্ররেখা ফিট করে। এটি ব্রেকআউট ট্রেডিংয়ের জন্য গণিতগতভাবে মূল সমর্থন / প্রতিরোধের স্তরগুলি সনাক্ত করার চেষ্টা করে।

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

মূল উপাদান এবং নিয়মগুলি হলঃ

  1. উচ্চ/নিম্ন পয়েন্টগুলিতে কার্ভ ফিটিং quadratic রিগ্রেশন ব্যবহার করে।

  2. উপরের ব্যান্ডের উপরে বন্ধ বিরতি যখন সংকেত কিনুন।

  3. যখন নিচের ব্যান্ডের নিচে বন্ধ হয় তখন সিগন্যাল বিক্রি করুন।

  4. মিথ্যা বিরতি এড়ানোর জন্য N সময়কালের যাচাইকরণ।

  5. কোন নির্দিষ্ট প্রস্থান নিয়ম নেই, ব্যাকটেস্টিং এর মাধ্যমে প্রস্থান অপ্টিমাইজ করুন।

কৌশলটি মূল মূল্যগুলিকে গাণিতিকভাবে সনাক্ত করার চেষ্টা করে এবং একটি সাধারণ ব্রেকআউট সিস্টেম, ব্রেকআউটগুলি বাণিজ্য করে।

সুবিধা

অন্যান্য ব্রেকআউট সিস্টেমের তুলনায়, প্রধান সুবিধা হলঃ

  1. গাণিতিক ফিটিং বিষয়গত বিচারের চেয়ে বেশি উদ্দেশ্যমূলক।

  2. প্রযুক্তিগত বিশ্লেষণ এবং পরিসংখ্যানগত মডেলকে একত্রিত করে নতুন পদ্ধতি।

  3. মাল্টি-পিরিয়ড ভেরিফিকেশন ভুয়া বিরতি এড়ায়।

  4. ব্যাকটেস্টিং থেকে বেরিয়ে আসা এবং অপেক্ষা করার সময়কালকে অনুকূল করা যায়।

  5. নমনীয় সমন্বয় সঙ্গে বাস্তবায়ন করা সহজ।

  6. মডেলটি ম্যানুয়াল হস্তক্ষেপ ছাড়াই স্বয়ংক্রিয়ভাবে আপডেট হয়।

  7. পণ্য এবং সময়সীমার মধ্যে প্যারামিটার স্থিতিশীলতা পরীক্ষা করতে পারে।

  8. মেশিন লার্নিং দিয়ে আরও অপ্টিমাইজ করার সম্ভাবনা।

  9. সামগ্রিকভাবে নতুন পদ্ধতির সাথে অনুসন্ধানের মূল্য।

ঝুঁকি

যাইহোক, ঝুঁকিগুলি হলঃ

  1. ফিটিং পারফরম্যান্স প্যারামিটার টিউনিং, ওভারফিটিং ঝুঁকি উপর নির্ভর করে।

  2. সজ্জিত লাইন বিলম্বিত, সম্পূর্ণরূপে ক্ষতি এড়াতে পারবেন না।

  3. কোনো ভলিউম নিশ্চিতকরণ নেই, ফাঁদে পড়ার ঝুঁকি আছে।

  4. পরিসংখ্যানগত সালিসিটি ধ্রুবক আলফার জন্য চ্যালেঞ্জিং।

  5. সীমিত ব্যাকটেস্ট সময়, স্থিতিশীলতা যাচাই করতে হবে।

  6. মাল্টি-মার্কেট অভিযোজনযোগ্যতা যাচাইয়ের প্রয়োজন।

  7. স্থির আকারের গতিশীল সমন্বয় নেই।

  8. পুরস্কার/ঝুঁকি অনুপাতের কঠোর মূল্যায়ন প্রয়োজন।

উন্নতি

বিশ্লেষণের উপর ভিত্তি করে, উন্নতিগুলি নিম্নলিখিতগুলি অন্তর্ভুক্ত করতে পারেঃ

  1. বাজার ব্যবস্থায় পরামিতির স্থায়িত্ব পরীক্ষা করুন।

  2. ভলিউম নিশ্চিতকরণ সূচক যোগ করুন।

  3. উচ্চ মানের সংকেতের জন্য প্রবেশ/প্রস্থান লজিক অপ্টিমাইজ করুন।

  4. গতিশীল অবস্থান আকারের মডেল তৈরি করুন।

  5. ক্ষতির পরিমাণ সীমিত করার জন্য স্টপ অন্তর্ভুক্ত করুন।

  6. ঝুঁকি ব্যবস্থাপনা কৌশল অপ্টিমাইজ করুন।

  7. রোলিং উইন্ডো ব্যাকটেস্টের বৈধতা।

  8. মাল্টি মার্কেট স্থিতিশীলতা মূল্যায়ন করুন।

  9. মডেল অপ্টিমাইজেশনের জন্য মেশিন লার্নিং ব্যবহার করুন।

সিদ্ধান্ত

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


/*backtest
start: 2023-08-23 00:00:00
end: 2023-09-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

strategy(title = " Strategy Quadratic Semaphore ",
         shorttitle = "SQS",
         overlay = true,
         precision = 8,
         calc_on_order_fills = true,
         calc_on_every_tick = true,
         backtest_fill_limits_assumption = 0,
         default_qty_type = strategy.fixed,
         default_qty_value = 2,
         initial_capital = 10000,
         pyramiding=5,
         currency = currency.USD,
         linktoseries = true)

//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

backTestSectionFrom = input(title = "═══════════════ From ═══════════════", defval = true, type = input.bool)

FromMonth         = input(defval = 1, title = "Month", minval = 1)
FromDay           = input(defval = 1, title = "Day", minval = 1)
FromYear          = input(defval = 2019, title = "Year", minval = 2014)

backTestSectionTo = input(title = "════════════════ To ════════════════", defval = true, type = input.bool)
ToMonth           = input(defval = 31, title = "Month", minval = 1)
ToDay             = input(defval = 12, title = "Day", minval = 1)
ToYear            = input(defval = 9999, title = "Year", minval = 2014)

Config            = input(title = "══════════════ Config ══════════════", defval = true, type = input.bool)
p = input(6)
length = input(30)
//
backTestPeriod() => (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))
//
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

x1 = bar_index
x2 = sqrt(x1)
y = high
//
S11 = sum(x2,length) - sqrt(sum(x1,length)) / length  
S12 = sum(x1*x2,length) - (sum(x1,length) * sum(x2,length)) / length  
S22 = sum(sqrt(x2),length) - sqrt(sum(x2,length)) / length            
Sy1 = sum (y*x1,length) - (sum(y,length) * sum(x1,length)) / length   
Sy2 = sum (y*x2,length) - (sum(y,length) * sum(x2,length)) / length   
//
max1 = sma(x1,length) 
max2 = sma(x2,length)
may = sma(y,length)
b2 = ((Sy1 * S22) - (Sy2*S12))/(S22*S11 - sqrt(S12))
b3 = ((Sy2 * S11) - (Sy1 * S12))/(S22 * S11 - sqrt(S12))
b1 = may - b2*max1 - b3*max2
qr = b1 + b2*x1 + b3*x2
//
yl = low
//
Sy1l = sum(yl*x1,length) - (sum(yl,length) * sum(x1,length)) / length  
Sy2l = sum(yl*x2,length) - (sum(yl,length) * sum(x2,length)) / length  
//
mayl = sma(yl,length)
b2l = ((Sy1l * S22) - (Sy2l*S12))/(S22*S11 - sqrt(S12))
b3l = ((Sy2l * S11) - (Sy1l * S12))/(S22 * S11 - sqrt(S12))
b1l = mayl - b2l*max1 - b3l*max2
qrl = b1l + b2l*x1 + b3l*x2
//
period = round(p/2)+1
hh = qr[period]
ll = qrl[period]
countH = 0
countL = 0
buy=0
sell=0
//
for i = 1 to period-1
    if qr[i]<hh
        countH:=countH+1
    if qrl[i]>ll
        countL:=countL+1

for i = period+1 to p+1
    if qr[i]<hh
        countH:=countH+1
    if qrl[i]>ll
        countL:=countL+1

if countH==p
    pivotH = high[period]
    buy := 1
    
if countL==p
    pivotL = low[period]
    sell := 1
//    
plotshape(buy == 1 , text='💣', style=shape.arrowup, location=location.belowbar, color=#32CD32, textcolor=color.white, offset=0, transp=0,size=size.auto)
plotshape(sell == 1 , text='🔨', style=shape.arrowdown, location=location.abovebar, color=#FF0000, textcolor=color.white, offset=0, transp=0,size=size.auto)
//

if (backTestPeriod())
    strategy.entry("long", true, 1, when = buy == 1)
    strategy.entry("short", false, 1, when = sell == 1) 


আরো