মাল্টি-মুভিং এভারেজ লিমিট ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2023-09-22 14:16:20 অবশেষে সংশোধন করুন: 2023-09-22 14:16:20
অনুলিপি: 0 ক্লিকের সংখ্যা: 641
1
ফোকাস
1617
অনুসারী

ওভারভিউ

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

কৌশল নীতি

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

এইভাবে, দামের প্রবণতা যত শক্তিশালী হয়, তত বেশি সমান্তরাল সীমাবদ্ধতার আদেশ সেট করা হয়; যখন দামের বিপরীত সংকেত আসে, তখন বিপরীত পজিশন খোলার কাজ করা হয়। মধ্যম অক্ষের সমান্তরাল লাইনটি পজিশনের ব্রেকথ্রু বিচার করতে ব্যবহৃত হয় এবং পজিশন সিগন্যাল প্রেরণ করে।

পুরো কৌশলটি একটি পিরামিডের মতো খোলার পজিশন এবং একটি বিরতিযুক্ত পজিশনের সাথে একত্রিত ট্রেডিং পদ্ধতি গঠন করে। এটি একাধিক গড় মূল্যের পজিশন খোলার জন্য, ব্যয় হ্রাস করার লক্ষ্যে; মধ্যম অক্ষের গড় লাইন ক্ষতি বন্ধ, ঝুঁকি নিয়ন্ত্রণ।

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

এই কৌশলটির সুবিধাগুলো হলঃ

  1. গড় পরিমাপ প্রবণতা ব্যবহার করে, অপারেশন সহজ এবং স্বজ্ঞাত।

  2. ট্রেন্ডের শুরুতে পিরামিড পজিশনের মাধ্যমে ভালো দাম পাওয়া যায়।

  3. মাঝারি অক্ষের সমান্তরাল ক্ষতি, সময়মতো ক্ষতি বন্ধ করতে পারে, ঝুঁকি নিয়ন্ত্রণ করতে পারে।

  4. “আমি মনে করি, এটা একটা বড় ভুল হয়েছে।

  5. বিভিন্ন জাতের জন্য কাস্টমাইজযোগ্য প্যারামিটার

  6. এটি পরিষ্কার, সহজে বোঝা এবং সম্প্রসারণযোগ্য।

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

এই কৌশলটি নিম্নলিখিত ঝুঁকিগুলিও বহন করেঃ

  1. গড়রেখার সূচকটি পিছিয়ে রয়েছে, যা ভুল সিদ্ধান্তে পরিণত হতে পারে।

  2. ক্রেডিট কার্ডের ব্যর্থতার ফলে প্রবেশের সুযোগ মিস হতে পারে।

  3. মিড-অ্যাক্সেল সমান্তরাল স্টপডাউনটি খুব বেশি খোলামেলা হতে পারে, এটি বিপর্যয় ঘটায় না বিচার করুন।

  4. ভুল প্যারামিটার সেট করা হলে, পিরামিডের অবস্থান বড় হয়ে যেতে পারে।

  5. অপর্যাপ্ত সময়সীমার প্রতিক্রিয়া কার্ভের ওভারফিট হতে পারে।

  6. কোন ফি নেই।

ঝুঁকি মোকাবেলার উপায়গুলো হলঃ

  1. অন্যান্য সূচকগুলির সাথে মিলিতভাবে নিশ্চিতকরণ এবং অপ্টিমাইজেশান প্যারামিটারগুলি।

  2. “আপনি যদি আপনার মূল্য নির্ধারণ করতে চান, তাহলে আপনার মূল্য নির্ধারণ করতে হবে।

  3. মাঝারি অক্ষের সমান্তরাল স্থানে স্টপ সেট করুন, বা ব্রেকথ্রু বিচার লজিক যুক্ত করুন।

  4. অনুকূলিতকরণ প্যারামিটার, লাভ-ক্ষতি অনুপাতের মূল্যায়ন

  5. রিভিউয়ের সময়সীমা বাড়ানো, মাল্টি মার্কেট রিভিউ।

  6. যোগ করুন ফি এবং স্লাইড পয়েন্ট লজিক।

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

এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যায়ঃ

  1. মেশিন লার্নিং পদ্ধতি ব্যবহার করা যেতে পারে।

  2. অন্যান্য সূচক ফিল্টার নিশ্চিতকরণ যোগ করুন। যেমন MACD, KDJ ইত্যাদি।

  3. মধ্যম অক্ষের সমান্তরে স্টপস্টপ লজিক যোগ করা হয়েছে।

  4. পজিশন খোলার অনুপাত এবং স্টপ পজিশনের গতিশীল সমন্বয়।

  5. মূল্য নির্ধারণের জন্য সর্বোত্তম মূল্য নির্ধারণ করুন, যেমন দাম নির্ধারণের জন্য মূল্য নির্ধারণ করুন

  6. ব্যয় ব্যবস্থাপনা বাড়ানো এবং অপ্রয়োজনীয় জরিমানা এড়ানো।

  7. বিভিন্ন জাতের প্যারামিটারগুলির প্রভাব পরীক্ষা করে প্যারামিটার পুল তৈরি করুন।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2022-09-15 00:00:00
end: 2023-09-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Robot WhiteBox MultiMA", shorttitle = "Robot WhiteBox MultiMA", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Length")
s = input(defval = "7. OHLC4", options = ["1. Open", "2. High", "3. Low", "4. Close", "5. HL2", "6. HLC3", "7. OHLC4", "8. OC2", "9. PCMA"], title = "Data")
short3 = input(true, title = "short 3")
short2 = input(true, title = "short 2")
short1 = input(true, title = "short 1")
long1 = input(true, title = "long 1")
long2 = input(true, title = "long 2")
long3 = input(true, title = "long 3")
shortlevel3 = input(15.0, title = "Short line 3")
shortlevel2 = input(10.0, title = "Short line 2")
shortlevel1 = input(5.0, title = "Short line 1")
longlevel1 = input(-5.0, title = "Long line 1")
longlevel2 = input(-10.0, title = "Long line 2")
longlevel3 = input(-15.0, title = "Long line 3")
needoffset = input(true, title = "Offset")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick
needtime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)

//MA
oc2 = (open + close) / 2
pcma = (highest(high, len) + lowest(low, len)) / 2
src = s == "1. Open" ? open : s == "2. High" ? high : s == "3. Low" ? low : s == "4. Close" ? close : s == "5. HL2" ? hl2 : s == "6. HLC3" ? hlc3 : s == "7. OHLC4" ? ohlc4 : s == "8. OC2" ? oc2: close
sma = sma(src, len)
ma = s == "9. PCMA" ? round(pcma * mult) / mult : round(sma * mult) / mult

//Levels
longline1 = long1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close
longline2 = long2 ? round(ma * ((100 + longlevel2) / 100) * mult) / mult : close
longline3 = long3 ? round(ma * ((100 + longlevel3) / 100) * mult) / mult : close
shortline1 = short1 ? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close
shortline2 = short2 ? round(ma * ((100 + shortlevel2) / 100) * mult) / mult : close
shortline3 = short3 ? round(ma * ((100 + shortlevel3) / 100) * mult) / mult : close

//Lines
colorlong1 = long1 ? color.lime : na
colorlong2 = long2 ? color.lime : na
colorlong3 = long3 ? color.lime : na
colorshort1 = short1 ? color.red : na
colorshort2 = short2 ? color.red : na
colorshort3 = short3 ? color.red : na
offset = needoffset ? 1 : 0
plot(shortline3, offset = offset, color = colorshort3, title = "Short line 3")
plot(shortline2, offset = offset, color = colorshort2, title = "Short line 2")
plot(shortline1, offset = offset, color = colorshort1, title = "Short line 1")
plot(ma, offset = offset, color = color.blue, title = "MA line")
plot(longline1, offset = offset, color = colorlong1, title = "Long line 1")
plot(longline2, offset = offset, color = colorlong2, title = "Long line 2")
plot(longline3, offset = offset, color = colorlong3, title = "Long line 3")

//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
lots = 0.0
if ma > 0
    lots := round(size / lot)
    strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0 and long1 and needtime))
    lots := round(size / lot)
    strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1 and long2 and needtime))
    lots := round(size / lot)
    strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2 and long3 and needtime))
    lots := round(size / lot)
    strategy.entry("S1", strategy.short, lot, limit = shortline1, when = (lots == 0 and short1 and needtime))
    lots := round(size / lot)
    strategy.entry("S2", strategy.short, lot, limit = shortline2, when = (lots >= -1 and short2 and needtime))
    lots := round(size / lot)
    strategy.entry("S3", strategy.short, lot, limit = shortline3, when = (lots >= -2 and short3 and needtime))
if size > 0
    strategy.entry("TPL", strategy.short, 0, limit = ma)
if size < 0
    strategy.entry("TPS", strategy.long, 0, limit = ma)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()