viop artık 24 saat hadi hayırlı olsun :he:
Printable View
viop artık 24 saat hadi hayırlı olsun :he:
Tarih belli degil sanirim belli bir süre test sürüşü yapacaklar
Endeks için olumsuz bulsamda dolar tl de bir miktar işlem yapacamhttps://uploads.tapatalk-cdn.com/201...573854ef84.jpg
Anlaşıldı.gunduz milleti soymak yetmedi gecede başladılar.:()
M1453 cihazımdan hisse.net mobile app kullanarak gönderildi.
Erhan RSI yi al-sat da sevmesemde sert hareketlerde flat olmada başarılı bu şablon işine yarayacaktır al-sat ve flat olma degerlerini kendine göre yaz RSI AL-SAT YAPIYOR RRR FLAT OLUYOR
https://resmim.net/f/Iq3pmw.jpg
Alıntı:
var Veriler = Sistem.GrafikVerileri;
var RSI = Sistem.RSI(14);
var RRR = Sistem.RSI(28); // FLATTA KULLANILACAK İNDİKATÖR ERHAN
var alsayac = 0;
var satsayac = 0;
var SonYon="";
for (int i = 1; i < Veriler.Count; i++)
{
//RSI(50) 70'in üstüne çıktı geri indi kontrolü
if (RRR[i] > 68)
alsayac = 1;
if (RRR[i] < 66 && alsayac == 1 )
alsayac = 2;
//RSI(50) 30'un altına indi üstüne geri çıktı kontrolü
if (RRR[i] < 32)
satsayac = 1;
if (RRR[i] > 34 && satsayac == 1)
satsayac = 2;
//AL dan FLAT
else if (alsayac == 2 && SonYon == "A")
{
alsayac = 0;
Sistem.Yon[i] = "F";
SonYon = "F";
}
//SAT dan FLAT
else if (satsayac == 2 && SonYon == "S")
{
satsayac = 0;
Sistem.Yon[i] = "F";
SonYon = "F";
}
else if (RSI[i] > 70 && SonYon!="A")
{
Sistem.Yon[i] = "A";
SonYon = "A";
}
else if (RSI[i] < 27 && SonYon!="S")// Ana yön -satış
{
Sistem.Yon[i] = "S";
SonYon = "S";
}
}
Sistem.Cizgiler[0].Deger = RSI;
Sistem.Cizgiler[1].Deger = Sistem.Liste(26);
Sistem.Cizgiler[2].Deger = Sistem.Liste(71);
Sistem.Cizgiler[3].Deger = RRR; /// flatta kullanıcak erhan
Sistem.Cizgiler[4].Deger = Sistem.Liste(32);
Sistem.Cizgiler[5].Deger = Sistem.Liste(68);
Ne zaman baslayacagi belli mi ?
Bence cok daha guzel olacak, ama biraz is cikaracak bize uyumlu hale gelebilmek icin...
[device_name] cihazımdan hisse.net mobile app kullanarak gönderildi.
tarihi bilmiyorum ve zaten belli değil şimdilik böyle bir saat ayarlamış olabilirler. ancak saatlere bakarsak bu günde 1 gap yerine 4 5 gap yeriz. anlamı çıkıyor.
ya tam 24 saat olsun ya böyle devam etsin.
2-3 saatte bir aç kapa işi var yukarıda belirtilen saatler dışında kapalı olacak ise. bence kimse sistem kullanmaz. geceleri.. yoksa açık olacak ama bunlar belirtilen saatlere verilen isim mi ? bunlar net değil.
bunun yerine ben direk xu030 a bağlarım sistemi. çünkü işlem sayısını aşırı yükseltir.
bu geciste asil amac fx e giden parayi engellemek sanriim. oraya kacan parayi sermaye piyasalarinda birakmak. mantikli .zaten 24 saat islem goren dolari sabah gapli almaktansa geceden islem yapmak isin ozune uygun. zira baz olan fiyat her zaman islem goruyor, bist30 gibi 9:18 arasinda degil..
bu durumda bist 30 kontratinin 24 saat olmasi bana makul gelmiyor. zira birinci bizim piyasa cok sig. zaten 2 yildir tek oyuncu at kosturuyor. sinegin kanadindan yag cikartmaya calisiyorlar. borsa kapali oldugunda, baz alinan arac islem gormuyorken yani,, zaten sig olan bir piyasa da geceleri sacma sapan hareketleri onleyecek bir duzenleme olur mu, bu duzenleme piyasa mantigina ne kadar dogru olur bilmiyorum.
Zirt birt ara vereceklerse hic yapmasinlar biz gaptan kurtulma derdindeyiz zaten
erhan hocam gaptan kurtarilirken tum indikatorlerden de feragat edilecek bi surec olacak. gun icinde 13-14 arasindaki 5 dakikaliktaki 12 bar, gibi onlarca bar olusacak.
indikatorler birbirine yapisacak.
hareket olmadigi gunlerde kucuk bir itkiyle carpilma surecleri daha fazla olacak.
hadi kodu degistirdik biseyelr ekledik cikarttik, bu yeni yapi icin test edilecek yeterince veri olmayacak. sistemciler icin hayirli bi haber degil bence bu.
geriye bir yol kaliyor.
elinde bist 30 un son on yillik 5 dakika, 60 dakika grafik verileri olan var mi ? :)
viop tek seansa geçerkende bazı kisiler sistemler etkilenecek bar sayilari çoğalacak güncelleme yapmamiz gerekir falan denilmişti.
Ben Uzun zamandir aciliş barlarini zaten sisteme okutmuyorum , benim için esas olan spottur.
Cok zorda kalirsam 2 kaldirac eski duzen gündüz 1 kaldirac gecede devam edecek sekilde calistirir gecerim.
Izleyip görmeden konusmak erken bence bir çozum elbet gelistiririz
Brexit ve amerika secimlerinde 5000 puan gap yedigim zamanda sisteme gaplar icin bir seyler eklemeliyim demistim ve eklemistim cok nadir calisiyor ama o ozelligi sisteme eklemistim
Yeni Piyasa islem yapmadan ne yapmamiz gerektigini tam olarak kestiremeyiz ama elbet herkes kendine gire bir cozum gelistirir
neyin ne oldugunu bilmeden elbet su olacak demek dogru olmaz.
bir cok kisi yeni duruma kendini bisekilde adapte eder. bu da dogru.
biz istesek de istemesek de bu tip degisimler olacaktir evet. ona da amenna.
ancak simdiden ne olabilecegine dair fikir yurutmek her zaman iyidir.
yaratilan her sistemin gercekten calisip calismadigini da yasayarak goruyoruz,,
henuz kendi sistemimize bile alismak aylari bulurken, tam olarak uymak sorunumuz varken bi de oyunun kurallarinin bir sekilde degismesi tumuyle yapiyi sarsacak.
tek seans uygulamasi gecerken mevcut datanin yuzde 10 u degisiyordu.(1 saatlik dilimde 5 dakika icin 12 bar, dakika icin 60 bar, 30 dakikalik icin 2 bar...) su an mevcut data kadar yeni bi data gelecek. yani yuzde 100 bir degisim.
bir sekilde adapte olunacak ya da bu is birakilacak. belki de gunluk sistem kullamaya baslayacak cogu kisi. yani temelinden sistemciligin (buradaki sistemcilerin cogunun 5 dk 1dk lik sistemleri oldugundan hareketle) karakterini degistirecek bir yapilanma oluyor. bence.
sezai beyden simdiden ricam , atiyorum, 1 dklikta 13.00 bari 102.bar ise, 14:00 bari 103.bar olsun..aradaki 60 barlik veriyi sistem okumasin. bu veri yokmus gibi tum degerler indikatorler hesaplansin. boyle bi kodu sisteme nasil gomeriz.
Kod:var sembol=Sistem.AktifViopKontrat;
List<double> kap = new List<double>();
var veri= Sistem.GrafikVerileriniOku(sembol,"1");
for (int i=0;i<veri.Count;i++)
{
if (veri[i].Date.Minute==0 )
{
kap.Add(veri[i].Close);// yüksek düşüş için kendin ekleyebilirsin, yukarıda list kısmına ve döngüye
}}
KullanıcıSembolleri nin içine kaydedilip ve bu özellik aktif edilerek
aşağıdaki kod parçacığı istenen saatler arası data kaydetmeye yaraması lazım.
DFN'VOB30BB olarak sistem içinden çağırılabilir.
PHP Code:
// VİOP_30 ogle arası eksik kayıtla sembol tanım
var kod = Sistem.AktifViopKontrat;
var VOB30BB = Sistem.SembolTanimla("DFN'VOB30BB", 0);
VOB30BB.Description = "Vob30 Ogle Arası kayıt yok";
var vade1 = Sistem.YuzeyselVeriOku(kod);
if (DateTime.Now.DayOfWeek != DayOfWeek.Saturday && DateTime.Now.DayOfWeek != DayOfWeek.Sunday && (Sistem.SaatAraligi("09:30", "12:59") || Sistem.SaatAraligi("14:00", "18:14" ) ) )
{
VOB30BB.LastPrice= Convert.ToSingle(vade1.LastPrice);
VOB30BB.LastSize= Convert.ToSingle(vade1.LastSize);
VOB30BB.LastVol= Convert.ToSingle(vade1.LastVol);
Sistem.GrafikGuncelle(VOB30BB);
}
////// ve son /////////
resimde işaretledim
http://666kb.com/i/ds04hg6q4c9drzalv.png
Yabancı payı bulunan hisselerdeki yabancı ve yerli takas oranını hisse bazlı grafik üzerinde görmek münkün mü?..
Örnek olarak GARAN daki yabancı ve yerli takas oranını grafik üzerinde görmek... böylece hisselerdeki yabancı ve yerli değişimi daha rahat takip etmiş olurum... hatta biraz daha ucup kurumsal bazlı bakmak ( CITI,MERLL ) gibi..
Merhaba
Acaba binance ya da farklı coin sitelerindeki fiyatları ideale aktarmak mümkün mü? Tşkler
SM-N910C cihazımdan hisse.net mobile app kullanarak gönderildi.
Belki basit bir şey ama yapamadım. Değeri 0 olan toplam miktar adında bir değişkenim var emir gönderme şartı gerçekleştiğinde toplam miktarın o anki kademede bulunan miktar kadar her seferinde artmasını istiyorum.
Yani diyelim ki belirlediğim
alış fiyatı 5,05
satış kademesinin aktif fiyatı 5,00
Satış kademesinin aktif fiyatı 5,05 olana kadar aktif kademedeki miktar kadarını alıyorum. Aldığım miktarları Toplam miktar adında bir değişkende kümülatif olarak görmek istiyorum.
Şimdiden teşekkür ederim.
Ufak bir örneğini aşağıda paylaştım asıl sonuca ulaşmak istediğim yer for döngüsünün içi.
PHP Code:
//Hisseleri Tanımlama
var Spot_Hisse = Sistem.Parametreler[0]; //Spot KRDMD
// Derinlik Okutma
var Spot_Derinlik = Sistem.DerinlikVerisiOku(Spot_Hisse);
// Alış Kademesi Fiyatını Tanımla
int Spot_Hisse_AF = Spot_Derinlik.Bids[0].Price;
//Satış Kademesi Fiyatını Tanımla
int Spot_Hisse_SF = Spot_Derinlik.Asks[0].Price;
//Alış Kademesindeki Miktarını Tanımla
int Spot_Hisse_AM = Spot_Derinlik.Bids[0].Size;
//Satış Kademesindeki Miktarını Tanımla
int Spot_Hisse_SM = Spot_Derinlik.Asks[0].Size;
//%21 Faizli Fiyatını Hesapla
var YHAF = Spot_Hisse_SF * (1+(0.09f/12));
float FHAFD = Sistem.SayiYuvarla(YHAF, 0.01);
//%10 Faizli Fiyatını Hesapla
var YHSF = Spot_Hisse_AF * (1+(0.04f/12));
float YHSFD = Sistem.SayiYuvarla(YHSF,0.01);
// Toplam Emir Miktarı Hesaplama
// Toplam Satış Emir Miktarı Belirleme THSEM
var THSEM = 0.0;
if ( Hisse_AF <=YHAFD )
{
THSEM+= Hisse_AM;
}
// Toplam Alış Emir Miktarı Belirleme THAEM
var THAEM = 0.0;
if (Hisse_AF >=YHAFD)
{
THAEM+= Hisse_SM;
}
Bu yazdığınız kodda, şu aşağıdaki değişkenleri ne ile gösterdiniz?
alış fiyatı, Satış kademesinin aktif fiyatı, aktif kademe,toplam miktar
Kod kısmında yardımcı olabilirim ama sistem nasıl çalışıyor çok anlamıyorum.
Bahsettiğiniz kod şöyle bir şey
PHP Code:
toplamMiktar = 0
while ( satış kademesinin aktif fiyatı < alış fiyatı){
emir.gönder
toplamMiktar += emir.miktar
}
Aslında yapmak istediğim şeyi nasıl yapabilceğimi anlatabilirsen gerisini ben yapabilirim belki. if döngüsünde ki şart her gerçekleştiğinde emir miktarı kadar eklemeyi toplam miktar adında bir değişkene eklesin istiyorum.
Örneğin if döngüsünde ki şart gerçekleşti Pozisyon Kontrol 1 oldu
emir miktarı = Satış kademesinde ki miktar (SM)
Toplam Miktar= SM olsun
Sonra tekrar if döngüsünde ki şart gerçekleşti pozisyon kontrol 2 oldu
Toplam Miktar = SM + Satış kademesinde ki miktar (SM) olsun
Bunu if döngüsüne ekleyemiyorum.
Şimdi ben bu süreç nasıl işliyor çok anlamıyorum ama son mesajın daha temiz oldu. Bir kere if döngü değil for kastediyorsun galiba.
Şimdi ben ama elma ile anlatsan bunu anlarım. (terimleri bilmiyorum aslında o yüzden oluyor) sana elma ile örnek vereyim sen de oradan yap ya da konuşa konuşa ortak bi yerde buluşalım.
Elmanın alış fiyatı 5.05. satın kademedeki aktif fiyat da 5. elmanın aktif fiyatı 5.05 olasıya kadar sen 100 er tane elma alma emiri gönderickesin. ilk başta sıfır elman var
bana öyle geliyor ki kademe bilgilerini her döngüde tekrar çekmeniz gerekiyor değil mi? aslında ben size en temiz kodu şöyle yazabilirim. Bana normal türkçe ile aşama aşama yazarsanız ben size kodu yazarım. Mesela üstte yazdığımda satis_kademe_aktif_fiyat ın her emir gönderdikten sonra güncellenmesi gerekir gibi geliyor bana. sizin örnek kodda ise tek bi sefer alınmış vaziyette.PHP Code:
int emir_kademe = 100;
int toplam_alis_miktari = 0;
int pozisyon_kontrol = 0;
float alis_fiyati = 5.05;
float satis_kademe_aktif_fiyat = 5;
while (elma_alis_fiyati < satis_kademe_aktif_fiyat){
Sistem.Emir.Miktar = emir_kademe;
toplam_alis_miktari += emir_kademe;
pozisyon_kontrol++;
}
Çok doğru noktaya değindiniz her döngüde emir miktarı farklı olabilir çünkü bazen 5,05 altında ala bileceğim elma 2 bazen 10 olabilir her defasında elma miktarını kontrol etmeli ne kadar elma varsa o kadar almalı sonra da toplam miktara aldığı elma kadar eklemeli
satış kademe aktif fiyat, alış fiyatından küçük olduğu sürece çalışır bu döngü. küçük olmayı bıraktığı zaman döngüden çıkar her seferinde de kademe bilgilerini tekrar alır.PHP Code:
bool islem = true;
int emir_kademe = 0;
int toplam_alis_miktari = 0;
int pozisyon_kontrol = 0;
float alis_fiyati = 5.05;
float satis_kademe_aktif_fiyat = 0;
while(islem){
satis_kademe_aktif_fiyat = Spot_Derinlik.Asks[0].Price;
emir_kademe = Spot_Derinlik.Asks[0].Size
if (satis_kademe_aktif_fiyat < alis_fiyati){
Sistem.Emir.Miktar = emir_kademe;
toplam_alis_miktari += emir_kademe;
pozisyon_kontrol++;
}
else {
islem = false;
}
}
yaparsanız kodu yazın ben terimleri öğreneyim. bir dahaki sefere daha iyi çözeriz.
bool yerine do while da kullanabilirdik. hatta daha elegant bi çözüm olurdu.
tez yazıyorum bir yandan canım sıkılıyor kafam dağılsın diye bunlara bakıyorum ben de win-winPHP Code:
int emir_kademe = 0;
int toplam_alis_miktari = 0;
int pozisyon_kontrol = 0;
float alis_fiyati = 5.05;
float satis_kademe_aktif_fiyat = 0;
do{
satis_kademe_aktif_fiyat = Spot_Derinlik.Asks[0].Price;
emir_kademe = Spot_Derinlik.Asks[0].Size
if (satis_kademe_aktif_fiyat < alis_fiyati){
Sistem.Emir.Miktar = emir_kademe;
toplam_alis_miktari += emir_kademe;
pozisyon_kontrol++;
}
} while(satis_kademe_aktif_fiyat < alis_fiyati);
Herkese merhaba ,
Acaba herhangi bir txt dosyasından veri okumanın örnek bir kodu var mıdır ?
Robotta günlük maximum işlem limiti koymak istiyorum , hergün sadece 10 alım yapılabilir gibi ? Acaba bunu nasıl yapabilirim ?
text dosya okuma
var Semboller = File.ReadAllLines("C:\\robotsembolleri.txt").ToLis t();
for (var No=0; No < Semboller.Count; No++)
{
var Sembol = Semboller[No];
.
.
.
.
..
}
maksimum işlem limiti
var GerceklesenList = Sistem.ViopHesapGerceklesenEmirler();
if (GerceklesenList != null)
{
if (GerceklesenList.Count > 3)
{
// döngüye yakalandım, robotu durdur
Sistem.RobotStop();
// sms veya email gönder
}
}
Herkese selamlar iyi çalışmalar dilerim.yapmak istediğim şey şu;2 adet 1 dk.lik--2 adet 2 dk.lik--2 adet 5 dk.lik ve 3 adet 10 dk.lik toplam 9 sistemimin yönlerini (al-sat-flat) total olarak bakıp tek sinyal elde ediyorum.yani birbirlerine filtre olarak kullanıyorum.orneğin 5 i al da 1 i satta,3 ü flat iken;nette4 al ile total yön 4 al ile al olarak gerçekleşiyor.versiyonlarını biliyorsunuz zaten.sonuçta nette 1 fazla al da ise al, bir fazla satta ise sat olunca sat sinyali geliyor.sistemler tek tek kullanılıyor repaint yapmıyorlar.hepsinden gelen sinyalleri tek sinyal olarak manuel kullanıyorum.bunu nasıl otomatize edebilirim?yani her 1 dakikada 9 sistemin durumuna tek tek bakacak ve total sinyal al mı sat mı flat mı belirleyecek o sinyali sürdürecek.ne zaman durum değiştiyse o 1 dakikalık barın sonunda sinyali değiştirecek.böyle bir robot kodu nasıl yazılabilir?(dikkat birleşik sistem kodu istemiyorum,sadecepoz.ları kontrol edip emir göndercek robot kodunu oluşturmak amacım) Sayın üstadlar bir el atarsanız sevinirim.çok kişide kulanır diye düşünüyorum,çünkü maxdd. de çok düşüyor böylece.....
Hisse günlük aracı kurum dağilımları görünmüyor bugün :vk: PITE olarak görünüyor ama doğrumudur acaba ?
https://resmim.net/f/40t4RO.png
using System;
using cAlgo.API;
using cAlgo.API.Indicators;
namespace cAlgo.Indicators
{
[Indicator(IsOverlay = true)]
public class TrendLines : Indicator
{
[Parameter(DefaultValue = 30, MinValue = 1)]
public int Period { get; set; }
protected override void Initialize()
{
RedrawLines();
}
public override void Calculate(int index)
{
if (IsRealTime)
RedrawLines();
}
private void RedrawLines()
{
int count = MarketSeries.Close.Count;
int maxIndex1 = FindNextLocalExtremum(MarketSeries.High, count - 1, true);
int maxIndex2 = FindNextLocalExtremum(MarketSeries.High, maxIndex1 - Period, true);
int minIndex1 = FindNextLocalExtremum(MarketSeries.Low, count - 1, false);
int minIndex2 = FindNextLocalExtremum(MarketSeries.Low, minIndex1 - Period, false);
int startIndex = Math.Min(maxIndex2, minIndex2) - 100;
int endIndex = count + 100;
DrawTrendLine("high", startIndex, endIndex, maxIndex1, MarketSeries.High[maxIndex1],
maxIndex2, MarketSeries.High[maxIndex2]);
DrawTrendLine("low", startIndex, endIndex, minIndex1, MarketSeries.Low[minIndex1],
minIndex2, MarketSeries.Low[minIndex2]);
}
private void DrawTrendLine(string lineName, int startIndex,
int endIndex, int index1, double value1, int index2, double value2)
{
double gradient = (value2 - value1) / (index2 - index1);
double startValue = value1 + (startIndex - index1) * gradient;
double endValue = value1 + (endIndex - index1) * gradient;
ChartObjects.DrawLine(lineName, startIndex, startValue, endIndex, endValue, Colors.Gray);
ChartObjects.DrawLine(lineName+"_red", index1, value1, index2, value2, Colors.Red);
}
private int FindNextLocalExtremum(DataSeries series, int maxIndex, bool findMax)
{
for (int index = maxIndex; index >= 0; index --)
{
if (IsLocalExtremum(series, index, findMax))
{
return index;
}
}
return 0;
}
private bool IsLocalExtremum(DataSeries series, int index, bool findMax)
{
int end = Math.Min(index + Period, series.Count - 1);
int start = Math.Max(index - Period, 0);
double value = series[index];
for (int i = start; i < end; i++)
{
if (findMax && value < series[i])
return false;
if (!findMax && value > series[i])
return false;
}
return true;
}
}
}
arkadaşalr merhaba otomatik tren çizgisi çizebilen bir indicatöre ihtiyacım var
internette c dilinde yazılmış bu indicatörü buldum
sizleri fazlaca ugrastımayacaksa bunu ideal e çevirebilirmiyiz , başka arkadaşlarda faydalanır
sayın ideal yetkilileri otomatik trend çizgisi çizdirilen bir indicatöre veya araca fazlasıyla ihtiyaç var bilginize
Merhaba ,
Hisse tarafında robotun sürekli al / sat yapan bir döngüye girmesini engellemek için gerçekleşen emirler belli miktarı aşınca robotu durdurmak istiyorum.Forumda VIOP için Sistem.ViopHesapOku() kullanılmış. Acaba bunun hisse için karşılığı var mı ? Örneğin EREGLI hissesinde al sat yapan robotun toplam 10.000 lot al sattan sonra robotu durdurması gibi.
https://i.resimyukle.xyz/HTT0R2.jpg
1. indikator builder de Dip Noktalar isminde asagidaki formülü kaydedin.
peri:=Input("Periyod",2,100,14);
loc:= L<Ref(LLV(L,peri),-1) AND L<=Ref(LLV(L,peri),peri);
BarsSince(loc);
2. indikator builder de Tepe Noktalar isminde asagidaki formülü kaydedin.
peri:=Input("Periyod",2,100,14);
loc:= H>Ref(HHV(H,peri),-1) AND H>=Ref(HHV(H,peri),peri);
BarsSince(loc);
3. indikator builder de Oto Trend isminde asagidaki formülü kaydedin.
Close
Oto Trend isminde kaydettiginiz indikatörü grafik üzerine ekleyin.( ayri pencerede degil grafik scalasinin oldugu pencereye)
Sonra eklediginiz bu Oto Trend indikatörünün üzerinde cift tiklayip asagidaki sekilde formülünü editleyin.
peri:=Input("Periyod",2,100,14);
peri2:=Input("Birinci Dip Nokta Sayisi",2,100,2);
peri3:=Input("ikinci Dip Nokta Sayisi" ,1,100,1);
loc:= L<Ref(LLV(L,peri),-1) AND L<=Ref(LLV(L,peri),peri);
y1t:=LastValue(ValueWhen( peri2, loc=1, L ));
y2t:=LastValue(ValueWhen( peri3, loc=1, L ));
x1t:=LastValue(ValueWhen( peri2, loc=1, Cum(1) ));
x2t:=LastValue(ValueWhen( peri3, loc=1, Cum(1) ));
e1:=L-((y1t-y2t)/(x1t-x2t)*Cum(1)+y1t-(y1t-y2t)/(x1t-x2t)*x1t);
ret1:=LastValue(Cum(1)-(x1t+Int((x2t-x1t)/2)-1));
seg1:=LastValue(Int((x2t-x1t)/2+Int(2*peri/5)){+peri-1});
x1:=LastValue(Cum(1)-LLVBars(Ref(e1,-ret1),seg1)-ret1);
y1:=LastValue(ValueWhen(1,x1=Cum(1),L));
ret2:=LastValue(Cum(1)-(x2t+Int(5*peri/5)));
seg2:=LastValue(Int((x2t-x1t)/2)+Int(4*peri/5));
x2:=LastValue(Cum(1)-LLVBars(Ref(e1,-ret2),seg2)-ret2);
y2:=LastValue(ValueWhen(1,x2=Cum(1),L));
LoTL:=If(Cum(1)>x1t-5,(y1-y2)/(x1-x2)*Cum(1)+y1-(y1-y2)/(x1-x2)
*x1,BarsSince(Cum(1)>x1t-5));
decal:=LastValue(HHV(Ref(H-LoTL,-LastValue(Cum(1)-x2t)),x2t-x1t));
LoTL;LoTL+decal;
3. indikatörün formülünü önce Close olarak kaydedip sonradan editlemememizin nedeni, indikatörü grafik üzerine ekledigimiz icin scala sorununu ortadan kaldirmak icin idi.
baska hisseler üzerinde de indikatörü eklemek istedigimizde ayni sekilde scala sorunu yasamamak icin editleme den sonra Template olarak kaydedip, baska hisse grafiklerinde sag tiklayip Apply Template den eklemek gerekir.
buda metastock ve matriks te çalışan auto trend çizgisi çizebilen bir indikatörmüş