
এই কৌশলটি ডাবল ইকুয়েডর ক্রসিংয়ের নীতি ব্যবহার করে, এটিআর সূচকগুলির সাথে স্টপ লস স্টপ সেট করে, ট্রেডিংয়ের সময় নিয়ন্ত্রণের সাহায্যে, দিনের ব্যবসায়ের ফিউচার চুক্তির জন্য উপযুক্ত কৌশলগুলির একটি সেট ডিজাইন করে। কৌশলটি সহজ, সহজেই বোঝা যায় এবং এটি নতুনদের জন্য উপযুক্ত।
এই কৌশলটি 5 পিরিয়ড এবং 20 পিরিয়ডের ডাব্লুএমএ গড়ের ক্রসকে প্রবেশের সংকেত হিসাবে ব্যবহার করে। যখন 5 পিরিয়ড লাইনটি নীচের দিক থেকে 20 পিরিয়ড লাইনটি ভেঙে দেয়, তখন আরও বেশি করে; যখন 5 পিরিয়ড লাইনটি 20 পিরিয়ড লাইনটি নীচের দিক থেকে নেমে আসে, তখন শূন্য হয়ে যায়। একই সাথে, কৌশলটি 50 পিরিয়ডের ডাব্লুএমএ গড় ব্যবহার করে প্রবণতা দিকটি বিচার করে। দামের গড়ের লাইনটি ভেঙে যাওয়ার দিকটি বড় প্রবণতার দিকের সাথে সামঞ্জস্যপূর্ণ হলেই কেবলমাত্র একটি লেনদেনের সংকেত তৈরি হয়।
এছাড়াও, কৌশলটি এটিআর সূচকটি ব্যবহার করে স্টপ লস স্টপ অবস্থান সেট করে। এটিআর সূচকটি গতিশীলভাবে বাজারের ওঠানামার পরিমাণকে প্রতিফলিত করে। কৌশলটি এটিআর সূচকের মানকে একটি গুণিতক দ্বারা গুণ করে (যেমন 3 গুণ) স্টপ লস স্টপ অবস্থান নির্ধারণ করে, যার ফলে একক ক্ষতি নিয়ন্ত্রণ করা যায়।
অবশেষে, কৌশলটি কেবলমাত্র মার্কিন যুক্তরাষ্ট্রের ট্রেডিং সময়ের মধ্যে ট্রেডিং সিগন্যাল ট্রিগার করতে পারে (৯ঃ০০-১৪ঃ৩০ সিএসটি) । এটি খোলা এবং বন্ধের সময় ট্রেডিং এড়াতে পারে, কারণ এই দুটি সময় বড় অস্থিরতা এবং মিথ্যা সংকেত তৈরির পক্ষে সহজ।
এই কৌশলটির সুবিধাগুলো হলঃ
ডাবল ইক্যুয়ালাইন ক্রস ব্যবহার করে, আপনি কার্যকরভাবে প্রবণতা টার্নওভার পয়েন্ট ক্যাপচার করতে পারেন, সময়মতো প্রবেশ করতে পারেন।
ট্রেডিং সিগন্যালের আওয়াজ ফিল্টার করে বিপরীতমুখী অপারেশন এড়ানোর জন্য একটি বড় প্রবণতা নির্ণয় করুন।
এটিআর নির্দেশক প্রয়োগ করুন এবং স্টপ লস স্টপ অবস্থানকে গতিশীলভাবে সামঞ্জস্য করুন, একক ক্ষতির কার্যকর নিয়ন্ত্রণ করুন।
মার্কেট খোলা এবং বন্ধের সময় তীব্র ওঠানামা এড়াতে ট্রেডিংয়ের সময়সীমা নির্ধারণ করুন।
কৌশলগত নিয়মগুলি সহজ এবং স্পষ্ট, সহজেই বোঝা যায় এবং প্রয়োগ করা যায়, যা নতুনদের জন্য উপযুক্ত।
কাস্টমাইজড প্যারামিটার, যেমন গড় লাইন সময়কাল, ATR গুণক, ট্রেডিং সময়, ইত্যাদি, অপ্টিমাইজেশন কৌশল।
এই কৌশলটি নিম্নলিখিত ঝুঁকিগুলিও বহন করেঃ
ভূমিকম্পের সময়, ক্ষতির পরিমাণ বেশি হতে পারে।
দ্বি-সমান্তরাল ক্রসিংয়ের ক্ষেত্রে কিছুটা বিলম্ব দেখা যায়, এবং সংক্ষিপ্ত লাইনটি ভেঙে যেতে পারে।
এটিআর প্যারামিটারগুলি ভুলভাবে সেট করা হয়েছে যার ফলে স্টপ লস খুব বড় বা খুব ছোট হতে পারে।
প্রযুক্তিগত সূচকের উপর নির্ভর করে, মৌলিক তথ্য উপেক্ষা করা।
ট্রেডিংয়ের প্রকারভেদ এবং চক্রের অনুপযুক্ততা কৌশলটির কার্যকারিতা প্রভাবিত করে।
মেশিন ট্রেডিং সিস্টেমে লিজিংয়ের ঝুঁকি রয়েছে।
বিভিন্ন লেনদেনের সময় প্যারামিটারগুলিকে সামঞ্জস্য করতে হবে।
এটির জন্য প্যারামিটার অপ্টিমাইজেশান, মেট্রিক্স সমন্বয় এবং যথাযথ ম্যানুয়াল হস্তক্ষেপের মাধ্যমে উন্নতি করা প্রয়োজন।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যায়ঃ
EMA, DMA ইত্যাদির মত ভিন্ন সমরেখার সিস্টেম ব্যবহার করে দেখুন।
অন্যান্য প্রযুক্তিগত সূচক যেমন MACD, RSI ইত্যাদি ফিল্টার করুন।
এটিআর প্যারামিটারগুলিকে অপ্টিমাইজ করা হয়েছে যাতে স্টপ লস স্টপ আরও যুক্তিসঙ্গত হয়।
ট্রেডিং ভলিউম সূচকগুলির সাথে মিলিত হয়ে একটি কার্যকর এন্ট্রি পয়েন্ট খুঁজুন।
বিভিন্ন জাতের বৈশিষ্ট্য অনুসারে প্যারামিটারগুলি সামঞ্জস্য করুন
মূল বিষয়গুলোকে একত্রিত করে বাজার বিরোধী কার্যকলাপ এড়ানো।
মেশিন লার্নিং উপাদান যুক্ত করুন এবং নিউরাল নেটওয়ার্ক ব্যবহার করে ডেটা মডেলিং করুন।
এই ধরনের ব্যবসায়িক সুযোগের জন্য, একাধিক চক্রের সমন্বয় চেষ্টা করুন।
একটি কৌশলগত পোর্টফোলিও তৈরি করা এবং স্থিতিশীলতা বাড়ানো।
সামগ্রিকভাবে, এই কৌশলটি সহজ এবং সাধারণ, যা প্রাথমিকভাবে বাস্তব জীবনে অনুশীলন করার জন্য উপযুক্ত। একই সাথে, আরও প্রযুক্তিগত সূচক বা মেশিন লার্নিং পদ্ধতিগুলি উন্নত করার জন্য অপ্টিমাইজেশনের জন্য প্রচুর জায়গা রয়েছে। এছাড়াও, বিভিন্ন ট্রেডিং জাতের বৈশিষ্ট্য এবং বাজারের পরিবেশের সাথে সামঞ্জস্যপূর্ণ প্যারামিটারগুলিও গুরুত্বপূর্ণ। সংক্ষেপে, এই কৌশলটি পরিমাণগত ব্যবসায়ের প্রাথমিকদের জন্য একটি রেফারেন্স ফ্রেমওয়ার্ক সরবরাহ করে, তবে বাস্তব পরিস্থিতির উপর ভিত্তি করে ক্রমাগত পরীক্ষা এবং অপ্টিমাইজেশন প্রয়োজন, যাতে স্থিতিশীল আয় অর্জন করা যায়।
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-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/
// © james4392010
//@version=4
strategy(title="DayTradingFutures Cross-Strategy", overlay=true)
// === GENERAL INPUTS ===
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=true)
//highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
wmaFastSource = input(defval = close, title = "Fast WMA Source")
wmaFastLength = input(defval = 5, title = "Fast WMA Period")
wmaSlowSource = input(defval = close, title = "Slow WMA Source")
wmaSlowLength = input(defval = 20, title = "Slow WMA Period")
wmaDirectionSource = input(defval = close, title = "Trend 50 Period Source")
wmaDirectionLength = input(defval = 50, title = "Trend 50 Period")
timeinrange(res, sess) => time(res, sess) != 0
// === SERIES SETUP ===
/// a couple of ma's..
wmaFast = wma(close, 5)
wmaSlow = wma(close, 20)
wmaDirection = wma(close, 50)
// === PLOTTING ===
fast = plot(series=wmaFast, color=color.white, linewidth=2)
slow = plot(series=wmaSlow, color=color.yellow, linewidth=2)
direction = plot(series=wmaDirection, color=color.red, linewidth=2)
// === INPUT BACKTEST RANGE ===
//fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
//fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
//fromYear = input(defval = 2022, title = "From Year", minval = 2022)
// To Date Inputs
//toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
//toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
//toYear = input(defval = 2022, title = "To Year", minval = 2022)
//startDate = timestamp(fromYear, fromMonth, fromDay)
//finishDate = timestamp(toYear, toMonth, toDay)
//inDateRange= (time >= fromDay, fromMonth, fromYear and time <= toDay, toMonth, toYear)
// === FUNCTION EXAMPLE ===
//inDateRange = (time >= fromDay, fromMonth, fromYear) and (time <= toDay, toMonth, toYear)
// === LOGIC ===
enterLong = crossover(wmaFast, wmaSlow) and close > wmaDirection and timeinrange(timeframe.period, "0900-1430")
enterShort = crossunder(wmaFast, wmaSlow) and close < wmaDirection and timeinrange(timeframe.period, "0900-1430")
//trend := nz(trend[1], trend)
//trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
//upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = enterLong
//plotshape(enterLong ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green)
plotshape(enterLong and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white)
//dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = enterShort
//plotshape(enterShort ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red)
plotshape(enterShort and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white)
//mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
//longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
//shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
//fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
//fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
alertcondition(buySignal, title="Buy", message="Buy!")
alertcondition(sellSignal, title="Sell", message="Sell!")
//changeCond = trend != trend[1]
//alertcondition(changeCond, title="SuperTrend Direction Change", message="SuperTrend has changed direction!")
// Entry for strategy //
//tp=input(25,title="TakeProfit")
//sl=input(40,title="StopLoss")
strategy.entry("Long",1, when=buySignal)
//strategy.exit("Exit",profit=tp,loss=sl)
//strategy.exit("TakeProfit",profit=tp)
//strategy.exit("StopLoss",loss=sl)
strategy.entry("Short",1, when=sellSignal)
//strategy.exit("Exit",profit=tp,loss=sl)
//strategy.exit("TakeProfit",profit=tp)
//strategy.exit("StopLoss",loss=sl)
//strategy.exit("Exit", wmaFastwmaSlow)
//Buy and Sell Signals
//strategy.close_all(when =not timeinrange(timeframe.period, "1000-1430"))
// === FILL ====
fill (fast, slow, color = wmaSlow > wmaDirection ? color.green : color.red)
//fill(when=enterLong, tp, color = color.new(color.green, 90), title = "Profit area")
//fill(when=enterLong, sl, color = color.new(color.red, 90), title = "Loss area")
//fill(when=enterShort, tp, color = color.new(color.green, 90), title = "Profit area")
//fill(when=enterShort, sl, color = color.new(color.red, 90), title = "Loss area")