ডব্লিউএমএক্স উইলিয়ামস ফ্র্যাক্টালস বিপরীত পিভট কৌশল

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

img

সারসংক্ষেপ

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

কৌশল নীতি

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

বিশেষত, WMX উইলিয়ামস ফ্র্যাক্টালস নামে একটি কাস্টম সূচক কৌশলটিতে সংজ্ঞায়িত করা হয়েছে। এটি উপরের ফ্র্যাক্টাল (আপফ্র্যাক্টাল) এবং নীচের ফ্র্যাক্টাল (ডনফ্র্যাক্টাল) নির্ধারণের জন্য ফ্যাক্টর ফাংশন ব্যবহার করে।

উপরের ফ্রেক্টাল লজিকটি হলঃ বর্তমান কে-লাইনের সর্বোচ্চ মূল্য পূর্ববর্তী এন কে-লাইনের সর্বোচ্চ মূল্যের চেয়ে বেশি (এন একটি সামঞ্জস্যযোগ্য পরামিতি), এইভাবে একটি উপরের পাশের ব্রেকআউট ফ্রেক্টাল গঠন করে।

নীচের ফ্রেক্টাল লজিকটি হলঃ বর্তমান কে-লাইনের সর্বনিম্ন মূল্য পূর্ববর্তী এন কে-লাইনের সর্বনিম্ন মূল্যের চেয়ে কম, এইভাবে একটি নীচের পাশের ব্রেকআউট ফ্রেক্টাল গঠন করে।

উপরের এবং নীচের ফ্র্যাক্টালগুলি পাওয়ার পরে, তারা পরিবর্তন হয় কিনা তা নির্ধারণ করুন, অর্থাৎ, অস্তিত্ব থেকে অস্তিত্ব বা বিপরীতভাবে। এই সময়ে, ফ্র্যাক্টালটি সবেমাত্র গঠিত হয়েছে, বিপরীতের বৃহত্তর সম্ভাবনা নির্দেশ করে।

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

কৌশলগত সুবিধা

  1. বিপরীত সময় নির্ধারণের জন্য উইলিয়ামস সূচক ফ্র্যাক্টাল পয়েন্ট ব্যবহার করুন। এটি একটি পরিপক্ক এবং নির্ভরযোগ্য প্রযুক্তিগত সূচক।

  2. ট্রেডিং সিগন্যাল নিশ্চিত করতে এবং অস্থির অ-ট্রেন্ড অঞ্চলগুলি এড়াতে K-লাইন সত্তা দিকটি একত্রিত করুন।

  3. কয়েকটি পরামিতি যা শুধুমাত্র ফ্রেক্টাল পিরিয়ড n সামঞ্জস্য করতে হবে, যা পরীক্ষা করা এবং অপ্টিমাইজ করা সহজ।

  4. পজিশন খোলার জন্য নমনীয় সেটিংস যেমন পজিশনের আকার, বন্ধের শর্ত ইত্যাদি, লাইভ ট্রেডিংয়ে সহজেই প্রয়োগ করা যায়।

কৌশলগত ঝুঁকি

  1. ফ্রেক্টাল ফর্মের পরে, বাজার সম্পূর্ণরূপে বিপরীত হতে পারে না, প্রবণতা বিচার সঙ্গে একত্রিত করা প্রয়োজন।

  2. স্টপ লস পজিশন সেটিং সাবধানতা অবলম্বন করতে হবে যাতে শোরগোলের বিশাল অস্থিরতার দ্বারা বাদ দেওয়া না হয়।

  3. n প্যারামিটারটি বিভিন্ন পণ্যের জন্য সামঞ্জস্য করতে হবে। যদি সময়কাল খুব বড় বা খুব ছোট হয় তবে এটি ফলাফলকে প্রভাবিত করবে।

সমাধান:

  1. মূল প্রবণতা বিচার করতে চলমান গড়ের মতো সূচক যোগ করতে পারেন, প্রবণতার বিরুদ্ধে ট্রেডিং এড়াতে পারেন।

  2. ডায়নামিক ট্রেলিং স্টপ লস ব্যবহার করুন অথবা যুক্তিসঙ্গত ড্রাউডাউন ভিত্তিক স্টপ লস সেট করুন।

  3. প্যারামিটার অপ্টিমাইজ করতে এবং সর্বোত্তম মান খুঁজে পেতে ওয়াক ফরওয়ার্ড বিশ্লেষণ ব্যবহার করুন।

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

  1. ফ্র্যাক্টাল বিপরীতমুখী কৌশলগুলি একাধিক লাভের দিকে পরিচালিত করে এবং তারপরে ক্ষতির দিকে ফিরে যায়। ট্রেডিং পরিসীমা আরও সীমাবদ্ধ করতে এবং অপ্রয়োজনীয় বিপরীতমুখী বাণিজ্য হ্রাস করতে প্রবণতা ফিল্টার যুক্ত করার বিষয়টি বিবেচনা করতে পারে।

  2. বর্তমান সহজ স্টপ লস পদ্ধতি কার্যকরভাবে বাজারের গতিবিধি ট্র্যাক করতে পারে না। আরও উন্নত স্টপ লস কৌশল যেমন চলমান স্টপ লস, সময় ভিত্তিক স্টপ লস, গতিশীল স্টপ লস ইত্যাদি চেষ্টা করতে পারে।

  3. বর্তমানে শুধুমাত্র কে-লাইন সত্তা দিক ব্যবহার করুন. যদি উইক এবং কাছাকাছি অবস্থান মত আরো কে-লাইন তথ্য বিবেচনা, এমনকি আরো সুনির্দিষ্ট ট্রেড সংকেত ডিজাইন করতে পারেন.

সিদ্ধান্ত

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

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


/*backtest
start: 2023-11-14 00:00:00
end: 2023-12-14 00:00:00
period: 1h
basePeriod: 15m
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/
// © WMX_Q_System_Trading

//@version=4
SystemName="WMX Williams Fractals strategy V4"
InitCapital = 1000000
InitPosition = 100
InitCommission = 0.075
InitPyramidMax = 10
strategy(title=SystemName, shorttitle=SystemName, overlay=true, initial_capital=InitCapital, default_qty_type=strategy.percent_of_equity, default_qty_value=InitPosition, commission_type=strategy.commission.percent, commission_value=InitCommission)


//study("WMX Williams Fractals", shorttitle="WMX Fractals", format=format.price, precision=0, overlay=true)
// Define "n" as the number of periods and keep a minimum value of 2 for error handling.
n = input(title="Periods", defval=2, minval=2, type=input.integer)
h=close
l=close

factorh(High)=>
    upFractal = (                                                                                                          (High[n+2]  < High[n]) and (High[n+1]  < High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n]))
             or (                                                                               (High[n+3]  < High[n]) and (High[n+2]  < High[n]) and (High[n+1] == High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n]))
             or (                                                    (High[n+4]  < High[n]) and (High[n+3]  < High[n]) and (High[n+2] == High[n]) and (High[n+1] <= High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n]))
             or (                          (High[n+5] < High[n]) and (High[n+4]  < High[n]) and (High[n+3] == High[n]) and (High[n+2] == High[n]) and (High[n+1] <= High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n]))
             or ((High[n+6] < High[n]) and (High[n+5] < High[n]) and (High[n+4] == High[n]) and (High[n+3] <= High[n]) and (High[n+2] == High[n]) and (High[n+1] <= High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n]))
    upFractal
upFractal=factorh(h)
factorl(Low)=>
    dnFractal = (                                                                                                  (Low[n+2]  > Low[n]) and (Low[n+1]  > Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n]))
             or (                                                                         (Low[n+3]  > Low[n]) and (Low[n+2]  > Low[n]) and (Low[n+1] == Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n]))
             or (                                                (Low[n+4]  > Low[n]) and (Low[n+3]  > Low[n]) and (Low[n+2] == Low[n]) and (Low[n+1] >= Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n]))
             or (                        (Low[n+5] > Low[n]) and (Low[n+4]  > Low[n]) and (Low[n+3] == Low[n]) and (Low[n+2] == Low[n]) and (Low[n+1] >= Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n]))
             or ((Low[n+6] > Low[n]) and (Low[n+5] > Low[n]) and (Low[n+4] == Low[n]) and (Low[n+3] >= Low[n]) and (Low[n+2] == Low[n]) and (Low[n+1] >= Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n]))
    
dnFractal=factorl(l)

U=valuewhen(upFractal[0]!= upFractal[1],l[0],3)
L=valuewhen(dnFractal[0]!=dnFractal[1],h[0],3)

longcon=crossover(close ,L) and close>open
shortcon=crossunder(close ,U) and close<open

if longcon
    
    strategy.entry("Long", strategy.long,   when = strategy.position_size <= 0 )
    
if  shortcon
    strategy.entry("Short", strategy.short,  when = strategy.position_size >= 0 )
        






আরো