uhh evet x2 olacak dediğiniz gibi kayma doğru gibi.
Printable View
Flat lı işlemlerde hatalı hesaplamalar var gibi sadece.
valla orhan hocam ben bileşik sistem getiri eğrisini çıktıgından beri kullanıyorum.
Onun haricinde de tonlarca excelde farklı simulasyonlar kaymalar vesaireler denedim.
bileşke kısmı benim istediğim şekilde çalışıyor.
performans kısmı biraz kafa bulandırıyor. Kayma girilemediği için o konuda benimde bazan kafam gidip geliyor performans kısmına bakınca ulan kaymayı ikiyle çarpıpdamı girecektim diye. Performans her işlemi saymak yerine her çift işlemi sayıyor.
birde şöyle farklılıklar var tabi bileşke getiri kısmına tarihi girmenize rağmen ilk başta sizi flat başlatıyor. Yani başlar başlamaz sinyali yansıtmıyor.
performans kısmındada aynı sey geçerli olabilir hatuırlamıyorum.
neyse yani kısaca aslında çok önemlibirşey olmadıgı için ben pek önemsemiyorum.
ben uzun veride kayma kom girdikten sonra sistemin pf si kz eğrisindeki sapmalar düşükse yıllık aylık bazda yeterli gözüyle bakıyorum.
bir sorun yok ya yani ben yıllardır kullandım bunları açıkcası bır sorun gormedım.
görsem inanın ilk ben soylerdım.
herkesede tavsiyem performans ıvır zıvır gibi değerlere bileşke sistem getiri eğrisinden kayma girerek bakmaları yönünde zaten.
asıl geliştirilmesi gereken yerin optimizasyon oldugunu düşünüyorum. sadece toplam getiriye odaklanıyor kayma giremediğin için saçma sapan sıstemler en üstte yer alıyor. getiri eğrisinin linear versiyonuna optımıze edemıyorsun vesair.
================================================== ===
//author KıvanÇ @fr3762 on twitter
//creator @mavilim0732 on twitter
study("TrendStop", overlay=true)
pr1=input(21, "EMA period")
pr2=input(2, "normal/vwap", minval=1, maxval=2)
len = input(14, title="DIRECTIONAL IND. Length")
up = change(high)
down = -change(low)
truerange = rma(tr, len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
M1=ema(close,pr2)
MACDfastLength = input(12)
MACDslowlength = input(26)
MACD = ema(close, MACDfastLength) - ema(close, MACDslowlength)
K1=iff(pr2<2, M1, sum(close*volume, pr1)/sum(volume, pr1))
K2=valuewhen(MACD>0 and plus>minus, K1, 0)
K3=K2*0.975
plot(K2, linewidth=2, color=green)
plot(K3, linewidth=3, color=red, title="Stop")
================================================== ==
Kıvanç hocanın TrendStop'u çevirebilir misiniz? Teş. ederim şimdiden..
Flatlarda sıkıntı varsa maxdd yanlıştır. O zaman aylardır yanlış yolda yürüyorum :). Vade geçişinde flat kullananlarda büyük bir farklılık yoktur inşallah ?
Arkadaşlar otomatik login olmuyor robot , karakter hatasımı yapıyorum?Alıntı:
Sistem.PortfoyLogin("HESAP NO, KURUM","KULLANICI ADI","ŞİFRE");
Vade geçişlerinde problem yok gibi Sn Caglar'ın dediği gibi ama flatlı sistem kurarken sıkıntı büyük.
https://i.hizliresim.com/v6Lj6R.png
https://i.hizliresim.com/grAOP2.png
Aynı sistem ama farklı rakamlar çıkıyor.
bir sorun yok, daha önce yazdıklarımı dikkate almasın kimse :)
maxdd de minik bir kayma olabilir.
detay tabloyu excele atın.
bakiye kolonu için şöyle bir kolon yapın
=MAK($H$1:$H2)-H2
sonrada bu kolonun MAK ını alın. resimdeki M kolonunun en yüksek değeri maxdd dir.
https://image.prntscr.com/image/JN9D...zEtGpDOXqw.png
https://prnt.sc/lw138u
selamlar arkadaşlar,
nerde hata yapıyyorum? karakter hatası diyor ve ekran görüntüsünü mail atmıyor.
sinyal verdiğinde robot / sistem mail atın ve/veya belirli zamana mail atsın istiyorum.
yardımcı olabilir misisniz rica etsem
if (Sistem.ZamanKontrolDakika("MAIL01") >= 1) // 1 dakikada bir mail at
{
Sistem.ZamanKontrolGuncelle("MAIL01");
Sistem.GoruntuKaydet(“C:\\ideal\\Test.pngâ€);
var MailServer = "smtp.gmail.com";
Sistem.MailServerAdres = MailServer;
Sistem.MailServerPort = 587;
Sistem.MailKonu = "Robotum bilgilendirme";
Sistem.MailMetin = Mesaj;
Sistem.MailGonderenAdres = "xxxxxxxxxxxxxxxxxxxxxx";
Sistem.MailGonderenSifre = "xxxxxxxxxxxxxx";
Sistem.MailDosyaEkle(“C:\\ideal\\Test.pngâ€);
Sistem.MailAliciEkle("xxxxxxxxxxxxxxxxxxxxxx");
Sistem.MailGonder();
}
Kod:if (Sistem.ZamanKontrolDakika("MAIL01") >= 1) // 1 dakikada bir mail at
{
Sistem.ZamanKontrolGuncelle("MAIL01");
Sistem.GoruntuKaydet("C:\\ideal\\Test.png");
var MailServer = "smtp.gmail.com";
Sistem.MailServerAdres = MailServer;
Sistem.MailServerPort = 587;
Sistem.MailKonu = "Robotum bilgilendirme";
Sistem.MailMetin = Mesaj;
Sistem.MailGonderenAdres = "xxxxxxxxxxxxxxxxxxxxxx";
Sistem.MailGonderenSifre = "xxxxxxxxxxxxxx";
Sistem.MailDosyaEkle("C:\\ideal\\Test.png");
Sistem.MailAliciEkle("xxxxxxxxxxxxxxxxxxxxxx");
Sistem.MailGonder();
}
teşekkür ederim.
gmail güvenlik uyarısı verdi. her ne kadar bunun için mail adresi almıs olsam da şifrenin vs açıkta olması sanırım iyi bir fikir deil. ideal'in bunu düşünmüş olması lazım, kendisinin bir sistem maili tanıttırması ve ordan göndermesi lazm.
Grafiğe yazdırmak için aşağıdaki kodu kullanıyorum. Performans tablosundaki doğru gözüküyor. Aşağıdaki kod bende bazen böyle yanlış sonuç veriyor.
Alıntı:
Sistem.ZeminYazisiEkle("Toplam İşlem Sayısı = " + " " + Sistem.GetiriToplamIslem.ToString("0"),1,170,20,Re nk2, "Thoma",10);
Portföye hesabı ekleyip normal login olabiliyor musunuz?
HesapNo olarak meksadaki "kullanıcı adı" kullanılıyor.
Sistem koduyla login için;
Sistem.PortfoyLogin("KullanıcıAdı, Meksa Yatırım","Şifreniz"," ");
komutu kullanılır. PIN/Parola yok Meksa'da, o yüzden o alan " " şeklinde boş gönderilir.
tr, change, fixnan, rma gibi tradingview komutlarını doğru yorumladıysam, böyle bir şey idealcesi;
(kodda volume kullanılıyor, düzey1+ lisans gerektirir)
Kod:var pr1 = 21;
var pr2 = 2;
var len = 14;
var C = Sistem.GrafikFiyatSec("Kapanis");
var H = Sistem.GrafikFiyatSec("Yuksek");
var L = Sistem.GrafikFiyatSec("Dusuk");
var Vol = Sistem.GrafikFiyatSec("Lot");
var up = Sistem.Liste(0);
var down = Sistem.Liste(0);
var tr = Sistem.Liste(0);
var truerange = Sistem.Liste(0);
var x = Sistem.Liste(0);
var y = Sistem.Liste(0);
var rmax = Sistem.Liste(0);
var rmay = Sistem.Liste(0);
var plus = Sistem.Liste(0);
var minus = Sistem.Liste(0);
var Hcm2 = Sistem.Liste(0);
var k1 = Sistem.Liste(0);
var k2 = Sistem.Liste(0);
var k3 = Sistem.Liste(0);
var M1 = Sistem.MA(C, "Exp", pr2);
var MACD = Sistem.MACD(C, 12, 26);
for (int i = 1; i < Sistem.BarSayisi; i++)
Hcm2[i] = Vol[i] * C[i];
var sum1 = Sistem.Sum(Hcm2,pr1);
var sum2 = Sistem.Sum(Vol,pr1);
for (int i = 10; i < Sistem.BarSayisi; i++)
{
up[i] = H[i] - H[i-1];
down[i] = -(L[i] - L[i-1]);
tr[i] = Math.Max(Math.Max(H[i]-L[i],Math.Abs(H[i]-C[i-1])),Math.Abs(L[i]-C[i-1]));
truerange[i] = truerange[i-1] != 0 ? (tr[i] + (len - 1) * truerange[i-1]) / len : 1;
x[i] = up[i] > down[i] && up[i] > 0 ? up[i] : 0;
y[i] = down[i] > up[i] && down[i] > 0 ? down[i] : 0;
rmax[i] = rmax[i-1] != 0 ? (x[i] + (len - 1) * rmax[i-1]) / len : 1;
rmay[i] = rmay[i-1] != 0 ? (y[i] + (len - 1) * rmay[i-1]) / len : 1;
plus[i] = truerange[i] != 0 ? 100 * rmax[i] / truerange[i]: plus[i-1];
minus[i] = truerange[i] != 0 ? 100 * rmay[i] / truerange[i] : minus[i-1];
k1[i] = pr2 < 2 ? M1[i] : sum1[i] / sum2[i];
k2[i] = MACD[i] > 0 && plus[i] > minus[i] ? k1[i] : k2[i-1];
k3[i] = k2[i] * 0.975f;
}
Sistem.Cizgiler[0].Deger = k2;
Sistem.Cizgiler[1].Deger = k3;
merhaba,
özellikle ideal kurabileceğim bir uzak erişimli sanal sunucu kiralamak istiyorum. daha önce bir kaçtane denedim. özellikle tavsiye edeceğiniz bir yer var mı?
sayın ideal yetkilileri
bir enstrümanda derinlik pencersi kapalı iken
kademeli emir penceresindeki derinlikler görünmüyor
yani kademeli emir penceresindeki derinlik bilgisini görmek için derinlik penceresininde muhakkak açık olması gerekiyor
Değerli sistem üstadları,
Sezai Bey,
İdeal'de herhangi bir sistemin al -sat koşuluna ilave ; ay açılış rakamının üstünde kalması koşununu nasıl ilave edebiliriz ?
Veya hafta açılışı..
Şu kod çalışabilir.
Test edin.
Kod:
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
var TOMA = Sistem.TOMA(30, 0.5);
var EMA = Sistem.MA(C, "Exp", 30);
var AyBaslangicList = Sistem.Liste(0);
for (int i = 1; i < Sistem.BarSayisi; i++)
AyBaslangicList[i] = (V[i].Date.Day < V[i - 1].Date.Day) ? V[i].Open : AyBaslangicList[i - 1];
var SonYon = "";
for (int i = 1; i < Sistem.BarSayisi; i++)
{
if (C[i] > AyBaslangicList[i] && EMA[i] > TOMA[i] && SonYon != "A")
{
SonYon = "A";
Sistem.Yon[i] = "A";
}
if (C[i] < AyBaslangicList[i] && EMA[i] < TOMA[i] && SonYon != "S")
{
SonYon = "S";
Sistem.Yon[i] = "S";
}
}
Sistem.Cizgiler[0].Deger = TOMA;
Sistem.Cizgiler[1].Deger = EMA;
Sistem.Cizgiler[2].Deger = AyBaslangicList;
Kasım ayında servet yapmış.
Emlak hocanın bahsettiği trend-follower bu olsa gerek
https://i.hizliresim.com/k9gDbq.png
HAFTA AÇILIŞ
Kod:
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
var TOMA = Sistem.TOMA(30, 0.5);
var EMA = Sistem.MA(C, "Exp", 30);
var HaftaBaslangicList = Sistem.Liste(0);
for (int i = 1; i < Sistem.BarSayisi; i++)
HaftaBaslangicList[i] = (V[i].Date.DayOfWeek < V[i - 1].Date.DayOfWeek) ? V[i].Open : HaftaBaslangicList[i - 1];
var SonYon = "";
for (int i = 1; i < Sistem.BarSayisi; i++)
{
if (C[i] > HaftaBaslangicList[i] && EMA[i] > TOMA[i] && SonYon != "A")
{
SonYon = "A";
Sistem.Yon[i] = "A";
}
if (C[i] < HaftaBaslangicList[i] && EMA[i] < TOMA[i] && SonYon != "S")
{
SonYon = "S";
Sistem.Yon[i] = "S";
}
}
Sistem.Cizgiler[0].Deger = TOMA;
Sistem.Cizgiler[1].Deger = EMA;
Sistem.Cizgiler[2].Deger = HaftaBaslangicList;
cevap için tesekkur ederim.
TOMA yerine kendi sistem ismini mi yazmamız gerekyor, kusura bakmayın ben hiç anlamıyorum yazılım dilinden
Burayı ekleyin
var HaftaBaslangicList = Sistem.Liste(0);
for (int i = 1; i < Sistem.BarSayisi; i++)
HaftaBaslangicList[i] = (V[i].Date.DayOfWeek < V[i - 1].Date.DayOfWeek) ? V[i].Open : HaftaBaslangicList[i - 1];
Alış şartına
if (C[i] > HaftaBaslangicList[i] && EMA[i] > TOMA[i] && SonYon != "A")
Satış Şartına
if (C[i] < HaftaBaslangicList[i] && EMA[i] < TOMA[i] && SonYon != "S")
sn Tiberius,
Sistem sinyal ürettiğinde bar kapanışını beklemeden,
sinyal anındaki fiyat değerini Sistem.Seviye ye nasıl atarız.
KEP kullanımı çok pratik yalnız pasifteki emri "aktif" kademeye sürükle bırak yaptığınızda sebest fiyatla gidiyor sırf bu yüzden bekleyen emirlerden emri bulup çekmeye çalışıyoruz arada geçen zaman çok büyük kayıp :28:
Merhaba,
Belli bir şart gerçekleştiği bardan sonraki 20 bar içerisinde fiyat en yüksek nereye çıkmış, en düşük neyi görmüş bunu gösterecek ve şartın gerçekleştiği bar ile ondan sonraki 20 bar içerisinde gördüğü en yüksek fiyat arasındaki yüzde farkı gösterecek bir formülü nasıl yazabilirim. Yardımcı olabilir misiniz?
float Fiyat = 0;
string SonYon = "";
if ( SonYon != "A" && AL ŞARTINIZ )
{Sistem.Yon[i] = "A"; Fiyat=şart gerçekleşen fiyat ; Sistem.Seviye[i] = Fiyat ; SonYon = "A";
}
if ( SonYon != "S" && sat şartınız )
{Sistem.Yon[i] = "S"; Fiyat=şart gerçekleşen fiyat ; Sistem.Seviye[i] = Fiyat ; SonYon = "S";
}
kalan kısmını kendinize göre ayarlarsınız.
hayırlı akşamlar fiyat takip cizgisi nasıl cektirebilirim