
এই কৌশলটির নাম দেওয়া হয়েছে DEMA এবং EMA এর স্বল্পমেয়াদী ক্রস-সংযুক্ত ATR অস্থিরতার কৌশল। এই কৌশলটি DEMA এবং EMA এর ক্রস-সংকেত গণনা করে, ATR অস্থিরতার সূচকগুলির সাথে মিলিত করে, একটি কার্যকর সংক্ষিপ্ত লাইন ট্রেডিং কৌশল অর্জন করে। যখন DEMA EMA অতিক্রম করে এবং ATR অস্থিরতা বৃদ্ধি পায়, তখন খালি হয়ে যায়; যখন DEMA আবার EMA অতিক্রম করে।
DEMA সূচক গণনা করুন। DEMA হল দ্বিগুণ EMA এর চলমান গড়, একটি নির্দিষ্ট সময়ের মধ্যে দ্বিগুণ EMA গণনা করে, এটি কার্যকরভাবে সংক্ষিপ্ত বাজার শব্দকে ফিল্টার করতে পারে এবং সংকেতের নির্ভুলতা বাড়িয়ে তুলতে পারে।
EMA সূচক গণনা করুন। EMA একটি সূচকীয় চলমান গড়, যা দামের পরিবর্তনের জন্য আরও দ্রুত প্রতিক্রিয়া জানাতে পারে।
এটিআর হ’ল বাস্তব ওঠানামা পরিমাপের একটি সূচক যা বাজারের অস্থিরতা এবং ঝুঁকির স্তরকে প্রতিফলিত করে। এটিআর যখন বেড়ে যায়, তখন বাজারের ওঠানামা বৃদ্ধি পায়, যা সংক্ষিপ্ত লাইন সংশোধন করতে পারে।
যখন DEMA EMA অতিক্রম করে এবং ATR এর ওঠানামা সেট করা প্যারামিটারের চেয়ে বেশি হয়, তখন শেয়ারের দাম কমে যেতে শুরু করে এবং বাজারটি ঝুঁকিপূর্ণ হয়।
যখন DEMA আবার EMA পরা শুরু করে, এটি নির্দেশ করে যে দামগুলি সমর্থন তৈরি করে এবং উচ্চতর রিবাউন্ড শুরু করে, তখন এটি বন্ধ হয়ে যায়।
ডাবল ইএমএ ইএমএর সাথে সংযুক্ত, সিগন্যালের নির্ভুলতা কার্যকরভাবে উন্নত করতে পারে।
এটিআর ওভাররাইডিং হারের সূচকটি কম ঝুঁকিপূর্ণ whipsaw সংকেতগুলিকে বাদ দিতে পারে।
স্বল্পমেয়াদী অপারেশন, সংক্ষিপ্ত লাইন ট্র্যাকিংয়ের জন্য উপযুক্ত, দীর্ঘমেয়াদী হেজিং এড়াতে পারে।
ট্রেডিং লজিক সহজ, পরিষ্কার, সহজে বোঝা যায় এবং বাস্তবায়ন করা যায়।
এটিআর প্যারামিটার ভুলভাবে সেট করলে ট্রেডিংয়ের সুযোগ মিস হতে পারে।
একই সময়ে উভয় পক্ষের সিগন্যালের দিকে মনোযোগ দিতে হবে, অপারেশনটি কঠিন।
ffected by short-term market volatility.
সমাধানঃ পরামিতি অপ্টিমাইজেশান পরীক্ষা, পরামিতি সমন্বয়; ট্রেডিং লজিক সরলীকরণ, শুধুমাত্র একতরফা সংকেত ফোকাস; যথাযথভাবে স্টপ স্পেসিফিকেশন প্রশস্ত।
DEMA এবং EMA এর পরামিতিগুলিকে অপ্টিমাইজ করুন এবং সর্বোত্তম প্যারামিটার সমন্বয় খুঁজুন।
এটিআর এর চক্রীয় প্যারামিটারগুলিকে অপ্টিমাইজ করা এবং বাজারের অস্থিরতার সর্বোত্তম পরিমাপকারী নির্ধারণ করা।
অন্যান্য সহায়ক সূচক যেমন BOLL চ্যানেল যোগ করা, যা সংকেতের নির্ভুলতা বাড়ায়।
স্টপ লস এবং স্টপ-অফ নিয়মের সংযোজন, যা আরও স্থিতিশীল মুনাফা আনলক করতে পারে।
এই কৌশলটি DEMA, EMA ক্রস এবং ATR অস্থিরতার সূচকগুলি ব্যবহার করে একটি সহজ এবং কার্যকর স্বল্পমেয়াদী ট্রেডিং কৌশল তৈরি করে। কৌশলটি ট্রেডিং লজিক পরিষ্কার, সহজেই পরিচালনা করা যায় এবং উচ্চ-ফ্রিকোয়েন্সি শর্ট লাইন ট্রেডিংয়ের সাথে খাপ খাইয়ে নিতে পারে। পরবর্তী পদক্ষেপটি প্যারামিটার অপ্টিমাইজেশন এবং নিয়ম অপ্টিমাইজেশনের মাধ্যমে আরও স্থিতিশীল অতিরিক্ত আয় পাওয়ার আশা করা যায়।
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 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/
// © Qorbanjf
//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Qorbanjf
//@version=4
strategy("Qorban: DEMA/EMA & VOL Short ONLY", shorttitle="DEMA/EMA & VOL SHORT", overlay=true)
// DEMA
length = input(10, minval=1, title="DEMA LENGTH")
src = input(close, title="Source")
e1 = ema(src, length)
e2 = ema(e1, length)
dema1 = 2 * e1 - e2
plot(dema1, "DEMA", color=color.yellow)
//EMA
len = input(25, minval=1, title="EMA Length")
srb = input(close, title="Source")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
ema1 = ema(srb, len)
plot(ema1, title="EMA", color=color.blue, offset=offset)
// get ATR VALUE
atr = atr(14)
//ATRP (Average True Price in precentage)
// Inputs
atrTimeFrame = input("D", title="ATR Timeframe", type=input.resolution)
atrLookback = input(defval=14,title="ATR Lookback Period",type=input.integer)
useMA = input(title = "Show Moving Average?", type = input.bool, defval = true)
maType = input(defval="EMA", options=["EMA", "SMA"], title = "Moving Average Type")
maLength = input(defval = 20, title = "Moving Average Period", minval = 1)
slType = input(title="Stop Loss ATR / %", type=input.float, defval=5.0, step=0.1)
slMulti = input(title="SL Multiplier", type=input.float, defval=1.0, step=0.1)
minimumProfitPercent = input(title="Minimum profit %", type=input.float, defval=20.00)
// ATR Logic
// atrValue = atr(atrLookback)
// atrp = (atrValue/close)*100
// plot(atrp, color=color.white, linewidth=2, transp = 30)
atrValue = security(syminfo.tickerid, atrTimeFrame, atr(atrLookback))
atrp = (atrValue/close)*100
// Moving Average Logic
ma(maType, src, length) =>
maType == "EMA" ? ema(src, length) : sma(src, length) //Ternary Operator (if maType equals EMA, then do ema calc, else do sma calc)
maFilter = security(syminfo.tickerid, atrTimeFrame, ma(maType, atrp, maLength))
// Determine percentage of open profit
var entry = 0.0
distanceProfit = low - entry
distanceProfitPercent = distanceProfit / entry
//Determin if we have a long entry signal OR a sell position signal
profitSignal = minimumProfitPercent == 0.0 or distanceProfitPercent >= minimumProfitPercent
shortSignal = crossunder(dema1, ema1) and atrp > maFilter and strategy.position_size == 0 and not na(atr)
exitSignal = profitSignal and strategy.position_size !=0 and crossover(dema1, ema1)
// === INPUT BACKTEST RANGE ===
//FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
//FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
//FromYear = input(defval = 2017, title = "From Year", minval = 2000)
//ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
//ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
//ToYear = input(defval = 9999, title = "To Year", minval = 2017)
//Invert trade direction & flipping
//tradInvert = input(defval = false, title = "invert trade direction")
//MOM_MR = input(defval=1, title = "MOM = 1 / MR = -1", minval=-1, maxval=1)
//plots=input(false, title="Show plots?")
// Get stop loss (in pips AND percentage distance)
shortStop = highest(high, 4) - (atr * slMulti)
shortStopPercent = close - (close * slMulti)
// Save long stop & target prices (used for drawing data to the chart & deetermining profit)
var shortStopSaved = 0.0
var shortTargetSaved = 0.0
enterShort = false
if shortSignal
shortStopSaved := slType ? shortStop : shortStopPercent
enterShort:= true
entry := close
// long conditions
//enterLong = crossover(dema1, ema1) and atrp < maFilter
//exitSignal => crossunder(dema1, ema1)
//Enter trades when conditions are met
strategy.entry("short", strategy.short, when=enterShort, comment="SHORT")
//place exit orders (only executed after trades are active)
strategy.exit(id="Short exit",
from_entry="short",
limit=exitSignal ? close : na,
stop=shortStopSaved,
when=strategy.position_size > 0,
comment="end short")
//short strategy
//goShort() => crossunder(dema1, ema1) and atrp > maFilter
//KillShort() => crossover(dema1, ema1)
//strategy.entry("SHORT", strategy.short, when = goShort())
//strategy.close("COVER", when = KillShort())