
এই কৌশলটি উইলিয়াম সূচকের বিপর্যয় নীতি গ্রহণ করে, একটি নির্দিষ্ট আকৃতির কে লাইনের সাথে একত্রিত করে, একটি কার্যকর বহুমুখী খালি খোলা এবং খালি পজিশনের একটি মডেল ডিজাইন করে, যাতে বাজারের বিপরীতের মূল পয়েন্টগুলিতে সঠিকভাবে অতিরিক্ত খালি করা যায়, মধ্যম সংক্ষিপ্ত লাইন প্রবণতা ধরা যায় এবং অতিরিক্ত আয় করা যায়।
এই কৌশলটি উইলিয়াম সূচকের বিভাজন পয়েন্ট ব্যবহার করে বিপরীত সিগন্যালের বিচার করে। যখন উপরে বা নীচে বিভাজন দেখা দেয়, তখন কে-লাইন সত্তার দিকনির্দেশের সাথে সামঞ্জস্য থাকলে একটি লেনদেনের সংকেত তৈরি হয়।
বিশেষ করে, কৌশলটি একটি কাস্টম WMX উইলিয়ামস ফ্র্যাক্টালস সূচক সংজ্ঞায়িত করে। এই সূচকটি একটি ফ্যাক্টর ফাংশন ব্যবহার করে উপরের শ্রেণিবদ্ধকরণ (আপফ্র্যাক্টাল) এবং নিম্ন শ্রেণিবদ্ধকরণ (ডেনফ্র্যাক্টাল) নির্ধারণ করে।
উপরের শ্রেণীবিভাগের বিচার যুক্তিটি হলঃ বর্তমান K লাইনের সর্বোচ্চ মানটি পূর্ববর্তী n মূল K লাইনের সর্বোচ্চ মানের চেয়ে বেশি ((n হল পরিবর্তনযোগ্য প্যারামিটার), এইভাবে একটি বিরতিযুক্ত উপরের শ্রেণীবিভাগ গঠন করা হয়।
নিম্ন শ্রেণীবিভাগের বিচার লজিক হলঃ বর্তমান K লাইনের সর্বনিম্ন মূল্য পূর্ববর্তী n-মূল K লাইনের সর্বনিম্ন মূল্যের চেয়ে কম, এইভাবে একটি বিচ্ছিন্ন নীচের শ্রেণীবিভাগ গঠন করা হয়।
উপরের এবং নীচের শ্রেণিবদ্ধকরণের পরে, বিচার করুন যে তারা পরিবর্তিত হয়েছে কিনা, অর্থাত্ কিছুই থেকে নেই বা কিছু থেকে নেই। এই সময় শ্রেণিবদ্ধকরণটি সবেমাত্র গঠিত হয়েছে, যার অর্থ বিপরীত হওয়ার সম্ভাবনা বেশি।
এরপরে, K-লাইন সত্তার দিকনির্দেশের সাথে মিলিত হয়ে নির্দিষ্ট লেনদেনের সংকেত নির্ধারণ করা হয়। যখন উপরের শ্রেণিবদ্ধকরণটি তৈরি হয়, যখন বন্ধটি ওপেনের চেয়ে বেশি হয়, তখন বেশি করুন; যখন বর্তমান শ্রেণিবদ্ধকরণটি তৈরি হয়, যখন বন্ধটি ওপেনের চেয়ে কম হয়, তখন খালি করুন।
উইলিয়ামস ইনডেক্স ব্যবহার করে বিপরীত সময় নির্ধারণের জন্য বিভাজন পয়েন্ট, একটি প্রচলিত এবং নির্ভরযোগ্য প্রযুক্তিগত সূচক
ট্রেডিং সিগন্যাল নিশ্চিত করার জন্য K-লাইন সত্তার দিকনির্দেশের সাথে একত্রিত করুন এবং প্রবণতা-বিহীন অঞ্চলে অশান্তিযুক্ত চপস এড়ান
প্যারামিটার কম, শুধুমাত্র n টাইপিং চক্রের প্রয়োজন, সহজেই পরীক্ষা এবং অপ্টিমাইজ করা যায়
পজিশন খোলার নিয়ম যেমন পজিশনের আকার, পজিশনের শর্ত ইত্যাদি নমনীয়ভাবে সেট করা যায়, যা রিয়েল-টাইমে প্রয়োগ করা সহজ
বিভাজনের পরে, পরিস্থিতি পুরোপুরি বিপরীত হতে পারে না, প্রবণতা বিচার করা প্রয়োজন
স্ট্যাম্পিং পজিশন সেটিং সতর্কতা প্রয়োজন, যাতে শব্দ দ্বারা ক্ষতিগ্রস্ত না হয়
প্যারামিটার n বিভিন্ন জাতের জন্য সামঞ্জস্য করা প্রয়োজন, যদি চক্রটি খুব বড় বা খুব ছোট হয় তবে প্রভাব ফেলবে
সমাধানঃ
চলমান গড়ের মতো সূচকগুলি ব্যবহার করে বড় ট্রেন্ডগুলি নির্ণয় করা যায় এবং বিপরীতমুখী অবস্থানগুলি এড়ানো যায়
ডায়নামিক ট্র্যাকিং স্টপ লস বা যুক্তিসঙ্গত প্রত্যাহারের সীমাবদ্ধতা সেট করুন
ওয়াক ফরওয়ার্ড অ্যানালিসিস পদ্ধতি ব্যবহার করে প্যারামিটার অপ্টিমাইজ করুন এবং সর্বোত্তম প্যারামিটার খুঁজুন
বিভিন্ন ধরণের বিপরীতমুখী কৌশলগুলির উপর ভিত্তি করে এমন পরিস্থিতি তৈরি করা সহজ যেখানে একাধিক লাভের পরে আবারও বিপরীতমুখী হওয়ার ফলে ক্ষতি হয়। ট্রেন্ড ফিল্টার যুক্ত করার বিষয়টি বিবেচনা করা যেতে পারে, ট্রেডিংয়ের পরিধি আরও সীমাবদ্ধ করতে এবং অপ্রয়োজনীয় বিপরীতমুখী ট্রেডিং হ্রাস করতে পারে।
বর্তমানে, স্টপ-অফ পদ্ধতিগুলি সহজ এবং কার্যকরভাবে ট্র্যাক করা যায় না। আপনি স্টপ-অফ পদ্ধতিগুলি যেমন মোশন স্টপ, টাইম স্টপ, ডায়নামিক স্টপ ইত্যাদি যুক্ত করার চেষ্টা করতে পারেন।
বর্তমানে, কেবলমাত্র K-লাইনটির প্রকৃত দিকনির্দেশনা নির্ধারণ করা যায়। আরও K-লাইন তথ্য যেমন ছায়া রেখা, বন্ধের অবস্থান ইত্যাদি বিবেচনা করে, আরও সুনির্দিষ্ট লেনদেনের সংকেত ডিজাইন করা যেতে পারে।
এই কৌশলটি একটি প্রযুক্তিগত সূচক ভিত্তিক বিপরীতমুখী কৌশল। এটি উইলিয়ামস সূচককে ব্যবহার করে একটি সূচকের শেয়ারের পরিবর্তনের প্রবণতাকে মূল মুহুর্তে ক্যাপচার করতে, এবং K-লাইন সত্তাগুলির সাথে মিলিত হয়ে একটি ট্রেডিং সংকেত তৈরি করে যাতে অতিরিক্ত লাভের আশা করা যায়।
অন্যান্য বিপরীতমুখী কৌশলগুলির তুলনায়, এই কৌশলটি প্যারামিটারাইজড ডিজাইনের মাধ্যমে, লজিক পরিষ্কার, সহজেই বোঝা যায়, প্যারামিটারগুলি সামঞ্জস্য করা সহজ, সহজেই পরীক্ষা করা যায় এবং সরাসরি রিয়েল-স্টোরে পরিচালনা করা যায়। পরবর্তী ধাপে প্রবণতা বিচার, স্টপ লস পদ্ধতি ইত্যাদির মাধ্যমে আরও অপ্টিমাইজ করা হয়, আশা করা যায় যে কৌশলটির আরও ভাল প্রভাব পাওয়া যাবে।
/*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 )