کثیر اشارے کی مدد سے حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-24 13:17:50
ٹیگز:

جائزہ

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

حکمت عملی منطق

  1. قیمت کے رجحان کا تعین کرنے کے لئے 3 ای ایم اے (5، 9، 21 مدت) کا استعمال کریں۔ ای ایم اے کراس اوورز رجحان کی تبدیلیوں کی نشاندہی کرتے ہیں۔

  2. آر ایس آئی زیادہ خرید / زیادہ فروخت کی سطحوں کا جائزہ لیتا ہے۔ کم سطح سے نیچے آر ایس آئی کا مطلب زیادہ فروخت ہوتا ہے؛ اوپری سطح سے اوپر زیادہ خریدا جاتا ہے۔

  3. ایم اے سی ڈی حرکت پذیر اوسط فرق کی جانچ پڑتال کرتا ہے۔ ڈی آئی ایف ایف ڈی ای اے کے اوپر عبور کرنا تیزی کا اشارہ ہے اور اس سے نیچے کمی کا اشارہ ہے۔

  4. پی ایس اے آر اضافی سیاق و سباق کے لئے موجودہ رجحان کی سمت کی نشاندہی کرتا ہے۔

  5. بولنگر بینڈ سپورٹ / مزاحمت کی سطح دکھاتے ہیں۔ قیمت توڑنے والے بینڈ رجحان کی تبدیلی کا اشارہ کرتے ہیں۔

  6. جب اشارے صارف کے انتخاب پر مبنی سیدھے سگنل دیتے ہیں تو طویل / مختصر پوزیشنیں لیں.

فوائد

  1. متعدد اشارے ایک اشارے سے گمراہ کن سگنل سے بچنے کے لئے.

  2. اپنی مرضی کے مطابق پیرامیٹرز صارفین کو بہترین مجموعے کا انتخاب کرنے کی اجازت دیتے ہیں.

  3. EMA، MACD وغیرہ سے درست رجحان تبدیلی کا پتہ لگانا

  4. RSI مؤثر طریقے سے oversold/overbought مواقع کی نشاندہی کرتا ہے۔

  5. SAR اور بولنگر بینڈ موڑ کے مقامات کو ظاہر کرتے ہیں.

خطرات

  1. ملٹی انڈیکیٹر سگنل کی کم تعداد میں اچھے مواقع ضائع ہوسکتے ہیں۔

  2. کوئی فلٹرنگ جب واحد اشارے غلط سگنل دیتا ہے.

  3. صارفین غیر زیادہ سے زیادہ پیرامیٹر سیٹ کا انتخاب کرسکتے ہیں جس کی وجہ سے زیادہ / کم تجارت ہوتی ہے۔

  4. کوئی خطرہ مینجمنٹ کی حدود جیسے سٹاپ نقصان.

  5. مکمل طور پر حکمت عملی کی توثیق کرنے کے لئے ناکافی بیک ٹسٹ ڈیٹا.

ممکنہ حل:

  1. زیادہ سگنل فراہم کرنے کے لئے اشارے کی حدوں کو وسیع کریں.

  2. غلط سگنل کو فلٹر کرنے کے لئے دیگر اشارے شامل کریں.

  3. صارفین کو مجموعے کی جانچ کرنے کے لئے زیادہ اشارے کے اختیارات فراہم کریں۔

  4. اسٹاپ نقصان اور دیگر رسک مینجمنٹ شامل کریں۔

  5. پیرامیٹرز کو بہتر بنانے کے لیے مزید مارکیٹوں پر بیک ٹیسٹ۔

اصلاح کی ہدایات

  1. بہترین میچ تلاش کرنے کے لئے مزید اشارے کے مجموعے کی جانچ کریں.

  2. مزید ڈیٹا سے چلنے والی بہتری کے لیے مشین لرننگ ماڈیولز شامل کریں۔

  3. تجارتی سمت کا تعین کرنے کے لئے رجحان فلٹرنگ شامل کریں.

  4. زیادہ سے زیادہ مارکیٹ کے ماحول کے لئے پیسہ مینجمنٹ کو بہتر بنائیں.

  5. ذہین بہتری کے لیے آٹو پیرامیٹر اصلاحات تیار کریں۔

خلاصہ

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


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

//@version=3
strategy("f.society", title="f.society", overlay=true)
//@Author: rick#1414
// -----------------------------------------------------
// f.society : Pone 3EMA: 5, 9, 21, 50, 100, 200, SAR, 
// velas azules en sobreventa y velas moradas sobre compra 
// SAR 0.02, 0.02, 0.2 , Bandas de Bollinger
// estrategia de compra y venta con rsi, macd o psr
// color de fondo: ema, rsi (color azul sobreventa 35, 25 (mas intenso))
// -----------------------------------------------------
// Como agregar a Trading view:
// 1 Cerrar todos los otros indicadores antes de añadirlo
// 2. Ir a la página de inicio TradingView.com
// 3. En la parte inferior, haga clic en Editor Pine // ver imagen: // https://cdn.discordapp.com/attachments/407267549047422976/407393815112974336/unknown.png
// 4. borrar todo el texo y reemplazar con todo el contenido de este archivo
// 5. Pulse el botón "Añadir a trazar" (Add to graph)
// -----------------------------------------------------
// revisar opciones de on y off segun indicadores deseados
// https://cdn.discordapp.com/attachments/405885820114042883/412115277883506700/unknown.png
// se puede cambiar la estrategia desde este menu desplegable para señales buy/sell

// Options
estrategia = input(defval="rsi", title = "Strategy", options=["ema","rsi","macd","psr","off","BB","ema5"])
in_bkcolor = input(defval="rsi", title = "background color", options=["ema","rsi","macd","psr","off","exchange","BB","ema5"])
e5 = input(title="Show ema5?", type=bool, defval=false)
e9 = input(title="Show ema9?", type=bool, defval=true)
e21 = input(title="Show ema21?", type=bool, defval=true)
e50 = input(title="Show ema50?", type=bool, defval=false)
e100 = input(title="Show ema100?", type=bool, defval=false)
e200 = input(title="Show ema200", type=bool, defval=true)
in_rsi = input(title="Color oversold and overbought bars?", type=bool, defval=true)
in_sar = input(title="Show Parabolic Sar", type=bool, defval=true)
in_bb = input(title="Show Bollinger Bands?", type=bool, defval=true)
sd = input(false, title="Show Daily Pivots?")
linew = input(1, title="linewidth", minval=0)
sarw = input(1, title="sar points width", minval=0)
ovs = input(40, title="oversold rsi", minval=0)
ovb = input(65, title="overbought rsi", minval=0)



//pf = input(false,title="Show Filtered Pivots")
pf=false

// 3 ema
src = close // input(close, title="Source")
//len9 = input(9, minval=1, title="ema9 Length")
//len21 = input(21, minval=1, title="ema21 Length")
//len200 = input(200, minval=1, title="ema200 Length")
len5=5
len9=9
len21=21
len50=50
len100=100
len200=200
ema5 = ema(src, len5)
ema9 = ema(src, len9)
ema21 = ema(src, len21)
ema50= ema(src, len50)
ema100 = ema(src, len100)
ema200 = ema(src, len200)
plot(e5? ema5 : na, title="EMA5", linewidth=linew, color=purple)
plot(e9? ema9 : na, title="EMA9", linewidth=linew, color=blue)
plot(e21? ema21 : na, title="EMA21", linewidth=linew, color=red)
plot(e50? ema50 : na, title="EMA50", linewidth=linew, color=green)
plot(e100? ema100 : na, title="EMA100", linewidth=linew, color=lime)
plot(e200? ema200 : na, title="EMA200", linewidth=linew, color=yellow)

// RSI Color
//lenR = input(14, minval=1, title="RSI Length")
lenR=14
//up = rma(max(change(src), 0), lenR)
//down = rma(-min(change(src), 0), lenR)
//vrsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
vrsi=rsi(close,lenR)
//plot(vrsi,title="vrsi")
oversold = vrsi < ovs
overbought = vrsi > ovb
barcolor(in_rsi? oversold? #0000FF : overbought? #ff00ff:na : na)

// SAR
plot(in_sar? sar(0.02, 0.02, 0.2): na, style=cross, linewidth=sarw, color=blue, title="sar")

// BB
//length = input(20, title="Bollinger length", minval=1)
length=20
//mult = input(2.0, title="Bollinger stdDev", minval=0.001, maxval=50)
mult=2.0
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
plot(in_bb? basis :na, color=red, linewidth=linew, title="BB basis")
p1 = plot(in_bb? upper :na, color=blue, linewidth=linew, title="BB upper")
p2 = plot(in_bb? lower :na, color=blue, linewidth=linew, title="BB lower")
fill(p1, p2)

//background
bgcolor(in_bkcolor=="exchange"? #0000FF40 : in_bkcolor=="rsi"? vrsi < (ovs-15) ? #0000FF50  : vrsi < ovs ? #0000FF30 :( vrsi < ovb ? #ff00ff10 : #ff00ff20): in_bkcolor=="ema"?(ema9>ema21?#ff00ff10  : #0000FF20):in_bkcolor=="BB"?(lower>close?#ff00ff10 : close>upper?#0000FF20:#ff00ff10): in_bkcolor=="ema5"?(ema5>ema21?#ff00ff10  : #0000FF20):na)


// Strategy
if estrategia == "ema"
    strategy.entry("buy", true, 1, when= crossover(ema9,ema21) ),
    strategy.entry("sell", false, 1, when = crossover(ema21,ema9)) 
else
    if estrategia =="rsi"
        strategy.entry("buy", true, 1, when= vrsi <ovs),
        strategy.entry("sell", false, 1, when = vrsi > ovb or crossover(close,upper)) 
    else 
        if estrategia =="macd"    
            [macdLine, signalLine, histLine] = macd(close, 12, 26, 9),
            //bgcolor(macdLine > signalLine ? #98c8ff : #ff8b94),
            strategy.entry("buy", true, 1, when= macdLine>=signalLine ),
            strategy.entry("sell", false, 1, when = macdLine<signalLine) 
        else 
            if estrategia=="psr"
                leftBars = 4 //input(4)
                rightBars = 2 //input(2)
                swh = pivothigh(leftBars, rightBars)
                swl = pivotlow(leftBars, rightBars)
                swh_cond = not na(swh)
                hprice = 0.0
                hprice := swh_cond ? swh : hprice[1]
                le = false
                le := swh_cond ? true : (le[1] and high > hprice ? false : le[1])
                if (le)
                    strategy.entry("buy", strategy.long, comment="buy", stop=hprice + syminfo.mintick)
                swl_cond = not na(swl)
                lprice = 0.0
                lprice := swl_cond ? swl : lprice[1]
                se = false
                se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])
                if (se)
                    strategy.entry("sell", strategy.short, comment="sell", stop=lprice - syminfo.mintick)
            else
                if estrategia=="BB"
                    strategy.entry("buy", true, 1, when= crossover(lower,close) ),
                    strategy.entry("sell", false, 1, when = crossover(close,upper)) 
                else
                    if estrategia=="ema5"
                        strategy.entry("buy", true, 1, when= crossover(ema5,ema21) ),
                        strategy.entry("sell", false, 1, when = crossover(ema21,ema5)) 



// pivots

// Classic Pivot
pivot = (high + low + close ) / 3.0
// Filter Cr
bull= pivot > (pivot + pivot[1]) / 2 + .0025
bear= pivot < (pivot + pivot[1]) / 2 - .0025
// Classic Pivots
r1 = pf and bear ? pivot + (pivot - low) : pf and bull ? pivot + (high - low) : pivot + (pivot - low)
s1 = pf and bull ? pivot - (high - pivot) : pf and bear ? pivot - (high - low) : pivot - (high - pivot)
r2 = pf ? na : pivot + (high - low)
s2 = pf ? na : pivot - (high - low)
//Pivot Average Calculation
smaP = sma(pivot, 3)
//Daily Pivots 
dtime_pivot = security(syminfo.tickerid, 'D', pivot[1])
dtime_pivotAvg = security(syminfo.tickerid, 'D', smaP[1])
dtime_r1 = security(syminfo.tickerid, 'D', r1[1]) 
dtime_s1 = security(syminfo.tickerid, 'D', s1[1]) 
dtime_r2 = security(syminfo.tickerid, 'D', r2[1]) 
dtime_s2 = security(syminfo.tickerid, 'D', s2[1])
offs_daily = 0
plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",style=line, color=fuchsia,linewidth=linew) 
plot(sd and dtime_r1 ? dtime_r1 : na, title="Daily R1",style=line, color=#DC143C,linewidth=linew) 
plot(sd and dtime_s1 ? dtime_s1 : na, title="Daily S1",style=line, color=lime,linewidth=linew) 
plot(sd and dtime_r2 ? dtime_r2 : na, title="Daily R2",style=line, color=maroon,linewidth=linew) 
plot(sd and dtime_s2 ? dtime_s2 : na, title="Daily S2",style=line, color=#228B22,linewidth=linew) 


// References:
// get number of bars since last green bar
//plot(barssince(close >= open), linewidth=3, color=blue)
//bgcolor(close < open ? #ff8b94   : #98c8ff , transp=10)
//http://www.color-hex.com/
//   #98c8ff    light blue
//    #ff8b94   red   #b21c0e
//       #7d1d90    purple
//    #0029ff blue
//    #fffa86   yellow

مزید