চলমান গড় ক্রসওভারের উপর ভিত্তি করে কৌশল অনুসরণ করে প্রবণতা

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

img

সারসংক্ষেপ

এই কৌশলটি মূলত চলমান গড়ের সোনার ক্রস এবং মৃত ক্রস এবং চলমান গড়ের ক্যান্ডেলস্টিকের অগ্রগতি দীর্ঘ এবং সংক্ষিপ্ত সিদ্ধান্ত নিতে ব্যবহার করে। যখন স্বল্প সময়ের চলমান গড় দীর্ঘ সময়ের চলমান গড় অতিক্রম করে তখন এটি দীর্ঘ হয় এবং যখন সংক্ষিপ্ত সময়ের চলমান গড় দীর্ঘ সময়ের চলমান গড়ের নীচে অতিক্রম করে তখন এটি সংক্ষিপ্ত হয়। ক্যান্ডেলস্টিক বন্ধের দাম চলমান গড়ের মধ্য দিয়ে ভঙ্গ করা প্রবেশ সংকেত হিসাবেও ব্যবহৃত হয়।

নীতিমালা

  1. দুটি চলমান গড়, EMA1 এবং EMA2 বিভিন্ন সময়ের সাথে গণনা করুন। EMA1 এর একটি স্বল্প সময়কাল এবং EMA2 এর একটি দীর্ঘ সময়কাল রয়েছে।

  2. EMA1 EMA2 অতিক্রম করে কিনা তা নির্ধারণ করুন, যদি হ্যাঁ হয়, তাহলে লং করুন।

  3. EMA1 EMA2 এর নিচে ক্রস করে কিনা তা নির্ধারণ করুন, যদি হ্যাঁ হয় তবে শর্ট করুন।

  4. প্রবেশ সংকেত হিসাবে বন্ধের মূল্য EMA1 অতিক্রম করে কিনা তা নির্ধারণ করুন।

  5. প্রস্থান প্রক্রিয়াঃ স্টপ লস সেট করুন অথবা স্টপ লস সেট করতে ডনচিয়ান চ্যানেল ব্যবহার করুন।

ব্যবহৃত প্রধান ফাংশনঃ

  • ema ((): এক্সপোনেন্সিয়াল মুভিং মিডিয়ার গণনা করুন
  • ক্রসওভার ((): EMA1 EMA2 এর উপর ক্রস করে কিনা তা নির্ধারণ করুন
  • crossunder ((): EMA1 EMA2 এর নিচে অতিক্রম করে কিনা তা নির্ধারণ করুন
  • rising (() /falling ((): দাম বাড়ছে বা কমছে কিনা তা নির্ধারণ করুন
  • valuewhen(): শর্তের উপর ভিত্তি করে বিভিন্ন মান প্রদান করে

সুবিধা

  1. সহজ যুক্তি, সহজেই বোঝা যায় এবং বাস্তবায়ন করা যায়।

  2. প্রবণতা কার্যকরভাবে ট্র্যাক করার জন্য চলমান গড়ের প্রবণতা অনুসরণকারী বৈশিষ্ট্যটি ব্যবহার করুন।

  3. মোমবাতি বন্ধ মূল্যের অগ্রগতি একত্রিত করা মিথ্যা অগ্রগতি এড়াতে সাহায্য করে।

  4. বিভিন্ন মুভিং মিডিয়ার সংমিশ্রণের নমনীয় ব্যবহার যা বিভিন্ন সময়ের সাথে খাপ খাইয়ে নেওয়া যায়।

  5. স্টপ লস প্রক্রিয়া ঝুঁকি নিয়ন্ত্রণ করে।

ঝুঁকি

  1. বাজারের একত্রীকরণের সময় ঘন ঘন গোল্ডেন ক্রস এবং মৃত ক্রসগুলি হুইপসাউয়ের কারণ হয়।

  2. নির্দিষ্ট স্টপ লস পয়েন্টগুলি বাজারের পরিবর্তনের ভিত্তিতে সামঞ্জস্য করার জন্য খুব শক্ত হতে পারে।

  3. মুভিং মিডিয়ায় বিলম্ব হতে পারে এবং বিপরীতমুখী সময়ে বিপরীতমুখী সংকেতগুলি মিস করতে পারে।

  4. মিথ্যা অগ্রগতি ফিল্টার করার জন্য চলমান গড় ঢালের সঠিক বিচার প্রয়োজন।

  5. পরামিতি নির্বাচন সতর্কতার প্রয়োজন, অনুপযুক্ত ফ্রিকোয়েন্সি বা বিলম্ব কৌশল কর্মক্ষমতা প্রভাবিত করতে পারে।

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

  1. এমএসিডি শূন্য রেখা ক্রসওভার ট্রেন্ড নির্ধারণ এবং ফিল্টার একীকরণে সহায়তা করতে পারে।

  2. ফিক্সড স্টপ লস উন্নত করার জন্য ডাইনামিক স্টপ লস লাইনের জন্য ডোনচিয়ান চ্যানেল যুক্ত করুন।

  3. বাজারের একত্রীকরণের সময় অকার্যকর ট্রেডিং এড়াতে শক্তিশালী বা দুর্বল প্রবণতা বিচার করার জন্য বোলিংজার ব্যান্ড যুক্ত করুন।

  4. চলমান গড় প্যারামিটার সমন্বয় অপ্টিমাইজ করুন এবং বিভিন্ন সময়ের কৌশলগুলির প্রকৃত কর্মক্ষমতা পরীক্ষা করুন।

  5. বিলম্ব হ্রাস করার জন্য অ্যাঙ্কর মুভিং গড় যোগ করার কথা বিবেচনা করুন।

সিদ্ধান্ত

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


/*backtest
start: 2023-09-01 00:00:00
end: 2023-10-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title='Mega crypto bot strategy', shorttitle='megacryptobot_Strategy', overlay=true, pyramiding=0, initial_capital=10000, currency=currency.USD)

//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")

//-----------------Support and Resistance 
RST = input(title='Support / Resistance length:',  defval=10) 
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)

//--------------------Trend colour ema------------------------------------------------// 
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0  ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)

//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0  ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)

//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")

//============ signal Generator ==================================//
period = input('720')
ch1 = request.security(syminfo.tickerid, period, open)
ch2 = request.security(syminfo.tickerid, period, close)
longCondition = crossover(request.security(syminfo.tickerid, period, close),request.security(syminfo.tickerid, period, open))
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, period, close),request.security(syminfo.tickerid, period, open))
if (shortCondition)
    strategy.entry("SELL", strategy.short)

///////////////////////////////////////////////////////////////////////////////////////////

আরো