ডাবল টেক লাভ মুভিং গড় ক্রসওভার পরিমাণগত কৌশল

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

img

সারসংক্ষেপ

এই কৌশলটি ঝুঁকি নিয়ন্ত্রণ এবং লাভজনকতা বৃদ্ধি করার জন্য সহজ চলমান গড় ক্রসওভার এবং দ্বৈত লাভ গ্রহণের কৌশল ব্যবহার করে। এটি মাঝারি মেয়াদী ট্রেডিং এবং ট্রেন্ড পরিবর্তনের সময় সুযোগগুলি ক্যাপচার করার জন্য উপযুক্ত।

কৌশলগত যুক্তি

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

এন্ট্রি করার সময়, দুটি লাভের স্তর সেট করা হয়। প্রথম লাভটি প্রবেশের মূল্যে + 20 পিপসে স্থির করা হয় এবং দ্বিতীয় লাভটি প্রবেশের মূল্যে + 40 পিপসে স্থির করা হয়। এদিকে, একটি স্টপ লস প্রবেশের মূল্যে স্থাপন করা হয় - 20 পিপস।

যখন দাম প্রথম লাভের দিকে যায়, তখন এটি অর্ধেক অবস্থান বন্ধ করে দেয়। অবশিষ্ট অবস্থানটি দ্বিতীয় লাভের দিকে বা বন্ধ না হওয়া পর্যন্ত চলতে থাকবে।

প্রতিটি ব্যবসায়ের জন্য তিনটি সম্ভাব্য ফলাফল রয়েছেঃ

  1. দাম স্টপ লসকে আঘাত করে, সরাসরি ২% হ্রাস পায়।

  2. প্রথমে দাম হিট, প্রথমে মুনাফা, অর্ধেক পজিশন বন্ধ করে ১% মুনাফা, তারপর থামানো পর্যন্ত চলতে থাকে, ব্রেক ইভেন দিয়ে শেষ হয়।

  3. প্রথম ট্যাক লাভের পর, দাম চলতে থাকে এবং দ্বিতীয় ট্যাক লাভের হিট করে, 1% + 2% = 3% মোট লাভের সাথে শেষ হয়।

সুবিধা বিশ্লেষণ

এই দ্বৈত লাভের কৌশলটির সবচেয়ে বড় সুবিধা হ'ল এটি ঝুঁকি নিয়ন্ত্রণ করে এবং বিশাল একক ক্ষতি এড়ায়। যখন বাজার বিপরীতমুখী হয় তখন স্টপ লস সর্বাধিক ক্ষতি 2% এর মধ্যে সীমাবদ্ধ করে। যখন প্রবণতা প্রত্যাশিত হিসাবে চলে তখন দুটি লাভের লাভ আরও বেশি লাভের অনুমতি দেয়।

সিঙ্গল টেক লাভ / স্টপ লস এর তুলনায়, এই কৌশলটির তিনটি ফলাফল রয়েছে - ক্ষতি, জয় বা ব্রেক ইভেন, স্টপ লসের সম্ভাবনা হ্রাস করে। এমনকি যদি বন্ধ হয়ে যায় তবে সর্বাধিক ক্ষতি 2% এর মধ্যে সীমাবদ্ধ থাকে। traditionalতিহ্যবাহী কৌশলগুলির তুলনায়, দ্বৈত লাভের প্রক্রিয়াটি ডিডি উল্লেখযোগ্যভাবে হ্রাস করে এবং জয়ের হার উন্নত করে।

EMA এবং WMA সুপরিচিত সূচক যা সহজেই বোঝা যায়। লাভ / স্টপ লস লজিকটি নিরীক্ষণ করা সহজ। এগুলি কৌশলটি নতুনদের দ্বারা গ্রহণ করা সহজ করে তোলে।

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

এই কৌশলটির সুবিধার সত্ত্বেও, এর ঝুঁকিও রয়েছে।

প্রথমত, চলমান গড়ের সূচক হিসাবে, EMA এবং WMA এর ব্যাপ্তি বাজারের সনাক্তকরণে তুলনামূলকভাবে দুর্বল ক্ষমতা রয়েছে। প্রবণতা অস্পষ্ট হলে খুব বেশি মিথ্যা সংকেত দেখা দিতে পারে, যা অত্যধিক ট্রেডিংয়ের দিকে পরিচালিত করে।

দ্বিতীয়ত, স্থির লাভ গ্রহণ/হ্রাস বন্ধের মাত্রা বাজারের অস্থিরতার সাথে মানিয়ে নিতে পারে না। উচ্চ অস্থিরতার সময় এগুলি সহজেই অনুপ্রবেশ করতে পারে, যা এগুলিকে অকার্যকর করে তোলে।

অবশেষে, কৌশলটি অপ্রত্যাশিত ঘটনাগুলির প্রতিক্রিয়া জানাতে পারে না, ফাঁদে পড়ার ঝুঁকি নিয়ে। বড় সংবাদ ঘটনাগুলি বিশাল মূল্য ফাঁক তৈরি করতে পারে যা সরাসরি লাভ / ক্ষতির মাত্রা লঙ্ঘন করে, বিশাল ক্ষতির কারণ হয়।

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

কৌশলটি আরও উন্নত করার জন্য বেশ কয়েকটি দিক রয়েছেঃ

  1. এন্ট্রি সংকেত উন্নত করুন। উচ্চ মানের সংকেত তৈরি করতে EMA এবং WMA এর চেয়ে ভাল চলমান গড় বা প্রবণতা সূচক পরীক্ষা করুন।

  2. গতিশীলভাবে লাভ / স্টপ লস সামঞ্জস্য করুন। লাভ / ক্ষতির মাত্রা বাজারের সাথে খাপ খাইয়ে নেওয়ার জন্য এটিআর, ট্রেলিং স্টপ লস ইত্যাদির মতো পদ্ধতি ব্যবহার করুন।

  3. ফিল্টার যোগ করুন। ক্রসওভারের আগে ভলিউম বা সেকেন্ডারি সূচক নিশ্চিতকরণ প্রয়োজন যাতে ফাঁদ এড়ানো যায়। এছাড়াও বড় ইভেন্টগুলির চারপাশে বাণিজ্য করা যায় কিনা তা বিবেচনা করুন।

  4. মূলধন পরিচালনার নিয়ম অনুযায়ী পজিশনের আকারকে সূক্ষ্মভাবে সামঞ্জস্য করুন।

সিদ্ধান্ত

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


/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("FS ATR & PS (MA)", overlay=true)

// Strategy
Buy  = input(true)
Sell = input(true)

// Time Period
start_year   = input(title='Start year'   ,defval=2019)
start_month  = input(title='Start month'  ,defval=1)
start_day    = input(title='Start day'    ,defval=1)
start_hour   = input(title='Start hour '  ,defval=0)
start_minute = input(title='Start minute' ,defval=0)
end_time     = input(title='set end time?',defval=false)
end_year     = input(title='end year'     ,defval=2019)
end_month    = input(title='end month'    ,defval=12)
end_day      = input(title='end day'      ,defval=31)
end_hour     = input(title='end hour'     ,defval=23)
end_minute   = input(title='end minute'   ,defval=59)

// MA
ema_period   = input(title='EMA period',defval=10)
wma_period   = input(title='WMA period',defval=20)
ema = ema(close,ema_period)
wma = wma(close,wma_period)

// Entry Condition
longCondition  = 
 crossover(ema,wma) and Buy and
 nz(strategy.position_size) == 0 and
 time > timestamp(start_year, start_month, start_day, start_hour, start_minute) and
 (end_time?(time < timestamp(end_year, end_month, end_day, end_hour, end_minute)):true)
 
shortCondition = 
 crossunder(ema,wma) and Sell and
 nz(strategy.position_size) == 0 and
 time > timestamp(start_year, start_month, start_day, start_hour, start_minute) and
 (end_time?(time < timestamp(end_year, end_month, end_day, end_hour, end_minute)):true)

// Exit Condition
a = input(20)*10
b = input(40)*10
c = a*syminfo.mintick
d = b*syminfo.mintick

long_stop_level     = float(na)
long_profit_level1  = float(na)
long_profit_level2  = float(na)
long_even_level     = float(na)

short_stop_level    = float(na)
short_profit_level1 = float(na)
short_profit_level2 = float(na)
short_even_level    = float(na)

long_stop_level     := longCondition  ? close - c : long_stop_level     [1]
long_profit_level1  := longCondition  ? close + c : long_profit_level1  [1]
long_profit_level2  := longCondition  ? close + d : long_profit_level2  [1]
long_even_level     := longCondition  ? close + 0 : long_even_level     [1]

short_stop_level    := shortCondition ? close + c : short_stop_level    [1]
short_profit_level1 := shortCondition ? close - c : short_profit_level1 [1]
short_profit_level2 := shortCondition ? close - d : short_profit_level2 [1]
short_even_level    := shortCondition ? close + 0 : short_even_level    [1] 

// Position Sizing
Risk = input(defval=10, title="Risk per trade%", step=1, minval=0, maxval=100)/100
size  = 1

// Strategy
if longCondition
    strategy.entry("Buy"  , strategy.long, qty=size)
    strategy.exit ("Exit1", stop=long_stop_level, limit=long_profit_level1, qty=size/2)
    strategy.exit ("Exit2", stop=long_stop_level, limit=long_profit_level2)
    
if shortCondition
    strategy.entry("Sell" , strategy.short, qty=size)
    strategy.exit ("Exit3", stop=short_stop_level, limit=short_profit_level1, qty=size/2)
    strategy.exit ("Exit4", stop=short_stop_level, limit=short_profit_level2)
    
// Plot
plot(strategy.position_size <= 0 ? na : long_stop_level    , color=#dc143c, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size <= 0 ? na : long_profit_level1 , color=#00ced1, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size <= 0 ? na : long_profit_level2 , color=#00ced1, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size <= 0 ? na : long_even_level    , color=#ffffff, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size >= 0 ? na : short_stop_level   , color=#dc143c, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size >= 0 ? na : short_profit_level1, color=#00ced1, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size >= 0 ? na : short_profit_level2, color=#00ced1, style=plot.style_linebr, linewidth=1)
plot(strategy.position_size >= 0 ? na : short_even_level   , color=#ffffff, style=plot.style_linebr, linewidth=1)
plot(ema,color=#00ced1)
plot(wma,color=#dc143c)






আরো