ব্যক্তিগতকৃত মোমেন্টাম ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2023-11-23 15:18:27 অবশেষে সংশোধন করুন: 2023-11-23 15:18:27
অনুলিপি: 0 ক্লিকের সংখ্যা: 611
1
ফোকাস
1617
অনুসারী

ব্যক্তিগতকৃত মোমেন্টাম ট্রেডিং কৌশল

ওভারভিউ

এটি একটি ব্যক্তিগতকৃত ট্রেডিং কৌশল যা গতিশীল সূচক এবং কে-লাইন সত্তা ফিল্টারিংয়ের সমন্বয় করে। এটি র্যান্ডম গতিশীল সূচক, দ্রুত আরএসআই এবং কে-লাইন সত্তা ফিল্টারিংয়ের তিনটি প্রযুক্তিগত সূচককে একত্রিত করে, একটি গতিশীল ব্রেক-ওভার অর্জন করে এবং ওভার-বিক্রয় ওভার-বিক্রয় কৌশল বিবেচনা করে।

কৌশল নীতি

এই কৌশলটি নিম্নলিখিত তিনটি সূচক ব্যবহার করে ট্রেডিং সিগন্যালের বিচার করেঃ

  1. এলোমেলো গতিশীলতা সূচক ((এসএমআই): এটি কে লাইনের সত্তা ব্যবধান এবং বন্ধের দামের আপেক্ষিক অবস্থানকে সংযুক্ত করে, দামের গতিশীলতা শক্তিশালী কিনা তা নির্ধারণ করে। এসএমআইয়ের উপরে সীমানাটি অতিক্রম করার সময় একটি ক্রয় সংকেত উত্পন্ন হয় এবং নীচের সীমানাটি অতিক্রম করার সময় একটি বিক্রয় সংকেত উত্পন্ন হয়।

  2. দ্রুত আরএসআই (৭ তারিখের লাইন): এটি মূল্যের ওভারবয় ওভারসোলের অবস্থা নির্ধারণ করে। আরএসআই ২০ এর নীচে ওভারবয়ের জন্য একটি কেনার সংকেত দেয় এবং ৮০ এর উপরে ওভারবয়ের জন্য একটি বিক্রয় সংকেত দেয়।

  3. K-লাইন এন্ট্রি ফিল্টারঃ 10 দিনের মধ্যে K-লাইন এন্ট্রিগুলির গড় আকার গণনা করা হয়, যখন আজকের K-লাইন এন্ট্রিগুলি এই গড়ের এক-তৃতীয়াংশের বেশি হয় তখন এটি কার্যকর হয়, একটি অকার্যকর সংকেত এড়ানো যায়।

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

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

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

  1. তিনি আরও বলেন, “এটা আমাদের জন্য খুবই কঠিন ছিল।

  2. K-লাইন এন্ট্রি ফিল্টার যুক্ত করুন, যাতে অকার্যকর সংকেত এড়ানো যায়।

  3. ট্রেন্ডের বিপরীত দিকের সংকেত ধরা সহজতর করার জন্য ওভার-বই ওভার-সেলের সিদ্ধান্তের সাথে যুক্ত করুন।

  4. “এটা আমাদের জন্য অনেক বড় একটা অর্জন।

  5. একক লেনদেনের অতিরিক্ত ক্ষতি এড়াতে কিছু লেনদেনের অবস্থান গ্রহণ করা।

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

এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ

  1. সূচক কার্যক্রমে, ভুল সংকেত তৈরি করা সহজ, যার ফলে ক্ষতি হয়। প্যারামিটার অপ্টিমাইজেশনের মাধ্যমে ভুল সংকেত হ্রাস করা যেতে পারে।

  2. কিছু পজিশন ট্রেডিং প্রতিটি দিকের প্রবণতা সুযোগের পূর্ণ ব্যবহার করতে পারে না। ট্রেডিং পজিশন বাড়িয়ে উচ্চতর আয় করা যেতে পারে।

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

  4. মাল্টিপ্লেক্স ডাবল-ডাইরেকশন ট্রেডিং, ঘন ঘন অপারেশন, ট্রেডিং খরচ বৃদ্ধি।

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

এই কৌশলটি আরও উন্নত করা যেতে পারে নিম্নলিখিত দিকগুলি থেকেঃ

  1. এসএমআই এবং আরএসআই এর পরামিতি অপ্টিমাইজ করুন এবং সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে বের করুন।

  2. ট্রেন্ডের মধ্যে উচ্চতর রিটার্নের জন্য পজিশনের প্রশস্তকরণ এবং পজিশন ম্যানেজমেন্ট ব্যবস্থা বৃদ্ধি করুন।

  3. একক ক্ষতির ঝুঁকি হ্রাস করার জন্য ক্ষতি বন্ধ করার কৌশল বাড়ানো।

  4. সিগন্যালের নির্ভরযোগ্যতা নির্ধারণের জন্য আরও সূচক যুক্ত করা হয়েছে, যা ভুল সংকেত হ্রাস করে।

  5. কার্যকর চুক্তির মাধ্যমে লেনদেনের খরচ কমানো।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Stochastic Strategy v1.2", shorttitle = "Stochastic str 1.2", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings 
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usemar = input(false, defval = false, title = "Use Martingale")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
usesmi = input(true, defval = true, title = "Use SMI Strategy")
usersi = input(true, defval = true, title = "Use RSI Strategy")
usebod = input(true, defval = true, title = "Use Body-Filter")
a = input(5, "SMI Percent K Length")
b = input(3, "SMI Percent D Length")
limit = input(50, defval = 50, minval = 1, maxval = 100, title = "SMI Limit")
fromyear = input(2017, defval = 2017, 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")

//Fast RSI
fastup = rma(max(change(close), 0), 7)
fastdown = rma(-min(change(close), 0), 7)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Stochastic Momentum Index
ll = lowest (low, a)
hh = highest (high, a)
diff = hh - ll
rdiff = close - (hh+ll)/2
avgrel = ema(ema(rdiff,b),b)
avgdiff = ema(ema(diff,b),b)
SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0
SMIsignal = ema(SMI,b)

//Lines
plot(SMI, color = blue, linewidth = 3, title = "Stochastic Momentum Index")
plot(SMIsignal, color = red, linewidth = 3, title = "SMI Signal Line")
plot(limit, color = black, title = "Over Bought")
plot(-1 * limit, color = black, title = "Over Sold")
plot(0, color = blue, title = "Zero Line")

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 3 or usebod == false

//Signals
up1 = SMI < -1 * limit and close < open and body and usesmi
dn1 = SMI > limit and close > open and body and usesmi
up2 = fastrsi < 20 and close < open and body and usersi
dn2 = fastrsi > 80 and close > open and body and usersi
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body

//Trading
profit = exit ? ((strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price)) ? 1 : -1 : profit[1]
mult = usemar ? exit ? profit == -1 ? mult[1] * 2 : 1 : mult[1] : 1
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 * mult : lot[1]

if up1 or up2
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()