hacmin 3 te birini idealde nasıl yazabiliriz?
Printable View
hacmin 3 te birini idealde nasıl yazabiliriz?
Arkadaşlar hayırlı akşamlar
Bir sorum olucak bu işlere aşina bir arkadaşım yol gösterirse çok sevinirim
Amibrokerda bir sistemim var bunu İdeal terminalinde robot haline getirmek istiyorum.
Hint yazılım firmalarını araştırdım fakat sonuç alamadım
yurtiçi yada yurtdışı bu yazılımı kime yaptırabilirim ...
İyi akşamlar
basit bir indikatör yazmaya çalışıyorum ama değeri çıkmıyor nerde hata yapıyorum bulamadım
var V = Sistem.GrafikVerileri ;
var C = Sistem.GrafikFiyatOku(V, "Kapanis" ) ;
var H = Sistem.GrafikFiyatOku(V, "Yuksek" ) ;
var L = Sistem.GrafikFiyatOku(V, "Dusuk" ) ;
var O = Sistem.GrafikFiyatOku(V, "Acilis" );
var ref1= Sistem.Ref(L,-2);
var ref2= Sistem.Ref(L,-3);
var ref3= Sistem.Ref(H,-1);
var X=Sistem.Liste(0);
for (int i = 1; i < Sistem.BarSayisi; i++)
{
X= ref1[i]<ref1[i] && H[i]>ref3[i];
}
Sistem.Cizgiler[33].Deger = X;
X= ref1[i]<ref1[i-1] ;
adım adım gidin.
X= ref1[i]<ref1[i-1] ;//&& H[i]>ref3[i];
sonra
X= ref1[i]<ref1[i-1] && H[i]>ref3[i];
ve if kyullanmanız gerekli
if ( ref1[i]<ref1[i-1] ) X[i] = " neyi değer alsın ?"; gibi gibi.
arkadaslar selam,
bir suredir bu topigi takip edemedim, daha once konusuldu ise kusuruma bakmayin.
takas degisimlerine gore bir sorgu yazmayi planliyorum, takas degisimi ve fiyat degisimi arasindaki baglantiya bakicam.
boyle bir kod paylasildimi/konusuldumu acaba?
şu şekilde yazmaya çalıştım yine olmadı
var ref1= Sistem.Ref(L,-2);
var ref2= Sistem.Ref(L,-3);
var ref3= Sistem.Ref(H,-1);
var X=Sistem.Liste(0);
for (int i =1; i < Sistem.BarSayisi; i++)
{
if (ref1[i]<ref1[i-1] && H[i]>ref3[i])
{
X[i] = 1;
}
}
Sistem.Cizgiler[0].Deger = X;
merhaba,
aşağıdaki sistem hata veriyor ve çalışmıyor, sizce nerde hata yapıyorum ? Yapmaya çalıştığım saatlik periyortta , örnek veriyorum 60 bar öncesine göre C > ref ( C,-60 ) ise Long aksi durumda Flat.
// BULUT // verileri oku
var Sembol = "IMKBH'THYAO";
var Sembol1 = "VIP'F_THYAO0820";
var Periyot = "60";
var Bar = Sistem.GrafikVerileriniOku(Sembol, Periyot);
var SonFiyat = Sistem.SonFiyat(Sembol);
var C = Sistem.GrafikFiyatSec("Kapanis");
var son = Sistem.BarSayisi-1 ;
var SonBarNo = Bar.Count - 1; // pozisyon tablosundan pozisyon miktarını al
var Pozisyon = Sistem.PozisyonKontrolOku(Sistem.Name + " , " +Sembol); // yön bul
var Islem = "";
var Miktar = 0;
if ( (Pozisyon == 0) && (Bar[SonBarNo].Close) > Bar[SonBarNo-60].Close ))
{ Islem = "ALIS"; Miktar = 2; }
else if ( (Pozisyon > 0) && (Bar[SonBarNo].Close) < Bar[SonBarNo-60].Close ))
{ Islem = "SATIS"; Miktar = 2; }
// emri gönder
if (Islem != "")
{ if (Islem == "ALIS")
Sistem.PozisyonKontrolGuncelle(Sistem.Name + " , " +Sembol, Pozisyon+Miktar);
else if (Islem == "SATIS")
Sistem.PozisyonKontrolGuncelle(Sistem.Name + " , " +Sembol, Pozisyon-Miktar);
Sistem.EmirStop = Sistem.SonFiyat("IMKBH'THYAO");
if (Islem != "")
Sistem.EmirSembol = Sembol1;
Sistem.EmirIslem = Islem;
Sistem.EmirMiktari = Miktar;
Sistem.EmirSuresi = "GUN"; // GUN, SNS, IKG
Sistem.EmirTipi = "KPY"; // KPY, KIE, GIE, SAR
Sistem.EmirFiyatTipi = "PYS"; // PYS, LMT, EIF, KAP
Sistem.EmirGonder();
}
"Bar[SonBarNo].Close)"
if ve else if 'in herikisinde gecen yukardaki fazlalilik parantez kapanisi nedeniyle hata aliyor olmalisiniz.
Paylastiginiz robot olarak calistirilabilecek bir kod. Sistem olarak grafige yuklerseniz birsey gorulmez. Gecmis verilerle test edebilmek ve stratejinin guclu/zayif noktalarini gorebilmek adina sistem versiyonunu olusturmanizi oneririm.
İdeal için olan eski yazılara ulaşmak istedim ama eski forum verilerine ulaşılamıyor.
Merhaba Arkadaşlar ;
Yapmak isteyip yapamadığım bir robot var. Bana bu konuda yardımcı olacak biri olursa çok sevinirim. Yapmak istediğim robot şu şekilde.
Arçelik grafiğinde 5 dk periyotta stochastikslow(5,3) , (ma)ortalaması 3 olan indikatöre bak
Ortalaması , stochastikslow(5,3) dan küçükse flat
Ortalaması , stochastikslow(5,3) dan büyükse 1 dk lık grafiğe git
1 dk lık grafikte (ma=3) > stochastikslow(5,3) ve most(2; 0,6) büyükse AL
Küçükse sat….
YANİ
5 DK grafikte stochastik negatifse flat
5 DK grafikte stochastik pozitifse 1 dk grafiğe geç
Aynı işlemleri most ile beraber yap
Most ve stochastik pozitifse al
Negatifse flat
Aşağıdaki sistem sayın Tiberius tarafından twittırda paylaşılmıştı. Bu sistemin içindeki yön kalıbını bir arkadaş açıklamasını yazabilirmi. Farklı bir yön kalıbı var.
Kod:var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatOku(V, "Kapanis");
var RSI = Sistem.RSI(200);
var HHV = Sistem.HHV(12);
var LLV = Sistem.HHV(12);
var MOM = Sistem.Momentum(200);
// strateji
var SonYon = "";
var Sinyal = "";
var TradeCount = 0;
double SonFiyat = 0.0;
int BarNo = 0;
for (int i = 1; i < V.Count; i++)
{
Sinyal = "";
// strateji
if (HHV[i] > HHV[i - 1] && MOM [i] > 100) Sinyal = "A";
if (LLV[i] > LLV[i - 1] && MOM [i] < 100) Sinyal = "S";
// Yön Kalıbı
if (Sinyal == "A" && SonYon != "A")
{
if (SonYon == "F") TradeCount = TradeCount + 1;
if (SonYon == "S") TradeCount = TradeCount + 2;
BarNo = i;
Sistem.Yon[i] = "A";
SonYon = Sistem.Yon[i];
SonFiyat = V[i].Close;
}
if (Sinyal == "S" && SonYon != "S")
{
if (SonYon == "F") TradeCount = TradeCount + 1;
if (SonYon == "A") TradeCount = TradeCount + 2;
BarNo = i;
Sistem.Yon[i] = "S";
SonYon = Sistem.Yon[i];
SonFiyat = V[i].Close;
}
if (Sinyal == "F" && SonYon != "F")
{
if (SonYon == "S") TradeCount = TradeCount + 1;
if (SonYon == "A") TradeCount = TradeCount + 1;
BarNo = i;
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
SonFiyat = V[i].Close;
}
}
Sistem.GetiriHesapla("01/01/2000", 0.0);
//Sistem.Cizgiler[0].Deger = MA;
//Sistem.Cizgiler[1].Deger = TOMA;
Sistem.Cizgiler[2].Deger = Sistem.GetiriKZ;
Sistem kendisi hatalı duruyor, bunu bir şeye cevap için yazmıştır muhtemelen.. Alt bölümü açıklayayım gerisi aynı mantık:
alım sinyali gelmişse ve alımda değilse; sistemin sinyal öncesi yönüne göre TradeCount değişkeni artacak.. Flat ten alıma geçiyorsa 1, Sat tan geçiyorsa 2 ilave olacak..
Örneğin amacı, yön değişimi esnasında önceki yöne göre değişken ayarlama gibi duruyor..
if (Sinyal == "A" && SonYon != "A")
{
if (SonYon == "F") TradeCount = TradeCount + 1;
if (SonYon == "S") TradeCount = TradeCount + 2;
BarNo = i;
Sistem.Yon[i] = "A";
SonYon = Sistem.Yon[i];
SonFiyat = V[i].Close;
}
bir indikatör yazmaya çalışıyorum kodun neresinde hata yapıyorum
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatOku(V, "Kapanis") ;
var H = Sistem.GrafikFiyatOku(V, "Yuksek") ;
var L = Sistem.GrafikFiyatOku(V, "Dusuk") ;
var filt = Sistem.Liste(V .Count,0);
var WW = Sistem.Liste(V.Count,0);
var mov =Sistem.MA(4, "Simple", "Kapanis");
var MAyontem=Sistem.MA(4, "Simple", "Kapanis");
var ttı =Sistem.TTI(6, 1.5, MAyontem);
for (int i = 10 ; i < V.Count; i++)
{
filt[i] =mov[i](ttı[i]((H[i] + L[i]) +2*L[i])/4,6,1.5),7,WW[i];
}
Sistem.Cizgiler[0].Deger = filt ;
merhaba arkadaslar
forma baktim ancak engulf bulup ideal penceresinde gosterecek bir formule ulasamadim
bralarin engulf oldugunu tespit edip barin ustune isaret koydurabiliyormuyuz yardiminiza simdiden tesekkur edrim
birde arkadaslar lutfen market profile yada volume profile ynasil yazilir idealde biraz yardim 'le basarabiliriz sanirim isterseniz mql5 acik kod paylasabilirim
arkadaslar merhaba. Bu matriks taramasını ideal sorgu sekline cevirir misiniz.
Tillson Ⴑ (Ters J) taraması:
K1:=TILL(C,3,0.5);
sum(roc(k1,1,%)<0,4)=-3 and roc(k1,1,%)>0
gençler chikouSpan in alım şartına nasıl yazılacağını bir türlü bulamadım.
ChikouSpan[i] > C[i-26] bunu biledenedim
26 bar gerideki chikouspan in 26 bar önceki kapanışa göre yuksek olması gerekiyor.
şimdiden teşekkürler.
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatOku(V, "Kapanis") ;
var H = Sistem.GrafikFiyatOku(V, "Yuksek") ;
var L = Sistem.GrafikFiyatOku(V, "Dusuk") ;
var O = Sistem.GrafikFiyatOku(V, "Acilis") ;
// İNDİKATÖR TANIMLAMA
var IchiMoku=Sistem.Ichimoku();
var Kijunsen =IchiMoku.Kijunsen;
var ChikouSpan =IchiMoku.ChikouSpan;
// GRAFİĞE ÇİZİM
Sistem.Cizgiler[1].Deger= Kijunsen;
Sistem.Cizgiler[2].Deger= ChikouSpan;
// STRATEJİ
var SonYon = "";
for (int i = 1; i<V.Count; i++)
{
if ( C[i] > Kijunsen[i] && C(i) > C(i-26) && SonYon != "A" ) // AL
{
Sistem.Yon[i] = "A";
SonYon = Sistem.Yon[i];
}
if ( SonYon=="A" && C[i] < Kijunsen[i] && SonYon != "F" ) // FLAT
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
}
}
hocam belki yüz yıllık sistem. Çok bilinen bir şey. Ama aktaramadım.
söylediğiniz iki şeyi de denedim. Ama bir sonuç vermedi. Sistemi biliyorsunuz zaten. 26 bar gerideki fiyat chikou nun üzerinde olacak. Son fiyat da kijun un üzerinde olacak. Al sinyali verecek.
ama sistem sürekli flat de kalıyor.
neden acaba ???
Selam arkadaslar
Ornegin Garan icin yazilan bir sistemde 2 Kademede kar da kar al 1 kademe zararda stop ol seklinde kodlamayi nasil ilave edebiliriz?
Saygilar...
Teşekkürler,çalıştı !
iyi geceler aselsan hissesi için geçmişe yönelik1-5 dakikalık verisi olan var mı?
Merhabalar,
Algoritma içerisinde emir verirken bazen çok uzun barlar oluşur ve kapanış yapmadan stop olamazsınız. Anlık olarak kapanışı beklemeden emir vermek için nasıl bir döngü gereklidir. Bu emri nasıl yazabilirim fikri olan bilen varsa yardımcı olabilirmi. Teşekkür ederim.
selam arkadaslar
Hareketli ortalamanin rsi yini hesaplatip onu grafik ustunde cizebilecek bir kod yazilabilir mi? Ornegin 50 gunluk hareketli ortalamanin RSI degerini cizdirip fiyat bunun ustundeyse al altindaysa sat gibi bir kod yazilabilir mi?
Saygilar...
merhaba değerli forumcular
aşağıdaki matriks kodu'nun idealdeki yazımı nasıldır
teşekkür ederim şimdiden
Periods:=Input("Hareketli Ort. Periodu",1,250,100);
Mov(C,Periods,W)+ Mov((C-Mov(C,Periods,W)),Periods,W)
Selam değerli forumdaşlarım
ideale yeni geçiş yaptım
toma ile ilgili optimizasyon formülüne ihtiyacım var yardımcı olursanız sevinirim.
///TOMA OPT
PHP Code:
var Veriler = Sistem.GrafikFiyatSec("Kapanis");
for (int Periyot = 1; Periyot < 10; Periyot++)
{
var EMA = Sistem.MA(Veriler, "Exp", Periyot);
for (var Yuzde = 0.3f; Yuzde < 5.0f; Yuzde +=0.1f )
{
var TOMA = Sistem.TOMA(Periyot, Yuzde);
//Sistem.KesismeTara(EMA, TOMA);
var SonYon = "";
for (int i=1; i < Sistem.BarSayisi; i++)
{
Sistem.Yon[i] = "";
if(EMA[i] > TOMA[i] && EMA[i-1] < TOMA[i-1] && SonYon != "A")
{
SonYon = "A";
Sistem.Yon[i] = "A";
}
if(EMA[i] < TOMA[i] && EMA[i-1] < TOMA[i-1] && SonYon != "S")
{
SonYon = "S";
Sistem.Yon[i] = "S";
}
}
Sistem.Optimizasyon("EMATOMA", Periyot, Yuzde);
}
}
Arkadaşlar 1 sistemin 3 farklı enstürüman'dan getirisini 1 pencerede takip ettigimiz 1 kod paylaşilmıştı.
Gectigimiz yillarda forumda vardı,
Yedeginde olan arkadaş varsa paylaşabilirmi ?
Sadece sonucu değil, baz aldığı ortalamayı da çizdirdim.. panel1, 2 tik..
PHP Code:
int p=100;
var C = Sistem.GrafikFiyatSec("Kapanis");
var m1 = Sistem.MA(C, "Weighted", p);
var T = Sistem.ListeTopla(m1, Sistem.MA(Sistem.ListeFark(C,m1), "Weighted", p));
Sistem.Cizgiler[0].Deger = T;//sonuç
Sistem.Cizgiler[1].Deger = m1;//yalnızca ağırlıklı
Selam Arkadaşlar
Idealde Dırectıonal Indıcatorunde ki DI+ ve DI- şartlarını kullanarak RSI 70 üstünde ve DI+ buyuk DI- ise al kosulunu RSI 70 altı ve DI- buyuk DI+ SAT nasıl yazabılırım?
Saygılar
https://www.youtube.com/channel/UCM6...swvemKC1FKxneA HOCAM BU KANALDA VAR
Algonun yuzde 2 kar gorunce al yuzde 1 zarar olunca stop ol kodunu ilave etmek istiyorum aşağıdaki kalıbı yapıştırdım ama ıdealde ne görüntüde çıkıyor nede çalışıyor_? Sizce nerede hata var?
Sistem.Yon[i] = "A"; SonYon = "A"; // alış
sonfiyat=C[i];
}
if (MA1[i] < pivot1[i] && MA1[i-1] > pivot1[i-1] && SonYon != "S") // SAT
//if (MA1[i] < MA2[i] && SonYon != "S") // SAT
{
Sistem.Yon[i] = "S"; SonYon = "S"; // satış
sonfiyat=C[i];
}
if (SonYon=="A" && C[i]>sonfiyat*1.02 && SonYon != "F") /// Long yönünde yüzde 2 kar al
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
}
if (SonYon=="S" && C[i]<sonfiyat*0.98 && SonYon != "F") /// short yönünde yüzde 2 kar al
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
}
if (SonYon=="A" && C[i]<sonfiyat*0.99 && SonYon != "F") /// Long yönünde yüzde 1 stop
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
}
if (SonYon=="S" && C[i]>sonfiyat*1.01 && SonYon != "F") /// short yönünde yüzde 1 stop
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
}
}
Sistem.Cizgiler[0].Deger = MA1;
Sistem.Cizgiler[1].Deger = F1 ;
Sistem.Cizgiler[2].Deger = F2;
Sistem.Cizgiler[3].Deger = pivot1;
Sistem.Cizgiler[4].Deger = pivot2 ;
Merhaba arkadaşlar,
Grafiklere tek tek indikatör alarmı eklemek yerine hisseleri otomatik tarayıp örnek veriyorum A hissesi rsı değeri 50 nin üzerine çıktığında yada 50nin altına indiğinde uyarı verecek bir robot vs. yazmak mümkün mü acaba?
Twitterde kimseden sorumun cevabını bulamadım, şansımı bir de burdan deneyim istedim.
Long ve short sistemi birbirinden bağımsız kullanıyorum.
Sabit stop, iz süren stop ve kar al seviyesi tetiklenir tetiklenmez bar kapanışını beklemeden emri gönderip flat duruma geçmesini istiyorum. Nasıl yazılması gerekir?
var SonYon = Sistem.SonYonGetirCanli(SistemAdi, Sembol, Periyot); kullanılabilir.
PHP Code:
string GERCEK = Sistem.AktifViopKontrat;
string SANAL = "FX'USDTRY";
string GS = (Sistem.Parametreler[0].Split('=')[1].Trim().ToUpper() );
string SistemAdi = (Sistem.Parametreler[1].Split('=')[1].Trim() );
var LotSize = Convert.ToInt32(Sistem.Parametreler[2].Split('=')[1].Trim() ) ; //Robot_İşlem_Lot = 1
string Periyot = Sistem.Parametreler[3].Split('=')[1].Trim();
var Sembol = GERCEK ;
var MySistem = Sistem.SistemGetir(SistemAdi, GERCEK, Periyot); //sistemin adı, grafik sembolü, grafiğin periyodu
if (MySistem == null)
{
Sistem.Mesaj(Sistem.Name + "Hatalı Çalışıyor !");
}
else
{
var EmirSembol = Sembol;
var SonFiyat = Sistem.SonFiyat(EmirSembol);
var Anahtar = Sistem.Name + "," + EmirSembol;
double IslemFiyat = 0;
DateTime IslemTarih;
var Miktar = 0.0;
var Rezerv = "";
var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih);
var SonYon = Sistem.SonYonGetirCanli(SistemAdi, Sembol, Periyot);
if (Sistem.Saat.CompareTo("09:30:00") <= 0 || Sistem.Saat.CompareTo("18:14:59") >= 0) // seans yok işlem yapma
{
}
// if (Sistem.Saat.CompareTo("14:00:00") <= 0 && Sistem.Saat.CompareTo("13:00:00") >= 0) // seans yok işlem yapma
// {
// }
else if (SonYon == "F" && Pozisyon != 0) // Flata Geç
Miktar = -Pozisyon;
else if (SonYon == "A" && Pozisyon != LotSize) // Al
Miktar = LotSize - Pozisyon;
else if (SonYon == "S" && Pozisyon != -LotSize) // Sat
Miktar = -LotSize - Pozisyon;
// Emir Gönder
var Islem = ""; float isfiyat = 0;
if (Miktar > 0) {Islem = "ALIS"; isfiyat = Sistem.SatisFiyat(EmirSembol); Rezerv = isfiyat + " ALIŞ YAPILDI"; }
if (Miktar < 0) {Islem = "SATIS"; isfiyat = Sistem.AlisFiyat(EmirSembol); Rezerv = isfiyat + " SATIŞ YAPILDI";}
if (Islem != "")
{
Sistem.PozisyonKontrolGuncelle(Anahtar, Miktar + Pozisyon, SonFiyat, Rezerv);
Sistem.EmirSembol = GS == "G" ? GERCEK : SANAL; // Sistem.EmirSembol = EmirSembol;
Sistem.EmirIslem = Islem;
Sistem.EmirSuresi = "KIE"; // GUN, KIE, IKG
Sistem.EmirTipi = "Piyasa"; // Piyasa, Limitli, Piyasadan Limite
Sistem.EmirMiktari = Math.Abs(Miktar);
Sistem.EmirGonder();
}
}
önce sanalda deneyiniz.