merhaba aşağıda tradingviewde kullandığım solar winds indikatörünü idealdata ya çevirebilirmisiniz.
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © theic
//@version=4
study("Solar Winds")
period = input(35, title="Period")
solar(per) =>
highval = highest(high, per)
lowval = lowest(low, per)
price = (high + low) / 2
val1 = 0.0
val1 := 0.66 * ((price - lowval) / (highval - lowval) - 0.5) + 0.67 * nz(val1[1])
val2 = val1 > 0.99 ? 0.999 : val1 < -0.99 ? -0.999 : val1
sol = 0.0
sol := 0.5 * log((1 + val2) / max(1 - val2, 0.001)) + 0.5 * nz(sol[1])
solar_buff = solar(period)
signal_up = false
signal_down = false
level = 0
msg_text = "None"
color_hist = (solar_buff > level ? color.green : color.red)
if nz(solar_buff[1]) < level and solar_buff > level
signal_up := true
color_hist := color.yellow
if nz(solar_buff[1]) > level and solar_buff < level
signal_down := true
color_hist := color.yellow
alertcondition(condition = signal_up, message = "{{ticker}}, Signal UP", title = "Solar Cross Up")
alertcondition(condition = signal_down, message = "{{ticker}}, Signal DOWN", title = "Solar Cross Down")
plot(series = solar_buff, style = plot.style_histogram, color = color_hist, linewidth = 4)
plot(series = solar_buff, style = plot.style_line, color = color_hist, linewidth = 4)
PHP Code:
var v = Sistem.GrafikVerileri;
int count = v.Count;
int period = 20;
var hh = Sistem.HHV(period);
var ll = Sistem.LLV(period);
var price = Sistem.GrafikFiyatSec("OrtaNokta");
var val1 = Sistem.Liste(count);
var val2 = Sistem.Liste(count);
var sol = Sistem.Liste(count);
for (int i = 1; i < count; i++)
{
val1[i] = hh[i] == ll[i] ? val1[i - 1] : 0.66f * ((price[i] - ll[i]) / (hh[i] - ll[i]) - 0.5f) + 0.67f * val1[i - 1];
val2[i] = val1[i] > .99f ? .999f : val1[i] < -.99f ? -.999f : val1[i];
sol[i] = .5f * (float)(Math.Log((1 + val2[i]) / Math.Max(1 - val2[i], .001f))) + .5f * sol[i - 1];
}
var colors = new List<Color>(count);
for (int i = 0; i < count; i++)
if (sol[i] > 0) colors.Add(Color.Green);
else colors.Add(Color.Red);
Sistem.Cizgiler[0].Deger = sol;
Sistem.Cizgiler[0].RenkListesi = colors;
Sistem.Cizgiler[0].Stil = 5;
Merhaba arkadaşlar. Algoritma konusunda acemiyim. Tradingview'de bir şeyler yapabiliyorum. Ancak İdeal Robot bilgim çok zayıf. Tradingview'de Tilson T3 isimli kısa kodlu bir gösterge var. Bunu iDEAL'e çevirebilecek arkadaşa şimdiden çok teşekkür ederim. "Balık tutmayı öğrenmem" açısından sonraki çalışmalarım için nasıl yapıldığını, kolay bir yolu varsa tarif ederseniz memnun olurum.
İyi günler, hayırlı kazançlar...
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © StalexBot
//@version=4
study("Tilson T3", overlay=true)
b = input(title="Factor", defval=0.7, type=input.float)
c1 = -b*b*b
c2 = 3*b*b+3*b*b*b
c3 = -6*b*b-3*b-3*b*b*b
c4 = 1+3*b+b*b*b+3*b*b
//T3 calcs end
t3(len) => c1 * ema(ema(ema(ema(ema(ema(close, len), len), len), len), len), len) + c2 * ema(ema(ema(ema(ema(close, len), len), len), len), len) + c3 * ema(ema(ema(ema(close, len), len), len), len) + c4 * ema(ema(ema(close, len), len), len)
t3plot = t3( input(title="Period", defval=7))
linewidth = input(title="Linewidth", defval=3)
colorsetting = input(title="Solid color", defval=false, type=input.bool)
plot(t3plot, color = colorsetting ? color.aqua : t3plot > t3plot[1] ? color.green : color.red, linewidth=linewidth)
/////////// Tillson_T3
var period = 9;
float a = 0.71f;
var C = Sistem.GrafikFiyatSec("Kapanis");
var H = Sistem.GrafikFiyatSec("Yuksek");
var L = Sistem.GrafikFiyatSec("Dusuk");
var x = Sistem.Liste(0);
for (int i=1; i < Sistem.BarSayisi; i++)
x[i] = (H[i]+L[i]+2*C[i])/4;
var e1 = Sistem.MA(x, "Exp", period);
var e2 = Sistem.MA(e1, "Exp", period);
var e3 = Sistem.MA(e2, "Exp", period);
var e4 = Sistem.MA(e3, "Exp", period);
var e5 = Sistem.MA(e4, "Exp", period);
var e6 = Sistem.MA(e5, "Exp", period);
var c1 = -a * a * a;
var c2 = 3 * a * a + 3 * a * a * a;
var c3 = -6 * a * a - 3 * a -3 * a * a * a;
var c4 = 1 + 3 * a + a * a * a + 3 * a * a;
var T3 = Sistem.Liste(Sistem.BarSayisi, 0);
for (int i = 1; i<Sistem.BarSayisi; i++)
T3[i] = c1 * e6[i] + c2 * e5[i] +c3 * e4[i] + c4 * e3[i];
Sistem.Cizgiler[0].Deger = T3;
Sistem.Cizgiler[0].Aciklama = "T3";
Bear_Bull
@BearBull26
Hızlı ve olumlu cevabınız için çok teşekkür ederim. Bu kod ile İdeal'de sistem oluşturduğumda bir hata mesajı çıkıyor (DerlemeHatası):
c:\Users\mkara\AppData\Local\Temp\04pdcrm0.0.cs(12 ,45) : error CS1010: Sabitte satır başı karakteri
c:\Users\mkara\AppData\Local\Temp\04pdcrm0.0.cs(12 ,45) : error CS1012: Karakter sabiti değerinde çok fazla karakter var
c:\Users\mkara\AppData\Local\Temp\04pdcrm0.0.cs(12 ,18) : error CS1514: { bekleniyor
c:\Users\mkara\AppData\Local\Temp\04pdcrm0.0.cs(12 ,18) : error CS1519: class, struct veya interface üyesi bildiriminde geçersiz '-' belirteci
c:\Users\mkara\AppData\Local\Temp\04pdcrm0.0.cs(12 ,19) : error CS1520: Yöntemin bir dönüş türü olmalıdır
c:\Users\mkara\AppData\Local\Temp\04pdcrm0.0.cs(12 ,45) : error CS1001: Tanımlayıcı bekleniyor
Çözüm için tekrar yardım lütfen...
hata yok
kopyala yapıştırda eksik almış olabilirsiniz.
Kod://///////// Tillson_T3 var period = 9; float a = 0.71f; var C = Sistem.GrafikFiyatSec("Kapanis"); var H = Sistem.GrafikFiyatSec("Yuksek"); var L = Sistem.GrafikFiyatSec("Dusuk"); var x = Sistem.Liste(0); for (int i=1; i < Sistem.BarSayisi; i++) x[i] = (H[i]+L[i]+2*C[i])/4; var e1 = Sistem.MA(x, "Exp", period); var e2 = Sistem.MA(e1, "Exp", period); var e3 = Sistem.MA(e2, "Exp", period); var e4 = Sistem.MA(e3, "Exp", period); var e5 = Sistem.MA(e4, "Exp", period); var e6 = Sistem.MA(e5, "Exp", period); var c1 = -a * a * a; var c2 = 3 * a * a + 3 * a * a * a; var c3 = -6 * a * a - 3 * a -3 * a * a * a; var c4 = 1 + 3 * a + a * a * a + 3 * a * a; var T3 = Sistem.Liste(Sistem.BarSayisi, 0); for (int i = 1; i<Sistem.BarSayisi; i++) T3[i] = c1 * e6[i] + c2 * e5[i] +c3 * e4[i] + c4 * e3[i]; Sistem.Cizgiler[0].Deger = T3; Sistem.Cizgiler[0].Aciklama = "T3";![]()
Bear_Bull
@BearBull26
ideal içine indikatör olarak konulmuş
kod yazmaya da gerek kalmamış
/////////// Tillson_T3
Kod:var T3 = Sistem.TillsonT3(9, 0.618) ; Sistem.Cizgiler[0].Deger = T3; Sistem.Cizgiler[0].Panel = 1; Sistem.Cizgiler[0].Aciklama = "T3";
Bear_Bull
@BearBull26
Yer İmleri