اشارے کا مجموعہ پیش رفت رجحان سے باخبر رہنے کی حکمت عملی


تخلیق کی تاریخ: 2024-02-20 11:38:22 آخر میں ترمیم کریں: 2024-02-20 11:38:22
کاپی: 2 کلکس کی تعداد: 591
1
پر توجہ دیں
1617
پیروکار

اشارے کا مجموعہ پیش رفت رجحان سے باخبر رہنے کی حکمت عملی

جائزہ

اس حکمت عملی کا نام پیلیٹ اشارے کا مجموعہ ہے۔ اس حکمت عملی میں متعدد اشارے استعمال کیے جاتے ہیں ، مارکیٹ کے رجحان کی سمت کی نشاندہی کرتے ہیں ، رجحان سے باخبر رہنے کی کارروائی کرتے ہیں۔ اس میں بنیادی طور پر درج ذیل حصے شامل ہیں:

  1. مارکیٹ کے اہم رجحانات کا اندازہ لگانے کے لئے لہر کے رجحان کا اشارے استعمال کریں
  2. RSI اور کیش فلو اشارے کے ساتھ مل کر کچھ جعلی سگنل کو فلٹر کریں
  3. ای ایم اے کے اشارے سے متعلق فیصلہ
  4. رجحانات کے ساتھ چلنے کے لئے داخلہ میں ایک جدید ٹریکنگ کا استعمال کیا گیا ہے

حکمت عملی کا اصول

یہ حکمت عملی بنیادی طور پر بڑے رجحانات کی سمت اور طاقت کا فیصلہ کرتی ہے ، اور کثیر فضائی دو طرفہ تجارت قائم کرتی ہے۔ اس کے عملی اصول درج ذیل ہیں:

ملٹی ہیڈ انٹری سگنل:

  1. قیمت 200 دن کے EMA سے زیادہ ہے ، جس سے یہ ظاہر ہوتا ہے کہ یہ ایک کثیر مارکیٹ میں ہے۔
  2. قیمتوں میں 50 دن کے EMA کے قریب معاونت کی واپسی
  3. لہراتی اشارے نے اوپر کی طرف مڑ کر خریدنے کا اشارہ دیا
  4. RSI اور MFI دونوں ہی زیادہ خرید رہے ہیں
  5. مسلسل 3 K لائنیں 50 دن کے EMA کو توڑتی ہیں ، جس سے یہ ظاہر ہوتا ہے کہ اس میں اضافہ ہوا ہے۔

خالی سر داخل ہونے کا اشارہ: کثیر رخا داخلہ سگنل کے برعکس

سٹاپ نقصان کا طریقہ: دو اختیارات پیش کیے جاتے ہیں: کم از کم قیمت / زیادہ سے زیادہ قیمت کا نقصان ، اے ٹی آر کا نقصان

حکمت عملی کا تجزیہ

یہ حکمت عملی مندرجہ ذیل فوائد رکھتی ہے:

  1. متعدد اشارے کے ساتھ بڑے رجحانات کا اندازہ لگانا اور جھوٹے اختراعات سے بچنا
  2. ای ایم اے کا استعمال کرتے ہوئے آپریشن کی سمت کا تعین کریں، رجحانات کو آسانی سے ٹریک کریں
  3. مسلسل منافع کے لئے سٹاپ نقصان کا سراغ لگانا
  4. ایک ہی وقت میں ایک سے زیادہ کرایہ پر لینا ، مارکیٹ کی کسی بھی سمت میں چلنا

حکمت عملی کے خطرے کا تجزیہ

اس حکمت عملی کے کچھ خطرات بھی ہیں:

  1. اشارے کے غلط سگنل کا امکان
  2. اسٹاپ نقصان کا خطرہ بڑھنے کے لئے اسٹاپ نقصان کا نقطہ بہت چھوٹا ہے
  3. زیادہ ٹرانزیکشنز، ٹرانزیکشن فیس ایک خفیہ نقصان

مندرجہ بالا خطرات کو کم کرنے کے لئے، آپ کو مندرجہ ذیل پہلوؤں میں بہتر بنانے کی ضرورت ہے:

  1. انڈیکس پیرامیٹرز کو ایڈجسٹ کریں ، غلط سگنل کو فلٹر کریں
  2. مناسب طور پر روکنے کی حد میں نرمی
  3. اشارے کے پیرامیٹرز کو بہتر بنانا ، تجارت کو کم کرنا

حکمت عملی کی اصلاح کی سمت

کوڈ کی سطح پر، اس حکمت عملی میں بہتری کی اہم سمتوں میں شامل ہیں:

  1. بہترین پیرامیٹرز کا مجموعہ منتخب کرنے کے لئے لہراتی اشارے، RSI اور MFI کے پیرامیٹرز کو ایڈجسٹ کریں
  2. مختلف ای ایم اے سائیکل پیرامیٹرز کی کارکردگی کی جانچ
  3. سٹاپ نقصان کی آمدنی کے خطرے کے تناسب کو ایڈجسٹ کریں تاکہ آپ کو زیادہ سے زیادہ ترتیب دیا جاسکے

پیرامیٹرز کو ایڈجسٹ کرنے اور جانچنے سے حکمت عملی کو واپسی اور خطرے کو کم کرنے کے ساتھ ساتھ منافع کو زیادہ سے زیادہ کرنے کی اجازت ملتی ہے۔

خلاصہ کریں۔

اس حکمت عملی میں بڑے رجحانات کی سمت کا تعین کرنے کے لئے متعدد اشارے کا استعمال کیا گیا ہے ، ای ایم اے اشارے کو ایک مخصوص آپریشن سگنل کے طور پر استعمال کیا گیا ہے ، اور ٹریکنگ اسٹاپ نقصان کا طریقہ استعمال کرکے منافع کو مقفل کیا گیا ہے۔ پیرامیٹرز کی اصلاح کے ذریعہ ، بہتر مستحکم منافع حاصل کیا جاسکتا ہے۔ تاہم ، کچھ سسٹم رسک پر بھی توجہ دی جانی چاہئے ، اشارے کے اثر اور مارکیٹ کے ماحول میں تبدیلیوں پر مستقل توجہ دینے کی ضرورت ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Lowest Low/ Highest High & ATR Stop Loss/ Take Profit
//Optimized for the 30 minutes chart

strategy(title="TradePro's Trading Idea Cipher B+ Divergence EMA Pullback Strategy", shorttitle="WT MFI RSI EMA PB STRAT", overlay = true, pyramiding = 0, max_bars_back=5000, calc_on_order_fills = false, commission_type =  strategy.commission.percent, commission_value = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital=5000, currency=currency.USD)

// { Time Range
FromMonth=input(defval=1,title="FromMonth",minval=1,maxval=12)
FromDay=input(defval=1,title="FromDay",minval=1,maxval=31)
FromYear=input(defval=2020,title="FromYear",minval=2016)
ToMonth=input(defval=1,title="ToMonth",minval=1,maxval=12)
ToDay=input(defval=1,title="ToDay",minval=1,maxval=31)
ToYear=input(defval=9999,title="ToYear",minval=2017)
start=timestamp(FromYear,FromMonth,FromDay,00,00)
finish=timestamp(ToYear,ToMonth,ToDay,23,59)
window()=>true

// See if this bar's time happened on/after start date
afterStartDate = time >= start and time<=finish?true:false

zeroline = 0

// } Time Range

// { Wavetrend, RSI, MFI

// WaveTrend
cl = input(12, "Channel Length")
al = input(12, "Average Length")
overbought = input(53, title = 'WT Overbought Level 1', type = input.integer)
oversold = input(-53, title = 'WT Oversold Level 1', type = input.integer)
ap = hlc3 
esa = ema(ap, cl)
d = ema(abs(ap - esa), cl)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, al)
 
wt1 = tci
wt2 = sma(wt1,4)

wtOs = wt2 <= oversold
wtOb = wt2 >= overbought
wtX = cross(wt1, wt2)
wtUp = wt2 - wt1 <= 0
wtDown = wt2 - wt1 >= 0
buySignal = wtX and wtOs and wtUp
sellSignal = wtX and wtOb and wtDown

// RSI & MFI

rsiMFIPosY = input(2, title = 'MFI Area Y Pos', type = input.float)
rsiMFIperiod = input(80,title = 'MFI Period', type = input.integer)
rsiMFIMultiplier = input(200, title = 'MFI Area multiplier', type = input.float)
f_rsimfi(_period, _multiplier, _tf) => security(syminfo.tickerid, _tf, sma(((close - open) / (high - low)) * _multiplier, _period) - rsiMFIPosY)
rsiMFI = f_rsimfi(rsiMFIperiod, rsiMFIMultiplier, timeframe.period)

// } Wavetrend, RSI, MFI

// { EMA
emasrc = close
res = input(title="EMA Timeframe", type=input.resolution, defval="30")
len1 = input(title="EMA1 Length", type=input.integer, defval=200)
col1 = color.yellow

len2 = input(title="EMA2 Length", type=input.integer, defval=50)
col2 = color.blue

// Calculate EMA
ema1 = ema(emasrc, len1)
emaSmooth1 = security(syminfo.tickerid, res, ema1, barmerge.gaps_off, barmerge.lookahead_off)

ema2 = ema(emasrc, len2)
emaSmooth2 = security(syminfo.tickerid, res, ema2, barmerge.gaps_off, barmerge.lookahead_off)

// Draw EMA
plot(emaSmooth1, title="EMA1", linewidth=1, color=col1)
plot(emaSmooth2, title="EMA2", linewidth=1, color=col2)

// } EMA

// { Long Entry

enablelong = input(true, title="Enable long?")

//Long Signal
upcondition = close > emaSmooth1
wavetrendlong = wt1 and wt2 < zeroline
mfilong = rsiMFI > 0
emapblong1 = (close > emaSmooth2) and (close[1] < emaSmooth2[1])
emapblong2 = ((close[2] > emaSmooth2[2]) and (close[3] > emaSmooth2[3]) and (close[4] > emaSmooth2[4])) or ((close[5] > emaSmooth2[5]) and (close[6] > emaSmooth2[6]) and (close[7] > emaSmooth2[7])) or ((close[8] > emaSmooth2[8]) and (close[9] > emaSmooth2[9]) and (close[10] > emaSmooth2[10]))

longcondition = upcondition and wavetrendlong and buySignal and mfilong and emapblong1 and emapblong2

//strategy buy long
if (longcondition) and (afterStartDate) and strategy.opentrades < 1 and (enablelong == true)
    strategy.entry("long", strategy.long)

plotshape(longcondition, style=shape.arrowup,
                 location=location.abovebar, color=color.green)

// } Long Entry

// { Short Entry

enableshort = input(true, title="Enable short?")

//Short Signal
downcondition = close < emaSmooth1
wavetrendshort = wt1 and wt2 > zeroline
mfishort = rsiMFI < 0
emapbshort1 = (close < emaSmooth2) and (close[1] > emaSmooth2[1])
emapbshort2 = ((close[2] < emaSmooth2[2]) and (close[3] < emaSmooth2[3]) and (close[4] < emaSmooth2[4])) or ((close[5] < emaSmooth2[5]) and (close[6] < emaSmooth2[6]) and (close[7] < emaSmooth2[7])) or ((close[8] < emaSmooth2[8]) and (close[9] < emaSmooth2[9]) and (close[10] < emaSmooth2[10]))

shortcondition = downcondition and wavetrendshort and sellSignal and mfishort and emapbshort1 and emapbshort2

//strategy buy short
if (shortcondition) and (afterStartDate) and strategy.opentrades < 1 and (enableshort == true)
    strategy.entry("short", strategy.short)

plotshape(shortcondition, style=shape.arrowdown,
                 location=location.belowbar, color=color.red)

// } Short Entry

// { Exit Conditions
bought = strategy.position_size[1] < strategy.position_size
sold = strategy.position_size[1] > strategy.position_size
barsbought = barssince(bought)
barssold = barssince(sold)
slbuffer = input(title="SL Buffer", type=input.float, step=0.1, defval=0)

// } Exit Conditions

// { Lowest Low/ Highes High Exit Condition
enablelowhigh = input(false, title="Enable lowest low/ highest high exit?")

//Lowest Low LONG
profitfactorlong = input(title="ProfitfactorLong", type=input.float, step=0.1, defval=2)
loLen = input(title="Lowest Low Lookback", type=input.integer,
  defval=50, minval=2)
stop_level_long = lowest(low, loLen)[1]

if enablelowhigh == true and strategy.position_size>0
    profit_level_long = strategy.position_avg_price + ((strategy.position_avg_price - stop_level_long[barsbought])*profitfactorlong) + slbuffer
    strategy.exit(id="TP/ SL", stop=stop_level_long[barsbought] - slbuffer, limit=profit_level_long)

//Lowest Low SHORT
profitfactorshort = input(title="ProfitfactorShort", type=input.float, step=0.1, defval=2)
highLen = input(title="highest high lookback", type=input.integer,
  defval=50, minval=2)
stop_level_short = highest(high, highLen)[1]

if enablelowhigh == true and strategy.position_size<0
    profit_level_short = strategy.position_avg_price - ((stop_level_short[barssold] - strategy.position_avg_price)*profitfactorshort) - slbuffer
    strategy.exit(id="TP/ SL", stop=stop_level_short[barssold] + slbuffer, limit=profit_level_short)

// } Lowest Low/ Highes High Exit Condition

// { ATR Take Profit/ Stop Loss
enableatr = input(true, title="Enable ATR exit?")
atrprofitfactorlong = input(title="ATR Profitfactor Long", type=input.float, step=0.1, defval=6)
atrstopfactorlong = input(title="ATR Stopfactor Long", type=input.float, step=0.1, defval=5)
atrprofitfactorshort = input(title="ATR Profitfactor Short", type=input.float, step=0.1, defval=3)
atrstopfactorshort = input(title="ATR Stopfactor Short", type=input.float, step=0.1, defval=5)

//ATR
lengthATR = input(title="ATR Length", defval=11, minval=1)
atr = atr(lengthATR)

//LONG EXIT
if (afterStartDate) and ((enableatr == true) and (strategy.opentrades > 0))
    barsbought1 = barssince(bought)
    profit_level = strategy.position_avg_price + (atr*atrprofitfactorlong)
    stop_level = strategy.position_avg_price - (atr*atrstopfactorlong)
    strategy.exit("Take Profit/ Stop Loss", "long", stop=stop_level[barsbought1], limit=profit_level[barsbought1])

//SHORT EXIT
if (afterStartDate) and ((enableatr == true) and (strategy.opentrades > 0))
    barssold1 = barssince(sold)
    profit_level = strategy.position_avg_price - (atr*atrprofitfactorshort)
    stop_level = strategy.position_avg_price + (atr*atrstopfactorshort)
    strategy.exit("Take Profit/ Stop Loss", "short", stop=stop_level[barssold1], limit=profit_level[barssold1])

// } ATR Take Profit/ Stop Loss