পিভট পয়েন্ট এবং ফিবোনাচি রিট্রেসমেন্টের উপর ভিত্তি করে কৌশল অনুসরণ করে স্বয়ংক্রিয় প্রবণতা


সৃষ্টির তারিখ: 2024-01-05 11:34:17 অবশেষে সংশোধন করুন: 2024-01-05 11:34:17
অনুলিপি: 0 ক্লিকের সংখ্যা: 687
1
ফোকাস
1621
অনুসারী

পিভট পয়েন্ট এবং ফিবোনাচি রিট্রেসমেন্টের উপর ভিত্তি করে কৌশল অনুসরণ করে স্বয়ংক্রিয় প্রবণতা

ওভারভিউ

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

কৌশল নীতি

  1. শেয়ারের উচ্চ ও নিম্ন অক্ষের গণনা
  2. মূল্যায়ন করুন যে দামটি পূর্ববর্তী তরঙ্গের উচ্চ থেকে নেমে এসেছে বা পূর্ববর্তী তরঙ্গের নিম্ন থেকে উঠে এসেছে
  3. বর্তমান ও পূর্ববর্তী সেগমেন্টের মধ্যে ফিবোনাচি রিট্র্যাকশন অনুপাত গণনা করুন
  4. যদি উপরের এবং নীচের অংশের প্রত্যাহারের অনুপাত যথাযথ পরিসরে থাকে তবে এটি নির্ধারণ করা হয় যে ABC অংশটি তৈরি হতে পারে
  5. ABC রেঞ্জ নিশ্চিত হওয়ার পরে, স্টপ লসটি C পয়েন্টে সেট করুন, স্টপস্টপটি 1.5 গুণ ওভারল্যাপ করুন; স্টপ লসটি A পয়েন্টে সেট করুন, স্টপস্টপটি 1.5 গুণ ওভারল্যাপ করুন

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

  1. সংকেতের সঠিকতা বাড়ানোর জন্য মূল প্রতিরোধের অঞ্চলগুলি নির্ধারণের জন্য কেন্দ্রীয় পয়েন্টগুলি ব্যবহার করুন
  2. অ্যাপ্লিকেশন ফিবোনাচি প্রত্যাহার বিবিসি মোড সনাক্ত করে, স্বয়ংক্রিয়ভাবে প্রবণতা রূপান্তর পয়েন্ট ক্যাপচার করে
  3. স্টপ লস সুস্পষ্ট এবং যুক্তিসঙ্গত, বড় ক্ষতি এড়াতে

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

  1. মেরু এবং ফিবোনাচি রিট্র্যাক্টের মাধ্যমে প্রতিবারই সঠিকভাবে ট্রেন্ড চেঞ্জ পয়েন্ট নির্ণয় করা সম্ভব নয়।
  2. C এবং A বিন্দুতে ক্ষতির বিস্তার ঘটাতে পারে
  3. Fibonacci Retracement Ratio-এর পরিধি সহ প্যারামিটার অপ্টিমাইজেশান প্রয়োজন

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

  1. সংকেতের সঠিকতা বাড়ানোর জন্য ABC আকৃতির বিচার করতে আরও প্রযুক্তিগত সূচক যুক্ত করা যেতে পারে
  2. Fibonacci Retracement Ratio এর পরিধি আরও বেশি বাজারের অবস্থার সাথে খাপ খাইয়ে নেওয়ার জন্য অপ্টিমাইজ করা যায়
  3. মেশিন লার্নিং পদ্ধতির সাথে যুক্ত মডেল যা ABC আকৃতির বিচার করতে পারে

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-19 23:59:59
period: 1m
basePeriod: 1m
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/
// © kerok3g

//@version=5
strategy("ABCD Strategy", shorttitle="ABCDS", overlay=true, commission_value=0.04)
calcdev(fprice, lprice, fbars, lbars) =>
    rise = lprice - fprice
    run = lbars - fbars
    avg = rise/run
    ((bar_index - lbars) * avg) + lprice

len = input(5)

ph = ta.pivothigh(len, len)
pl = ta.pivotlow(len, len)

var bool ishigh = false
ishigh := ishigh[1]

var float currph = 0.0
var int currphb = 0
currph := nz(currph)
currphb := nz(currphb)

var float oldph = 0.0
var int oldphb = 0
oldph := nz(oldph)
oldphb := nz(oldphb)

var float currpl = 0.0
var int currplb = 0
currpl := nz(currpl)
currplb := nz(currplb)

var float oldpl = 0.0
var int oldplb = 0
oldpl := nz(oldpl)
oldplb := nz(oldplb)

if (not na(ph))
    ishigh := true
    oldph := currph
    oldphb := currphb
    currph := ph
    currphb := bar_index[len]
else
    if (not na(pl))
        ishigh := false
        oldpl := currpl
        oldplb := currplb
        currpl := pl
        currplb := bar_index[len]

endHighPoint = calcdev(oldph, currph, oldphb, currphb)
endLowPoint = calcdev(oldpl, currpl, oldplb, currplb)

plotshape(ph, style=shape.triangledown, color=color.red, location=location.abovebar, offset=-len)
plotshape(pl, style=shape.triangleup, color=color.green, location=location.belowbar, offset=-len)

// var line lnhigher = na
// var line lnlower = na
// lnhigher := line.new(oldphb, oldph, bar_index, endHighPoint)
// lnlower := line.new(oldplb, oldpl, bar_index, endLowPoint)
// line.delete(lnhigher[1])
// line.delete(lnlower[1])

formlong = oldphb < oldplb and oldpl < currphb and currphb < currplb
longratio1 = (currph - oldpl) / (oldph - oldpl)
longratio2 = (currph - currpl) / (currph - oldpl)

formshort = oldplb < oldphb and oldphb < currplb and currplb < currphb
shortratio1 = (oldph - currpl) / (oldph - oldpl)
shortratio2 = (currph - currpl) / (oldph - currpl)

// prevent multiple entry for one pattern
var int signalid = 0
signalid := nz(signalid[1])

longCond = formlong and 
           longratio1 < 0.7 and 
           longratio1 > 0.5 and 
           longratio2 > 1.1 and 
           longratio2 < 1.35 and 
           close < oldph and 
           close > currpl and 
           signalid != oldplb
if (longCond)
    signalid := oldplb
    longsl = currpl - ta.tr
    longtp = ((close - longsl) * 1.5) + close
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", "Long", limit=math.min(longtp, oldph), stop=longsl)

shortCond = formshort and 
             shortratio1 < 0.7 and 
             shortratio1 > 0.5 and 
             shortratio2 > 1.1 and 
             shortratio2 < 1.35 and 
             close > oldpl and 
             close < currph and 
             signalid != oldphb

if (shortCond)
    signalid := oldphb
    shortsl = currph + ta.tr
    shorttp = close - ((shortsl - close) * 1.5)
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", "Short", limit=math.max(shorttp, oldpl), stop=shortsl)