وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ٹرپل حرکت پذیر اوسط کی مقدار پر مبنی تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-24 13:52:42
ٹیگز:

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

اصول: اس حکمت عملی کا مرکز 5 ، 9 ، 21 دن کی متحرک اوسط ہیں۔ جب مختصر مدت ایم اے طویل مدت میں سے ایک کو عبور کرتا ہے تو ، یہ ایک اپ ٹرینڈ کا اشارہ کرتا ہے۔ جب مختصر مدت ایم اے طویل مدت میں سے ایک سے نیچے عبور کرتا ہے تو ، یہ ایک ڈاؤن ٹرینڈ کا اشارہ کرتا ہے۔ اس کے علاوہ ، آر ایس آئی کا استعمال زیادہ خریدنے اور زیادہ فروخت کی سطح کا تعین کرنے کے لئے کیا جاتا ہے ، ایم اے سی ڈی رجحان کا فیصلہ کرنے کے لئے ، پی ایس آر کو کمبو ٹریڈنگ کے لئے معاونت اور مزاحمت کی نشاندہی کرنے کے لئے۔ پس منظر کا رنگ رجحان کی تشخیص میں مدد کے لئے مارکیٹ کے جذبات کو ظاہر کرتا ہے۔ پیرامیٹرز کو انٹری قوانین کی تشکیل کے لئے اپنی مرضی کے مطابق بنایا جاسکتا ہے۔

فوائد:

  1. ایم اے اشارے واضح رجحان کی سمت دیتے ہیں۔
  2. آر ایس آئی مؤثر طریقے سے زیادہ خرید / زیادہ فروخت کی سطحوں کا پتہ لگاتا ہے ، ایم اے سی ڈی قلیل مدتی رجحان کا جائزہ لیتا ہے ، پی ایس آر اہم قیمتوں کی سطحوں کا پتہ لگاتا ہے۔ اشارے مکمل ہیں۔
  3. لچکدار اندراج کے قوانین اور پیرامیٹرز کی ترتیبات.
  4. بہت سے بہتر اشارے اور پیرامیٹر کے مجموعے مختلف مارکیٹ کے حالات کے مطابق ڈھال سکتے ہیں.

خطرات:

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

حل:

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

اصلاح:

  1. بہترین مجموعہ کے لئے ٹھیک ٹیون MA پیرامیٹرز.
  2. سگنل فلٹر کرنے کے لئے مزید اشارے شامل کریں.
  3. امکانات کا اندازہ لگانے کے لیے مشین لرننگ میٹرکس میں اضافہ کریں۔
  4. سگنل کی درستگی کو بڑھانے کے لئے حجم کی تبدیلیوں کو یکجا کریں.
  5. نقصان کی توسیع کو محدود کرنے کے لئے سٹاپ نقصان شامل کریں.

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

[/trans]


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

//@version=3
strategy("f.society v7", title="f.society v7", 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 = request.security(syminfo.tickerid, 'D', pivot[1])
dtime_pivotAvg = request.security(syminfo.tickerid, 'D', smaP[1])
dtime_r1 = request.security(syminfo.tickerid, 'D', r1[1]) 
dtime_s1 = request.security(syminfo.tickerid, 'D', s1[1]) 
dtime_r2 = request.security(syminfo.tickerid, 'D', r2[1]) 
dtime_s2 = request.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

مزید