niko83 (OP)
|
|
March 26, 2020, 02:24:00 AM Last edit: March 28, 2020, 11:14:47 PM by niko83 |
|
Bildiğiniz üzere Tradingview'in ücretsiz versiyonu belirli bir sayıdan fazla gösterge eklemenize izin vermiyor. Üstelik hazır olarak sunulan göstergeler her zaman dişimize göre olmuyor. Bu sınırlamanın kısmen de olsa etrafından dolanmanın basit ve eğlenceli bir yolu var. Tradingview öğrenmesi gayet kolay ve bir o kadar da kullanışlı olan Pine adlı bir betik dili içeriyor. Bu dili kullanarak hemen her türlü göstergeyi kendi meşrebinize göre ayarlayıp grafiğe ekleyebilir, sürekli kullandığınız birkaç indikatörü bir başlık altında bir araya getirerek başka indikatörlere yer açabilirsiniz. Mesela bir zamanlar benim de yaptığım gibi, 3-5 tane hareketli ortalama ve Ichimoku bulutunu sürekli kullanıyorsanız, bütün bunları tek bir başlık altında toplayabilirsiniz: //@version=4 study(title="Ichimoku Bulutu ve Beşli Hareketli Ortalama", shorttitle="Crypto Ichimoku + Beşli-MA ", overlay=true)
//Hareketli Ortalama Girdileri drawsma = input(true, title = "SMA Çizilsin mi?") ma_1p = input(9, title="MA1") ma_2p = input(21, title="MA2") ma_3p = input(55, title="MA3") ma_4p = input(100, title="MA4") ma_5p = input(150, title="MA5") ma_6p = input(200, title="MA6")
//Ichimoku Girdileri drawichimoku = input(true, "Ichimoku Çizilsin mi?") conversionPeriods = input(20, minval=1, title="Tenkan-Sen Devir Sayısı"), basePeriods = input(60, minval=1, title="Kijun-Sen Devir Sayısı") laggingSpan2Periods = input(120, minval=1, title="Chikou Span Devir Sayısı"), displacement = input(30, minval=1, title="Öteleme")
//Hesaplar ma_1 = sma(close, ma_1p) ma_2 = sma(close, ma_2p) ma_3 = sma(close, ma_3p) ma_4 = sma(close, ma_4p) ma_5 = sma(close, ma_5p) ma_6 = sma(close, ma_6p)
donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods)
//Ichimoku çizimi plot(conversionLine, color=drawichimoku ? #0496ff : na, title="Tenkan-Sen") plot(baseLine, color=drawichimoku ? #991515 : na, title="Kijun-Sen") plot(close, offset = -displacement, color=drawichimoku ? #459915 : na, title="Chikou-Span") p1 = plot(leadLine1, offset = displacement, color=drawichimoku ? color.green : na, title="Senkou A") p2 = plot(leadLine2, offset = displacement, color=drawichimoku ? color.red : na, title="Senkou B") fill(p1, p2, color = leadLine1 > leadLine2 ? color.green : color.red, transp = drawichimoku ? 70:100)
//SMA Çizimi plot(ma_1, color=drawsma ? color.yellow : na, title="MA1") plot(ma_2, color=drawsma ? color.orange : na, title="MA2") plot(ma_3, color=drawsma ? color.fuchsia : na, title="MA3") plot(ma_4, color=drawsma ? color.red : na, title="MA4") plot(ma_5, color=drawsma ? color.blue : na, title="MA5") plot(ma_6, color=drawsma ? color.purple : na, title="MA6")
Kodu kısaca özetleyecek olursak: - ikinci satırda koda bir isim veriyoruz. Tabloda görünecek olan isim shorttitle kısmı.
- ardından SMA eğrilerinin tümünün çizimini devre dışı bırakmak veya açmak için kullanabileceğimiz drawsma adlı bir değişken oluşturuyoruz.
- ardından ma_1p ile başlayan altı farklı değişken oluşturup, bunlara 9 ile başlayıp 200 ile biten farklı varsayılan değerler atıyoruz. Bunlar hareketli ortalama hesaplanırken kullanılan devir (mum) sayıları olacak.
- aynı prosedürü Ichimoku bulutunu çizmek için gereken değişkenler için uyguluyoruz.
- atadığımız bu değişkenler input fonskiyonuna verildiği için kullanıcılar indikatörün ayarlar kısmından bu varsayılan değerleri kolayca değiştirebilecekler.
- ardından SMA ve Ichimoku için gerekli hesaplamaları yaparak çıkan sonuçları değişkenlere depoluyoruz.
- son olarak da plot fonksiyonu kullanarak elde ettiğimiz verileri tablo üzerine çizdiriyoruz.
6 değil 7 tane hareketli ortalama çizdirmek istiyorsanız yukarıdaki patterni kullanarak önce girdi kısmına ma_7p, sonra hesap kısmına ma_7, sonra da çizim kısmına plot(ma_7) eklemeniz yeterli olacaktır. Ayarlar kısmı karmakarışık olmasın diye her hareketli ortalama için ayrı bir aç kapa düğmesi koymadım ama eğer bunu eklemek isterseniz önce bunun için bir değişken oluşturmanız gerekir. Mesela girdiler kısmına şunu ekleyebilirsiniz: drawsma1 = input(true, title = "SMA1 Çizilsin mi?") Ardından ma_1 adlı değişkeni grafiğe ekleyen plot fonksiyonunu şu şekilde değiştirebilirsiniz: plot(ma_1, color=(drawsma and drawsma1) ? color.yellow : na, title="MA1") Burada kullandığımız soru işareti sayesinde plot fonksiyonuna renk ataması yapmadan önce drawsma ve drawsma1 değişkenlerinin her ikisinin birden değerine bakmasını ve her ikisi birden sıfırdan farklı ise yani boolean true değerini içeriyorsa sarı renk kullanmasını, aksi takdirde renk kullanmamasını söylemiş oluyoruz, böylece SMA çizimini toptan kapatırsak ya da yalnızca SMA1 çizimini kapatırsak pratikte çizim yaptırmamış oluyoruz. Benzer bir tekniği alttaki satırda da kullanıyoruz, burada ise renk ile değil, şeffaflık ayarı ile oynuyoruz: fill(p1, p2, color = leadLine1 > leadLine2 ? color.green : color.red, transp = drawichimoku ? 70:100) Eğer kullanıcı drawichimoku değişkenine depolanmış olan varsayılan değeri değiştirirse, yani kutudaki tiki kaldırırsa bulutun çizimi %70 değil %100 şeffaflık ile yapılıyor, dolayısıyla bulut görünmez oluyor. Bu parametreyi kullanarak plot ile yapılan tüm çizimlerdeki varsayılan değerleri kendi tercihlerinize göre değiştirebilirsiniz ya da indikatörün ayarlar kısmındaki style tabını açarak aynı sonucu elde edebilirsiniz. Mesela %30 şeffaflıkta çizim yapmak istiyorsanız: plot(ma_1, color=drawsma ? color.yellow : na, title="MA1", transp=30) Pine ile daha birçok şey yapmak mümkün. Öğrenmek de hem basit, hem de gayet eğlenceli. Hepinize tavsiye ederim. Bu arada... İnceleyince zaten fark edersiniz ama olur da ilk görüşte bu ne biçim Ichimoku diye şaşırırsanız; varsayılan değerleri değil, kripto için genellikle tercih edilen değerleri kullandım. EDIT: İşi iyice abartıp, çoklu indikatörümüze Bollinger Bands, Parabolic SAR ve EMA gibi önümüze gelen her şeyi eklemek istersek aşağıdaki gibi bir script elde edebiliriz. Bu scriptte varsayılan olarak hiçbir çizim açık değil, görmek istediklerinizi ayarlar kısmına girip açmanız gerekecek. // © niko_83 //@version=4 study(title="Ichimoku + BB + Beşli Hareketli Ortalama + SAR", shorttitle="Ichimoku + BB + Beşli-MA + SAR", overlay=true)
//Hareketli Ortalama Girdileri drawma = input(false, title = "MA Çizilsin mi?") ma_tipi = input(defval="SMA", title='Hareketli Ortalama Türü', options=["SMA","EMA"])
ma_1p = input(9, title="MA1") ma_2p = input(21, title="MA2") ma_3p = input(55, title="MA3") ma_4p = input(100, title="MA4") ma_5p = input(150, title="MA5") ma_6p = input(200, title="MA6")
//Ichimoku Girdileri drawichimoku = input(false, "Ichimoku Çizilsin mi?")
conversionPeriods = input(20, minval=1, title="Tenkan-Sen Devir Sayısı"), basePeriods = input(60, minval=1, title="Kijun-Sen Devir Sayısı") laggingSpan2Periods = input(120, minval=1, title="Chikou Span Devir Sayısı"), displacement = input(30, minval=1, title="Öteleme")
//BB Girdileri drawBB = input(false, title = "BB Çizilsin mi?")
BBD = input(20, minval=1, title="BB Devri") BBSS = input(2.0, minval=0.001, title="BB Standart Sapma")
// SAR girdileri drawsar=input(false, title = "SAR Çizilsin mi?")
baslangic = input(title="Başlangıç", type=input.float, step=0.001, defval=0.02) artis = input(title="Artış", type=input.float, step=0.001, defval=0.02) maksimum = input(title="Maksimum", type=input.float, step=0.01, defval=0.2)
//SMA Hesapları ma_1 = ma_tipi=="EMA" ? ema(close, ma_1p) : sma(close, ma_1p) ma_2 = ma_tipi=="EMA" ? ema(close, ma_2p) : sma(close, ma_2p) ma_3 = ma_tipi=="EMA" ? ema(close, ma_3p) : sma(close, ma_3p) ma_4 = ma_tipi=="EMA" ? ema(close, ma_4p) : sma(close, ma_4p) ma_5 = ma_tipi=="EMA" ? ema(close, ma_5p) : sma(close, ma_5p) ma_6 = ma_tipi=="EMA" ? ema(close, ma_6p) : sma(close, ma_6p)
//Ichimoku Hesapları donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods)
//Bollinger Band Hesapları ssapma = BBSS * stdev(close, BBD) alt = sma(close, BBD) - ssapma orta = sma(close, BBD) ust = sma(close, BBD) + ssapma
// SAR Hesaplama sarplot = sar(baslangic, artis, maksimum)
//Ichimoku çizimi plot(conversionLine, color=drawichimoku ? #0496ff : na, title="Tenkan-Sen") plot(baseLine, color=drawichimoku ? #991515 : na, title="Kijun-Sen") plot(close, offset = -displacement, color=drawichimoku ? #459915 : na, title="Chikou-Span") p1 = plot(leadLine1, offset = displacement, color=drawichimoku ? color.green : na, title="Senkou A") p2 = plot(leadLine2, offset = displacement, color=drawichimoku ? color.red : na, title="Senkou B") fill(p1, p2, color = leadLine1 > leadLine2 ? color.green : color.red, transp = drawichimoku ? 70:100)
//SMA Çizimi plot(ma_1, color=drawma ? color.yellow : na, title="MA1") plot(ma_2, color=drawma ? color.orange : na, title="MA2") plot(ma_3, color=drawma ? color.fuchsia : na, title="MA3") plot(ma_4, color=drawma ? color.red : na, title="MA4") plot(ma_5, color=drawma ? color.blue : na, title="MA5") plot(ma_6, color=drawma ? color.purple : na, title="MA6")
// BB Çizimi plot(alt, title="Alt", color=drawBB ? color.blue:na) plot(orta, title="Orta", color=drawBB ? color.lime:na) plot(ust, title="Üst", color=drawBB ? color.blue:na)
// SAR Çizimi plot(sarplot, style = plot.style_cross, color=drawsar ? color.orange:na)
|
|
|
|
valek55
Member
Offline
Activity: 380
Merit: 31
|
|
March 29, 2020, 03:10:18 PM |
|
çokgüzel bir konu arkadasa teşekkür ederim..
şöyle birşey yapmak mümkün mü indikatöre indikatör eklemek ?
Örneğin rsi+bollinger istiyorum ben mesela
|
|
|
|
niko83 (OP)
|
|
March 30, 2020, 07:15:11 AM Last edit: March 30, 2020, 08:00:54 AM by niko83 |
|
çokgüzel bir konu arkadasa teşekkür ederim..
şöyle birşey yapmak mümkün mü indikatöre indikatör eklemek ?
Örneğin rsi+bollinger istiyorum ben mesela
Bildiğim kadarıyla Pine, tek bir script ile farklı bölmelere çizim yapmaya izin vermiyor. Bollinger Bands "overlay" olarak yani fiyat grafiğinin üstüne çizdirilirken RSI ayrı bir bölme içine çizdiriliyor çünkü RSI değeri 0 ile 100 arasında gidip geliyor. Eğer RSI'yı fiyat ile aynı bölmeye eklemeye kalkarsak grafiğin ölçeği değişecektir ve hem fiyatı hem de RSI değerini okumak epey zor hale gelecektir. Bu durumda iki farklı script hazırlamaktan başka çare kalmıyor. İlk script ile fiyat grafiğinin üzerine çizebileceğimiz hareketli ortalama veya BB gibi indikatörleri çizdirip, diğer script ile ayrı bir bölmede RSI, MFI, Stoch gibi 0-100 arasında gidip gelen osilatörleri bir araya getirebiliriz. Mesela alttaki script ile hem RSI hem de MFI değerlerini üst üste aynı bölme içine çizdirebiliriz. // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © niko_83 //@version=4
study("RSI + MFI") rsiperiods = input(14, "RSI periyotu") rsisrc = input(close, title="RSI Kaynağı") mfiperiods = input(14, "MFI periyotu") mfisrc = input(close, "MFI Kaynağı")
rsivalue = rsi(rsisrc, rsiperiods) mfivalue = mfi(mfisrc, mfiperiods) plot(rsivalue, color=color.yellow) plot(mfivalue, color=color.blue) Böylece şunun gibi bir grafik elde edebiliriz: EDIT: Tek script ile farklı bölmelere çizdirmek için bir iki teknik denedim ama başarılı olamadım. Ölçek cetvelini sola alarak fiyat grafiği üzerine RSI çizdirmek için alttaki kodu kullanabiliriz ama işin içine birden fazla indikatör girince işler yine karışacaktır. // © niko_83 //@version=4
study(title="Overlaid RSI", shorttitle="Overlaid RSI", overlay=true, scale=scale.left)
rsiperiods = input(14, "RSI periyotu") rsisrc = input(close, title="RSI Kaynağı") rsivalue = rsi(rsisrc, rsiperiods) plot(rsivalue, color=color.yellow) Bu kodun sonucu şuna benziyor:
|
|
|
|
valek55
Member
Offline
Activity: 380
Merit: 31
|
|
March 30, 2020, 02:51:13 PM |
|
hocam benim fiyatla işim yok.
ben alttaki 2. resimdeki yaptıgını gibi istiyorum yapmıssınız ya rsi+mfi diye.
Ben orda mfi yerine bollinger bandı istiyorum.
Bunu yapabilirmiyiz ?
|
|
|
|
niko83 (OP)
|
|
March 30, 2020, 04:31:27 PM Last edit: March 31, 2020, 06:14:27 AM by niko83 |
|
hocam benim fiyatla işim yok.
ben alttaki 2. resimdeki yaptıgını gibi istiyorum yapmıssınız ya rsi+mfi diye.
Ben orda mfi yerine bollinger bandı istiyorum.
Bunu yapabilirmiyiz ?
Neden böyle bir şey istediğinizi pek anlayamadım ama bunu yapmak pekala mümkün. // © niko_83
//@version=4 study("Ayrık BB", overlay=false)
BBD = input(20, minval=1, title="BB Devri") BBSS = input(2.0, minval=0.001, title="BB Standart Sapma")
ssapma = BBSS * stdev(close, BBD) alt = sma(close, BBD) - ssapma orta = sma(close, BBD) ust = sma(close, BBD) + ssapma
plot(alt, title="Alt", color= color.blue) plot(orta, title="Orta", color= color.lime) plot(ust, title="Üst", color= color.blue)
EDIT: Sanırım ne umduğunuzu tam anlayamamışım. "MFI yerine BB" demişsiniz ama ben yalnızca BB için kod hazırladım. Bu noktada aklıma şu soru geliyor; BB ve RSI mı görmek istiyorsunuz yoksa RSI için BB çizdirmek mi istiyorsunuz?
|
|
|
|
valek55
Member
Offline
Activity: 380
Merit: 31
|
|
March 31, 2020, 02:52:05 AM |
|
Hocam estağfurullah Allah çözümü olmayan dert vermesin inşallah en kısa sürede sorunlarınızı çözüme kavusturursunuz. Benim istediğim şu hocam. normalde indikatör olarak rsi açıyoruz. RSİ in üzerinde ... tıklayıp indikatör ekle deyip bollinger ekliyoruz.Aşağada resim linki attım.Birtürlü direk foruma resim ekleyemedim. https://ibb.co/ryWM5qCŞimdi bu şekilde yaptıgımızda tradingview bunu 2 indikatör sayıyor ve bize 1 tane daha indikatör hakkı kalıyor. Halbuki ben bu şekilde 2 indikatörü birleştirip tek indikatör yaparak kullanabilirsem bu sayede fazladan 2 indikatör daha açabileceğim. O yüzden bana rsi+bollinger birleştirilmiş şekilde lazım. Hatta aynı şekilde obv+bollinger de birleştirilmiş olsa tadından yenmez ama ben tekinede razıyım... İlgilendiğin için teşekkür ederim.
|
|
|
|
niko83 (OP)
|
|
March 31, 2020, 06:35:22 AM Last edit: March 31, 2020, 07:00:57 AM by niko83 Merited by Blacknavy (7), valek55 (3), Vispilio (2) |
|
Hocam estağfurullah Allah çözümü olmayan dert vermesin inşallah en kısa sürede sorunlarınızı çözüme kavusturursunuz. Benim istediğim şu hocam. normalde indikatör olarak rsi açıyoruz. RSİ in üzerinde ... tıklayıp indikatör ekle deyip bollinger ekliyoruz.Aşağada resim linki attım.Birtürlü direk foruma resim ekleyemedim. https://ibb.co/ryWM5qCŞimdi bu şekilde yaptıgımızda tradingview bunu 2 indikatör sayıyor ve bize 1 tane daha indikatör hakkı kalıyor. Halbuki ben bu şekilde 2 indikatörü birleştirip tek indikatör yaparak kullanabilirsem bu sayede fazladan 2 indikatör daha açabileceğim. O yüzden bana rsi+bollinger birleştirilmiş şekilde lazım. Hatta aynı şekilde obv+bollinger de birleştirilmiş olsa tadından yenmez ama ben tekinede razıyım... İlgilendiğin için teşekkür ederim. Şimdi tam olarak ne istediğinizi anladım; RSI değerlerini temel alan Bollinger Bands çizdirmek istiyorsunuz. Alttaki kodu kullanarak bunu elde edebilirsiniz. Birkaç saat içinde OBV konusunda neler yapabileceğime göz atarım. Dilekleriniz için teşekkür ederim. Güle güle kullanın, rica ederim. // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © niko_83
//@version=4 study("BB on RSI", overlay=false)
// RSI ustcizgi=input(70, "Üst Çizgi") altcizgi=input(30, "Alt Çizgi") band1 = hline(ustcizgi) band0 = hline(altcizgi)
rsiperiods = input(14, "RSI periyotu") rsisrc = input(close, title="RSI Kaynağı") rsivalue = rsi(rsisrc, rsiperiods) plot(rsivalue, color=color.yellow)
// BBRSI
drawBB = input(true, title = "RSI-BB Çizilsin mi?")
BBRSID = input(20, minval=1, title="RSI-BB Devri") BBRSISS = input(2.0, minval=0.001, title="RSI-BB Standart Sapma")
ssapma = BBRSISS * stdev(rsivalue, BBRSID) altb = sma(rsivalue, BBRSID) - ssapma ortab = sma(rsivalue, BBRSID) ustb = sma(rsivalue, BBRSID) + ssapma
plot(altb, title="Alt Bant", color=drawBB ? color.blue:na) plot(ortab, title="Orta Bant", color=drawBB ? color.lime:na) plot(ustb, title="Üst Bant", color=drawBB ? color.blue:na)
EDIT: OBV üstüne Bollinger Bantları çizdirmek için de aşağdaki kodu kullanabilirsiniz. Tümünü aynı panel içine çizdirmek pratikte imkansız gibi çünkü hem ölçek problemi var hem de böyle bir durumda panel karmakarışık olacaktır. O yüzden bu iki farklı kodu iki farklı panelde kullanmanız gerekecek gibi görünüyor. // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © niko_83 //@version=4 study("BB on OBV", overlay=false)
// OBV plot(obv, color=color.yellow)
// BB on OBV drawOBVBB = input(true, title = "OBV-BB Çizilsin mi?")
BBOBVD = input(20, minval=1, title="OBV-BB Devri") BBOBVSS = input(2.0, minval=0.001, title="OBV-BB Standart Sapma")
ssapma = BBOBVSS * stdev(obv, BBOBVD) altb = sma(obv, BBOBVD) - ssapma ortab = sma(obv, BBOBVD) ustb = sma(obv, BBOBVD) + ssapma
plot(altb, title="Alt Bant", color=drawOBVBB ? color.blue:na) plot(ortab, title="Orta Bant", color=drawOBVBB ? color.lime:na) plot(ustb, title="Üst Bant", color=drawOBVBB ? color.blue:na)
|
|
|
|
valek55
Member
Offline
Activity: 380
Merit: 31
|
|
March 31, 2020, 12:32:16 PM |
|
Allah razı olsun hocam senden. ne kadar sevindirdin beni bir bilsen. Büyük kolaylık sağladın bana..
|
|
|
|
niko83 (OP)
|
|
March 31, 2020, 02:31:21 PM |
|
Allah razı olsun hocam senden. ne kadar sevindirdin beni bir bilsen. Büyük kolaylık sağladın bana..
Rica ederim!
|
|
|
|
niko83 (OP)
|
|
July 18, 2020, 12:51:15 PM Last edit: July 18, 2020, 03:07:24 PM by niko83 |
|
İstek üzerine şöyle bir şey karaladım. Çok yoğun olduğum için 5 dakikada şipşak yazdım, umarım formüllerde bir hata yoktur ve istenen şeyi doğru anlamışımdır. Bu kod RSI değerini kullanarak Double-EMA hesaplıyor: // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © niko_83 //@version=4 study("RSI DEMA", overlay=false)
rsrc = input(title="Kaynak", type=input.source, defval=close) rsi_len = input(title="RSI uzunluğu", defval=14) dema_len = input(title="DEMA uzunluğu", defval=21)
prsi = rsi(rsrc, rsi_len) pema = ema(prsi, dema_len) pdema = 2 * pema - ema(pema, dema_len)
plot(prsi, color=color.red) plot(pdema, color=color.yellow)
ust=input(70, "Üst Çizgi") alt=input(30, "Alt Çizgi") band1 = hline(ust) band0 = hline(alt) EDIT: Momentum lafını duyunca aklıma direk RSI geldi, meğer momentum ile kast edilen bildiğin momentummuş. Kod: // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © niko_83 //@version=4
study("Momentum DEMA", overlay=false)
msrc = input(title="Momentum Kaynağı", type=input.source, defval=close) mlen = input(title="Momentum Periyodu", defval=10, minval=1) dema_len = input(title="DEMA uzunluğu", defval=21, minval=1)
mom = msrc - msrc[mlen] pema = ema(mom, dema_len) pdema = 2 * pema - ema(pema, dema_len)
plot(mom, color=color.red, title="Momentum") plot(pdema, color=color.yellow, title="Momentum DEMA") Sanırım maksat hasıl oldu.
|
|
|
|
Holess
Sr. Member
Offline
Activity: 714
Merit: 316
The Experience Layer of the Decentralized Internet
|
|
October 27, 2020, 07:17:15 PM |
|
|
|
|
|
erdemdemir
Newbie
Offline
Activity: 1
Merit: 0
|
|
December 03, 2020, 11:15:30 AM |
|
Merhaba ındıkator konusunda destege ıhtıyacım var Ucretlı egıtım seklınde ya da ıstedıklerımı olusturma konusundna bana destek olabılecek bırısı var mı acaba?
|
|
|
|
alismo
Newbie
Offline
Activity: 1
Merit: 0
|
|
January 01, 2021, 08:08:36 PM |
|
Merhaba, ekteki koda al-sat sinyalleri nasıl ekleyebilirim acaba teşekkürler
//@version=4 study("Magic Trend", overlay=true)
CCI = input(14) ATR = input(5) Multiplier = input(1.5, title='ATR Multiplier') original = input(false, title='original coloring') colorBuy = #2DFF03 // Good sign for long trade colorSell = #ff0346 // Good sign for short trade
var float x = na var float swap = na var color swap2 = na var color swap3 = na var color swap4 = na
thisCCI = cci(close, CCI) lastCCI = nz(thisCCI[1])
bufferDelta = Multiplier * sma(tr,ATR) bufferDn = high + bufferDelta bufferUp = low - bufferDelta
if (thisCCI >= 0 and lastCCI < 0) bufferUp := bufferDn[1] if (thisCCI <= 0 and lastCCI > 0) bufferDn := bufferUp[1]
if (thisCCI >= 0) if (bufferUp < bufferUp[1]) bufferUp := bufferUp[1] else if (thisCCI <= 0) if (bufferDn > bufferDn[1]) bufferDn := bufferDn[1]
x := thisCCI >= 0 ? bufferUp : thisCCI <= 0 ? bufferDn : x[1] swap := x > x[1] ? 1 : x < x[1] ? -1 : swap[1] swap2 := swap == 1 ? color.lime:color.red swap3 := thisCCI >=0 ? color.lime : color.red swap4 := original ? swap3 : swap2
plot(x, color=swap4, transp=0, linewidth=2)
bullTrendMagic = swap4 == color.lime and swap4[1] == color.red bearTrendMagic = swap4 == color.red and swap4[1] == color.lime
|
|
|
|
CayberZ
Newbie
Offline
Activity: 2
Merit: 0
|
|
January 04, 2021, 06:02:59 PM |
|
Merhabalar. DMİ ve MFİ osilatörlerini tradingview de nasıl bir arada kullanabilirim ölçeklendirme sorunu yaşıyorum bunu pine editörde nasıl kullanışlı hale getirebilirim yardımcı olursanız sevinirim.
|
|
|
|
avkatbey
Newbie
Offline
Activity: 2
Merit: 0
|
|
January 06, 2021, 09:52:13 AM |
|
Allah razı olsun hocam senden. ne kadar sevindirdin beni bir bilsen. Büyük kolaylık sağladın bana..
Rica ederim! Merhaba, pine script dilini öğrenmeye çalışıyorum ve pine script v4 kitapcığı malum ingilizce , içerisinde çok fazla terim var ve benım de hiç yazılım bilgim yok . Bu sebeple eğitim almak istiyorum ama türkiyede eğitim veren birini bulamadım. Bu konuda ne yapmamı tavsiye edersiniz ?
|
|
|
|
CayberZ
Newbie
Offline
Activity: 2
Merit: 0
|
|
January 11, 2021, 02:25:31 PM |
|
Merhabalar. DMİ ve MFİ osilatörlerini tradingview de nasıl bir arada kullanabilirim ölçeklendirme sorunu yaşıyorum bunu pine editörde nasıl kullanışlı hale getirebilirim yardımcı olursanız sevinirim.
|
|
|
|
vincetcm
|
|
January 13, 2021, 08:44:48 PM |
|
Forumda bu tür bilgi paylaşımları görünce çok seviniyorum. Spekülasyonların bu kadar çok olduğu bir alanda kişilerin kendi analizlerini yapabildiği paylaşımlar daha da kıymetli oluyor. Paylaşımlarınızın devamını diliyorum.
Teşekkürler.
|
|
|
|
niko83 (OP)
|
|
February 17, 2021, 11:56:06 PM Last edit: February 18, 2021, 11:02:16 AM by niko83 |
|
Allah razı olsun hocam senden. ne kadar sevindirdin beni bir bilsen. Büyük kolaylık sağladın bana..
Rica ederim! Merhaba, pine script dilini öğrenmeye çalışıyorum ve pine script v4 kitapcığı malum ingilizce , içerisinde çok fazla terim var ve benım de hiç yazılım bilgim yok . Bu sebeple eğitim almak istiyorum ama türkiyede eğitim veren birini bulamadım. Bu konuda ne yapmamı tavsiye edersiniz ? İnternette epey İngilizce kaynak var ama maalesef Türkçe kaynak konusunda hiç bilgim yok.
|
|
|
|
awazelal02
Newbie
Offline
Activity: 1
Merit: 0
|
|
July 02, 2022, 02:12:57 PM |
|
merhaba bir koda multitime yani grafik üzerinde farklı zaman çizimlerinde görüntü almak için neler yapılabilir.
|
|
|
|
ziza11
Newbie
Offline
Activity: 2
Merit: 0
|
|
February 26, 2024, 03:35:29 PM |
|
Bildiğiniz üzere Tradingview'in ücretsiz versiyonu belirli bir sayıdan fazla gösterge eklemenize izin vermiyor. Üstelik hazır olarak sunulan göstergeler her zaman dişimize göre olmuyor. Bu sınırlamanın kısmen de olsa etrafından dolanmanın basit ve eğlenceli bir yolu var. Tradingview öğrenmesi gayet kolay ve bir o kadar da kullanışlı olan Pine adlı bir betik dili içeriyor. Bu dili kullanarak hemen her türlü göstergeyi kendi meşrebinize göre ayarlayıp grafiğe ekleyebilir, sürekli kullandığınız birkaç indikatörü bir başlık altında bir araya getirerek başka indikatörlere yer açabilirsiniz. Mesela bir zamanlar benim de yaptığım gibi, 3-5 tane hareketli ortalama ve Ichimoku bulutunu sürekli kullanıyorsanız, bütün bunları tek bir başlık altında toplayabilirsiniz: //@version=4 study(title="Ichimoku Bulutu ve Beşli Hareketli Ortalama", shorttitle="Crypto Ichimoku + Beşli-MA ", overlay=true)
//Hareketli Ortalama Girdileri drawsma = input(true, title = "SMA Çizilsin mi?") ma_1p = input(9, title="MA1") ma_2p = input(21, title="MA2") ma_3p = input(55, title="MA3") ma_4p = input(100, title="MA4") ma_5p = input(150, title="MA5") ma_6p = input(200, title="MA6")
//Ichimoku Girdileri drawichimoku = input(true, "Ichimoku Çizilsin mi?") conversionPeriods = input(20, minval=1, title="Tenkan-Sen Devir Sayısı"), basePeriods = input(60, minval=1, title="Kijun-Sen Devir Sayısı") laggingSpan2Periods = input(120, minval=1, title="Chikou Span Devir Sayısı"), displacement = input(30, minval=1, title="Öteleme")
//Hesaplar ma_1 = sma(close, ma_1p) ma_2 = sma(close, ma_2p) ma_3 = sma(close, ma_3p) ma_4 = sma(close, ma_4p) ma_5 = sma(close, ma_5p) ma_6 = sma(close, ma_6p)
donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods)
//Ichimoku çizimi plot(conversionLine, color=drawichimoku ? #0496ff : na, title="Tenkan-Sen") plot(baseLine, color=drawichimoku ? #991515 : na, title="Kijun-Sen") plot(close, offset = -displacement, color=drawichimoku ? #459915 : na, title="Chikou-Span") p1 = plot(leadLine1, offset = displacement, color=drawichimoku ? color.green : na, title="Senkou A") p2 = plot(leadLine2, offset = displacement, color=drawichimoku ? color.red : na, title="Senkou B") fill(p1, p2, color = leadLine1 > leadLine2 ? color.green : color.red, transp = drawichimoku ? 70:100)
//SMA Çizimi plot(ma_1, color=drawsma ? color.yellow : na, title="MA1") plot(ma_2, color=drawsma ? color.orange : na, title="MA2") plot(ma_3, color=drawsma ? color.fuchsia : na, title="MA3") plot(ma_4, color=drawsma ? color.red : na, title="MA4") plot(ma_5, color=drawsma ? color.blue : na, title="MA5") plot(ma_6, color=drawsma ? color.purple : na, title="MA6")
Kodu kısaca özetleyecek olursak: - ikinci satırda koda bir isim veriyoruz. Tabloda görünecek olan isim shorttitle kısmı.
- ardından SMA eğrilerinin tümünün çizimini devre dışı bırakmak veya açmak için kullanabileceğimiz drawsma adlı bir değişken oluşturuyoruz.
- ardından ma_1p ile başlayan altı farklı değişken oluşturup, bunlara 9 ile başlayıp 200 ile biten farklı varsayılan değerler atıyoruz. Bunlar hareketli ortalama hesaplanırken kullanılan devir (mum) sayıları olacak.
- aynı prosedürü Ichimoku bulutunu çizmek için gereken değişkenler için uyguluyoruz.
- atadığımız bu değişkenler input fonskiyonuna verildiği için kullanıcılar indikatörün ayarlar kısmından bu varsayılan değerleri kolayca değiştirebilecekler.
- ardından SMA ve Ichimoku için gerekli hesaplamaları yaparak çıkan sonuçları değişkenlere depoluyoruz.
- son olarak da plot fonksiyonu kullanarak elde ettiğimiz verileri tablo üzerine çizdiriyoruz.
6 değil 7 tane hareketli ortalama çizdirmek istiyorsanız yukarıdaki patterni kullanarak önce girdi kısmına ma_7p, sonra hesap kısmına ma_7, sonra da çizim kısmına plot(ma_7) eklemeniz yeterli olacaktır. Ayarlar kısmı karmakarışık olmasın diye her hareketli ortalama için ayrı bir aç kapa düğmesi koymadım ama eğer bunu eklemek isterseniz önce bunun için bir değişken oluşturmanız gerekir. Mesela girdiler kısmına şunu ekleyebilirsiniz: drawsma1 = input(true, title = "SMA1 Çizilsin mi?") Ardından ma_1 adlı değişkeni grafiğe ekleyen plot fonksiyonunu şu şekilde değiştirebilirsiniz: plot(ma_1, color=(drawsma and drawsma1) ? color.yellow : na, title="MA1") Burada kullandığımız soru işareti sayesinde plot fonksiyonuna renk ataması yapmadan önce drawsma ve drawsma1 değişkenlerinin her ikisinin birden değerine bakmasını ve her ikisi birden sıfırdan farklı ise yani boolean true değerini içeriyorsa sarı renk kullanmasını, aksi takdirde renk kullanmamasını söylemiş oluyoruz, böylece SMA çizimini toptan kapatırsak ya da yalnızca SMA1 çizimini kapatırsak pratikte çizim yaptırmamış oluyoruz. Benzer bir tekniği alttaki satırda da kullanıyoruz, burada ise renk ile değil, şeffaflık ayarı ile oynuyoruz: fill(p1, p2, color = leadLine1 > leadLine2 ? color.green : color.red, transp = drawichimoku ? 70:100) Eğer kullanıcı drawichimoku değişkenine depolanmış olan varsayılan değeri değiştirirse, yani kutudaki tiki kaldırırsa bulutun çizimi %70 değil %100 şeffaflık ile yapılıyor, dolayısıyla bulut görünmez oluyor. Bu parametreyi kullanarak plot ile yapılan tüm çizimlerdeki varsayılan değerleri kendi tercihlerinize göre değiştirebilirsiniz ya da indikatörün ayarlar kısmındaki style tabını açarak aynı sonucu elde edebilirsiniz. Mesela %30 şeffaflıkta çizim yapmak istiyorsanız: plot(ma_1, color=drawsma ? color.yellow : na, title="MA1", transp=30) Pine ile daha birçok şey yapmak mümkün. Öğrenmek de hem basit, hem de gayet eğlenceli. Hepinize tavsiye ederim. Bu arada... İnceleyince zaten fark edersiniz ama olur da ilk görüşte bu ne biçim Ichimoku diye şaşırırsanız; varsayılan değerleri değil, kripto için genellikle tercih edilen değerleri kullandım. EDIT: İşi iyice abartıp, çoklu indikatörümüze Bollinger Bands, Parabolic SAR ve EMA gibi önümüze gelen her şeyi eklemek istersek aşağıdaki gibi bir script elde edebiliriz. Bu scriptte varsayılan olarak hiçbir çizim açık değil, görmek istediklerinizi ayarlar kısmına girip açmanız gerekecek. // © niko_83 //@version=4 study(title="Ichimoku + BB + Beşli Hareketli Ortalama + SAR", shorttitle="Ichimoku + BB + Beşli-MA + SAR", overlay=true)
//Hareketli Ortalama Girdileri drawma = input(false, title = "MA Çizilsin mi?") ma_tipi = input(defval="SMA", title='Hareketli Ortalama Türü', options=["SMA","EMA"])
ma_1p = input(9, title="MA1") ma_2p = input(21, title="MA2") ma_3p = input(55, title="MA3") ma_4p = input(100, title="MA4") ma_5p = input(150, title="MA5") ma_6p = input(200, title="MA6")
//Ichimoku Girdileri drawichimoku = input(false, "Ichimoku Çizilsin mi?")
conversionPeriods = input(20, minval=1, title="Tenkan-Sen Devir Sayısı"), basePeriods = input(60, minval=1, title="Kijun-Sen Devir Sayısı") laggingSpan2Periods = input(120, minval=1, title="Chikou Span Devir Sayısı"), displacement = input(30, minval=1, title="Öteleme")
//BB Girdileri drawBB = input(false, title = "BB Çizilsin mi?")
BBD = input(20, minval=1, title="BB Devri") BBSS = input(2.0, minval=0.001, title="BB Standart Sapma")
// SAR girdileri drawsar=input(false, title = "SAR Çizilsin mi?")
baslangic = input(title="Başlangıç", type=input.float, step=0.001, defval=0.02) artis = input(title="Artış", type=input.float, step=0.001, defval=0.02) maksimum = input(title="Maksimum", type=input.float, step=0.01, defval=0.2)
//SMA Hesapları ma_1 = ma_tipi=="EMA" ? ema(close, ma_1p) : sma(close, ma_1p) ma_2 = ma_tipi=="EMA" ? ema(close, ma_2p) : sma(close, ma_2p) ma_3 = ma_tipi=="EMA" ? ema(close, ma_3p) : sma(close, ma_3p) ma_4 = ma_tipi=="EMA" ? ema(close, ma_4p) : sma(close, ma_4p) ma_5 = ma_tipi=="EMA" ? ema(close, ma_5p) : sma(close, ma_5p) ma_6 = ma_tipi=="EMA" ? ema(close, ma_6p) : sma(close, ma_6p)
//Ichimoku Hesapları donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods)
//Bollinger Band Hesapları ssapma = BBSS * stdev(close, BBD) alt = sma(close, BBD) - ssapma orta = sma(close, BBD) ust = sma(close, BBD) + ssapma
// SAR Hesaplama sarplot = sar(baslangic, artis, maksimum)
//Ichimoku çizimi plot(conversionLine, color=drawichimoku ? #0496ff : na, title="Tenkan-Sen") plot(baseLine, color=drawichimoku ? #991515 : na, title="Kijun-Sen") plot(close, offset = -displacement, color=drawichimoku ? #459915 : na, title="Chikou-Span") p1 = plot(leadLine1, offset = displacement, color=drawichimoku ? color.green : na, title="Senkou A") p2 = plot(leadLine2, offset = displacement, color=drawichimoku ? color.red : na, title="Senkou B") fill(p1, p2, color = leadLine1 > leadLine2 ? color.green : color.red, transp = drawichimoku ? 70:100)
//SMA Çizimi plot(ma_1, color=drawma ? color.yellow : na, title="MA1") plot(ma_2, color=drawma ? color.orange : na, title="MA2") plot(ma_3, color=drawma ? color.fuchsia : na, title="MA3") plot(ma_4, color=drawma ? color.red : na, title="MA4") plot(ma_5, color=drawma ? color.blue : na, title="MA5") plot(ma_6, color=drawma ? color.purple : na, title="MA6")
// BB Çizimi plot(alt, title="Alt", color=drawBB ? color.blue:na) plot(orta, title="Orta", color=drawBB ? color.lime:na) plot(ust, title="Üst", color=drawBB ? color.blue:na)
// SAR Çizimi plot(sarplot, style = plot.style_cross, color=drawsar ? color.orange:na)
[/quote Hocam Chatgpt ye bir indikatör yazdırdım hata verdi. Son mum kapanışı önceki 25 mumun kapanışından yüksek kapattıysa al, tersi olursa sat versin. Bunu bir zahmet kodlama imkanı var mı?
|
|
|
|
|