وقت کے فریموں میں رفتار کی گردش رجحان کی پیروی کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-17 17:32:11
ٹیگز:

img

جائزہ

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

ابتدائی تجزیہ

حکمت عملی 5 ، 20 اور 40 دن کی تین حرکت پذیر اوسط لائنوں کا استعمال کرتے ہوئے مختلف وقت کے فریموں کے تحت رجحانات کا تعین کرنے کے لئے ترتیب کے مجموعے کا استعمال کرتی ہے۔

خاص طور پر ، 5 دن کی تیز لائن پر 20 دن کی درمیانی لائن کو عبور کرنا مختصر لائن میں اضافے کا اشارہ سمجھا جاتا ہے ، اور 20 دن کی درمیانی لائن پر 40 دن کی سست لائن کو عبور کرنا درمیانی لائن میں اضافے کا اشارہ سمجھا جاتا ہے۔ جب تیز درمیانی سست 3 لائن سیدھے ہیں ((5 دن > 20 دن > 40 دن) ، تو یہ ایک کثیر سرخی کا دورانیہ سمجھا جاتا ہے۔ جب تیز درمیانی سست 3 لائن الٹا ہے ((5 دن < 20 دن < 40 دن) ، تو یہ خالی سرخی کا دورانیہ سمجھا جاتا ہے۔

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

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

فوائد کا تجزیہ

  • ترتیب میں لچک، صارفین کو مختلف اقسام اور ٹریڈنگ کی ترجیحات کے مطابق کرنے کے لئے خود کار طریقے سے متحرک اوسط کی پیرامیٹرز کو ایڈجسٹ کر سکتے ہیں

  • یہ آسان ہے اور نئے صارفین کے لئے بھی استعمال کرنا آسان ہے۔

  • سرمایہ کاری کا استعمال موثر ہے اور اس سے سرمایہ کاری کا فائدہ اٹھایا جاسکتا ہے۔

  • خطرے کو قابو میں رکھنے اور بڑے نقصانات کو مؤثر طریقے سے روکنے کے لئے نقصانات کو روکنے کا طریقہ کار

  • مضبوط رجحان کی پیروی کرنے کی صلاحیت ، بڑے دورانیے کی سمت طے کرنے کے بعد مستقل منافع

  • اعلی جیت کی شرح ، تجارتی سگنل کا معیار بہتر ، کم ٹریک غلطی

خطرات اور بہتری

  • بڑے دورانیے کا فیصلہ متغیر اوسط لائن کی ترتیب پر منحصر ہے ، تاخیر سے غلط فیصلے کا خطرہ ہے۔

  • چھوٹے دورانیے کی طاقت کا پتہ لگانے کے لئے صرف ایک K لائن کا استعمال کرتے ہوئے ، جو پہلے سے ہی شروع ہوسکتا ہے ، مناسب طور پر آرام کر سکتا ہے

  • سٹاپ نقصان کی حد مقرر، متحرک سٹاپ نقصان کے لئے مرضی کے مطابق

  • اضافی فلٹرنگ شرائط شامل کرنے پر غور کیا جاسکتا ہے ، جیسے تجارت کی مقدار کی توانائی وغیرہ۔

  • مختلف متحرک اوسط پیرامیٹرز کے مجموعے کو آزمائیں ، حکمت عملی کو بہتر بنائیں

خلاصہ

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

جائزہ

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

تجارتی منطق

اس حکمت عملی میں مختلف ٹائم فریموں میں رجحانات کی سیدھ کو طے کرنے کے لئے 5 ، 20 اور 40 دن کی چلتی اوسط استعمال کی جاتی ہے۔ بڑے اور چھوٹے ٹائم فریموں کے مابین مستقل مزاجی کی بنیاد پر ، اس میں تیزی اور bearish سائیکل کی نشاندہی کی جاتی ہے۔

خاص طور پر ، 20 دن کے میڈیم ایم اے سے اوپر 5 دن کی تیز ایم اے کی کراسنگ قلیل مدتی میں ایک اپ ٹرینڈ کی نشاندہی کرتی ہے۔ 40 دن کے سست ایم اے سے اوپر 20 دن کی میڈیم ایم اے کی کراسنگ درمیانی مدت میں ایک اپ ٹرینڈ کی نشاندہی کرتی ہے۔ جب تیز ، درمیانے اور سست ایم اے مثبت طور پر سیدھے ہیں (5 دن > 20 دن > 40 دن) ، تو یہ ایک بیل سائیکل ہے۔ جب وہ منفی سیدھے ہیں (5 دن < 20 دن < 40 دن) ، تو یہ ایک ریچھ سائیکل ہے۔

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

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

فوائد

  • مختلف آلات اور تجارت کے انداز کے مطابق لچکدار ترتیب

  • ابتدائی تاجروں کے لئے بھی لاگو کرنے کے لئے آسان

  • زیادہ سے زیادہ فائدہ اٹھانے کے لئے اعلی سرمایہ کاری کی کارکردگی

  • اہم نقصانات سے بچنے کے لئے مؤثر رسک کنٹرول

  • پائیدار منافع کے لئے صلاحیت کے بعد مضبوط رجحان

  • مضبوط سگنلز اور کم وپساؤ کی وجہ سے اعلی جیت کی شرح

خطرات اور بہتری

  • ایم اے کراس اوور میں تاخیر ہوسکتی ہے اور دیر سے رجحان کا پتہ چل سکتا ہے

  • ایک واحد موم بتی کی طاقت کا پتہ لگانے میں قبل از وقت داخلہ، آرام کی حالت کو متحرک کر سکتے ہیں

  • فکسڈ ATR سٹاپ نقصان، متحرک رک جاتا ہے کرنے کے لئے بہتر

  • حجم کی طرح اضافی فلٹرز شامل کرنے پر غور کریں

  • اصلاح کے لئے مختلف ایم اے پیرامیٹرز کی تلاش کریں

نتیجہ

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


/*backtest
start: 2023-10-17 00:00:00
end: 2023-11-16 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/
// © kgynofomo

//@version=5
strategy(title="[Salavi] | Andy Advance Pro Strategy [BTC|M15]",overlay = true, pyramiding = 1,initial_capital = 10000, default_qty_type = strategy.cash,default_qty_value = 10000)

ema_short = ta.ema(close,5)
ema_middle = ta.ema(close,20)
ema_long = ta.ema(close,40)

cycle_1 = ema_short>ema_middle and ema_middle>ema_long
cycle_2 = ema_middle>ema_short and ema_short>ema_long
cycle_3 = ema_middle>ema_long and ema_long>ema_short
cycle_4 = ema_long>ema_middle and ema_middle>ema_short
cycle_5 = ema_long>ema_short and ema_short>ema_middle
cycle_6 = ema_short>ema_long and ema_long>ema_middle

bull_cycle = cycle_1 or cycle_2 or cycle_3
bear_cycle = cycle_4 or cycle_5 or cycle_6
// label.new("cycle_1")
// bgcolor(color=cycle_1?color.rgb(82, 255, 148, 60):na)
// bgcolor(color=cycle_2?color.rgb(82, 255, 148, 70):na)
// bgcolor(color=cycle_3?color.rgb(82, 255, 148, 80):na)
// bgcolor(color=cycle_4?color.rgb(255, 82, 82, 80):na)
// bgcolor(color=cycle_5?color.rgb(255, 82, 82, 70):na)
// bgcolor(color=cycle_6?color.rgb(255, 82, 82, 60):na)

// Inputs
a = input(2, title='Key Vaule. \'This changes the sensitivity\'')
c = input(7, title='ATR Period')
h = false

xATR = ta.atr(c)
nLoss = a * xATR

src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead=barmerge.lookahead_off) : close

xATRTrailingStop = 0.0
iff_1 = src > nz(xATRTrailingStop[1], 0) ? src - nLoss : src + nLoss
iff_2 = src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) : iff_1
xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) : iff_2

pos = 0
iff_3 = src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0)
pos := src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0) ? 1 : iff_3

xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue

ema = ta.ema(src, 1)
above = ta.crossover(ema, xATRTrailingStop)
below = ta.crossover(xATRTrailingStop, ema)

buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below

barbuy = src > xATRTrailingStop
barsell = src < xATRTrailingStop




atr = ta.atr(14)
atr_length = input.int(25)
atr_rsi = ta.rsi(atr,atr_length)
atr_valid = atr_rsi>50

long_condition =  buy and bull_cycle and atr_valid
short_condition =  sell and bear_cycle and atr_valid

Exit_long_condition = short_condition
Exit_short_condition = long_condition

if long_condition
    strategy.entry("Andy Buy",strategy.long, limit=close,comment="Andy Buy Here")

if Exit_long_condition
    strategy.close("Andy Buy",comment="Andy Buy Out")
    // strategy.entry("Andy fandan Short",strategy.short, limit=close,comment="Andy 翻單 short Here")
    // strategy.close("Andy fandan Buy",comment="Andy short Out")


if short_condition
    strategy.entry("Andy Short",strategy.short, limit=close,comment="Andy short Here")


// strategy.exit("STR","Long",stop=longstoploss)
if Exit_short_condition
    strategy.close("Andy Short",comment="Andy short Out")
    // strategy.entry("Andy fandan Buy",strategy.long, limit=close,comment="Andy 翻單 Buy Here")
    // strategy.close("Andy fandan Short",comment="Andy Buy Out")




inLongTrade = strategy.position_size > 0
inLongTradecolor = #58D68D
notInTrade = strategy.position_size == 0
inShortTrade = strategy.position_size < 0

// bgcolor(color = inLongTrade?color.rgb(76, 175, 79, 70):inShortTrade?color.rgb(255, 82, 82, 70):na)
plotshape(close!=0,location = location.bottom,color = inLongTrade?color.rgb(76, 175, 79, 70):inShortTrade?color.rgb(255, 82, 82, 70):na)


plotshape(long_condition, title='Buy', text='Andy Buy', style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), size=size.tiny)
plotshape(short_condition, title='Sell', text='Andy Sell', style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny)


//atr > close *0.01* parameter

// MONTHLY TABLE PERFORMANCE - Developed by @QuantNomad
// *************************************************************************************************************************************************************************************************************************************************************************
show_performance = input.bool(true, 'Show Monthly Performance ?', group='Performance - credits: @QuantNomad')
prec = input(2, 'Return Precision', group='Performance - credits: @QuantNomad')

if show_performance
    new_month = month(time) != month(time[1])
    new_year  = year(time)  != year(time[1])
    
    eq = strategy.equity
    
    bar_pnl = eq / eq[1] - 1
    
    cur_month_pnl = 0.0
    cur_year_pnl  = 0.0
    
    // Current Monthly P&L
    cur_month_pnl := new_month ? 0.0 : 
                     (1 + cur_month_pnl[1]) * (1 + bar_pnl) - 1 
    
    // Current Yearly P&L
    cur_year_pnl := new_year ? 0.0 : 
                     (1 + cur_year_pnl[1]) * (1 + bar_pnl) - 1  
    
    // Arrays to store Yearly and Monthly P&Ls
    var month_pnl  = array.new_float(0)
    var month_time = array.new_int(0)
    
    var year_pnl  = array.new_float(0)
    var year_time = array.new_int(0)
    
    last_computed = false
    
    if (not na(cur_month_pnl[1]) and (new_month or barstate.islastconfirmedhistory))
        if (last_computed[1])
            array.pop(month_pnl)
            array.pop(month_time)
            
        array.push(month_pnl , cur_month_pnl[1])
        array.push(month_time, time[1])
    
    if (not na(cur_year_pnl[1]) and (new_year or barstate.islastconfirmedhistory))
        if (last_computed[1])
            array.pop(year_pnl)
            array.pop(year_time)
            
        array.push(year_pnl , cur_year_pnl[1])
        array.push(year_time, time[1])
    
    last_computed := barstate.islastconfirmedhistory ? true : nz(last_computed[1])
    
    // Monthly P&L Table    
    var monthly_table = table(na)
    
    if (barstate.islastconfirmedhistory)
        monthly_table := table.new(position.bottom_center, columns = 14, rows = array.size(year_pnl) + 1, border_width = 1)
    
        table.cell(monthly_table, 0,  0, "",     bgcolor = #cccccc)
        table.cell(monthly_table, 1,  0, "Jan",  bgcolor = #cccccc)
        table.cell(monthly_table, 2,  0, "Feb",  bgcolor = #cccccc)
        table.cell(monthly_table, 3,  0, "Mar",  bgcolor = #cccccc)
        table.cell(monthly_table, 4,  0, "Apr",  bgcolor = #cccccc)
        table.cell(monthly_table, 5,  0, "May",  bgcolor = #cccccc)
        table.cell(monthly_table, 6,  0, "Jun",  bgcolor = #cccccc)
        table.cell(monthly_table, 7,  0, "Jul",  bgcolor = #cccccc)
        table.cell(monthly_table, 8,  0, "Aug",  bgcolor = #cccccc)
        table.cell(monthly_table, 9,  0, "Sep",  bgcolor = #cccccc)
        table.cell(monthly_table, 10, 0, "Oct",  bgcolor = #cccccc)
        table.cell(monthly_table, 11, 0, "Nov",  bgcolor = #cccccc)
        table.cell(monthly_table, 12, 0, "Dec",  bgcolor = #cccccc)
        table.cell(monthly_table, 13, 0, "Year", bgcolor = #999999)
    
    
        for yi = 0 to array.size(year_pnl) - 1
            table.cell(monthly_table, 0,  yi + 1, str.tostring(year(array.get(year_time, yi))), bgcolor = #cccccc)
            
            y_color = array.get(year_pnl, yi) > 0 ? color.new(color.teal, transp = 40) : color.new(color.gray, transp = 40)
            table.cell(monthly_table, 13, yi + 1, str.tostring(math.round(array.get(year_pnl, yi) * 100, prec)), bgcolor = y_color, text_color=color.new(color.white, 0))
            
        for mi = 0 to array.size(month_time) - 1
            m_row   = year(array.get(month_time, mi))  - year(array.get(year_time, 0)) + 1
            m_col   = month(array.get(month_time, mi)) 
            m_color = array.get(month_pnl, mi) > 0 ? color.new(color.teal, transp = 40) : color.new(color.gray, transp = 40)
            
            table.cell(monthly_table, m_col, m_row, str.tostring(math.round(array.get(month_pnl, mi) * 100, prec)), bgcolor = m_color, text_color=color.new(color.white, 0))



مزید