|
|
Darvas Box' a yabancıyım.
Bu göstergeyi hangi periyotta açarsanız(örneğin Aylık, Haftalık, Günlük... 5 Dk...) ona göre değerlerin değişeceğinin farkındasınız değil mi?
Ayrıca "boxp" ye 5 değeri atanmış ama...
For döngüsü (i=5 olan değil. O sadece i' nin "-" eksi değer almasını engellemek için ....) değerleri "boxp" değerinin değişmeyeceği öngörülerek yazılmış.
DönemÇevir fonksiyonu da kullanılmadığı için her periyotda farklı değerler üretilir.
https://www.kisavade.com/
Al,sat,tut,yakala,sık,bırak vb. tavsiye için aracı kurumunuzla görüşün.
LIB.CS
twitte sorulmuş uraya atayım.
daha önce yine buradan almış olduğum kodlar.
kendim kullanmadım.
bu örnek sanırım Sn.Tiberius'tandı.
PHP Code:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace ideal
{
public class Lib
{
public List<float> CCI(dynamic SistemX, dynamic VerilerX, int sayiX)
{
var C = SistemX.GrafikFiyatOku(VerilerX, "Kapanis");
var H = SistemX.GrafikFiyatOku(VerilerX, "Yuksek");
var L = SistemX.GrafikFiyatOku(VerilerX, "Dusuk");
var O = SistemX.GrafikFiyatOku(VerilerX, "Open");
var tipikfiyat = SistemX.GrafikFiyatOku(VerilerX, "Tipik");
var list = new List<float>(new float[C.Count]);
try
{
if (C.Count > sayiX)
{
List<float> orttipikfiyat = new List<float>(SistemX.MA(tipikfiyat, "Simple", sayiX));
var ortsapma = new List<float>(new float[C.Count]);
for (int i = 0; i < C.Count; i++)
{
if (i >= sayiX)
{
float sapma = 0f;
for (int j = i - sayiX + 1; j <= i; j++)
sapma += Math.Abs(orttipikfiyat[i] - tipikfiyat[j]);
ortsapma[i] = sapma / sayiX;
list[i] = (tipikfiyat[i] - orttipikfiyat[i]) / (0.015f * ortsapma[i]);
}
}
}
return list;
}
catch { return list; }
}
public List<float> RSI(dynamic SistemX, dynamic V, int sayiX)
{
var list = new List<float>(new float[V.Count]);
var x = new List<float>(new float[V.Count]);
var y = new List<float>(new float[V.Count]);
try
{
var RSI = SistemX.RSI(V, sayiX);
var HHV = SistemX.HHV(sayiX, RSI);
var LLV = SistemX.LLV(sayiX, RSI);
for (int i = 1; i < SistemX.BarSayisi; i++)
{
x[i] = RSI[i] - LLV[i];
y[i] = HHV[i] - LLV[i];
}
var sum1 = SistemX.Sum(x, 3);
var sum2 = SistemX.Sum(y, 3);
for (int i = 1; i < SistemX.BarSayisi; i++)
{
list[i] = (sum1[i] / sum2[i]) * 100;
}
return list;
}
catch { return list; }
}
public List<float> MyHHV(dynamic SistemX, dynamic V, int sayiX)
{
// HHV(H,Mov(C,3,E))
var list = new List<float>(new float[V.Count]);
try
{
var C = SistemX.GrafikFiyatOku(V, "Kapanis");
var H = SistemX.GrafikFiyatOku(V, "Yuksek");
var L = SistemX.GrafikFiyatOku(V, "Dusuk");
var Mov = SistemX.MA(C, "Exp", sayiX);
for (int i = 100; i < SistemX.BarSayisi; i++)
{
var listx = SistemX.HHV((int)Mov[i], H);
list[i] = listx[i];
}
return list;
}
catch (Exception e) { MessageBox.Show(e.ToString()); return list; }
}
public List<float> FxSniper(dynamic SistemX, dynamic V, int sayi1, int sayi2)
{
var list = new List<float>(new float[V.Count]);
try
{
var C = SistemX.GrafikFiyatOku(V, "Kapanis");
int barCount = SistemX.BarSayisi;
var mtm = new List<float>(new float[V.Count]);
var absmtm = new List<float>(new float[V.Count]);
var ErgoCCI = new List<float>(new float[V.Count]);
var var1 = new List<float>(new float[V.Count]);
var var2 = new List<float>(new float[V.Count]);
var var2a = new List<float>(new float[V.Count]);
var var2b = new List<float>(new float[V.Count]);
for (int i = sayi2; i < barCount; i++)
mtm[i] = C[i] - C[i - 1];
for (int i = sayi2; i < barCount; i++)
absmtm[i] = Math.Abs(mtm[i]);
var1 = SistemX.MA(mtm, "Exp", sayi1);
var2 = SistemX.MA(var1, "Exp", sayi2);
var2a = SistemX.MA(absmtm, "Exp", sayi1);
var2b = SistemX.MA(var2a, "Exp", sayi2);
for (int i = sayi2; i < barCount; i++)
{
if (var2b[i] != 0)
list[i] = (500 * var2[i]) / (var2b[i]);
}
return list;
}
catch (Exception e) { MessageBox.Show(e.ToString()); return list; }
}
}
}
Cağlar beyden
vade sonları Terorik fiyat farklarını devre dışı bırakan örnek kod, yeniş tarihler ilave edilmesi lazım.
PHP Code:
using System;
using System.Collections.Generic;
using System.Linq;
namespace ideal
{
public class Lib
{
private const int FutureMinExpireDay = 24;
public readonly List<DateTime> FutureExpireDates = new List<DateTime>
{
new DateTime(2018, 10, 31, 18, 15, 0),
new DateTime(2018, 08, 31, 18, 15, 0),
new DateTime(2018, 06, 29, 18, 15, 0),
new DateTime(2018, 04, 30, 18, 15, 0),
new DateTime(2018, 02, 28, 18, 15, 0),
new DateTime(2017, 12, 29, 18, 15, 0),
new DateTime(2017, 10, 31, 18, 15, 0),
new DateTime(2017, 08, 29, 18, 15, 0),
new DateTime(2017, 06, 30, 18, 15, 0),
new DateTime(2017, 04, 28, 18, 15, 0),
new DateTime(2017, 02, 28, 18, 15, 0),
new DateTime(2016, 12, 30, 18, 15, 0),
new DateTime(2016, 10, 31, 17, 45, 0),
new DateTime(2016, 08, 31, 17, 45, 0),
new DateTime(2016, 06, 30, 17, 45, 0),
new DateTime(2016, 04, 29, 17, 45, 0),
new DateTime(2016, 02, 29, 17, 45, 0),
new DateTime(2015, 12, 31, 17, 45, 0),
new DateTime(2015, 10, 30, 17, 45, 0),
new DateTime(2015, 08, 31, 17, 45, 0),
new DateTime(2015, 06, 30, 17, 45, 0),
new DateTime(2015, 04, 30, 17, 45, 0),
new DateTime(2015, 02, 27, 17, 45, 0),
new DateTime(2014, 12, 31, 17, 45, 0),
new DateTime(2014, 10, 31, 17, 45, 0),
new DateTime(2014, 08, 29, 17, 45, 0),
new DateTime(2014, 06, 30, 17, 45, 0),
new DateTime(2014, 04, 30, 17, 45, 0),
new DateTime(2014, 02, 28, 17, 45, 0),
new DateTime(2013, 12, 31, 17, 45, 0),
new DateTime(2013, 10, 31, 17, 45, 0),
new DateTime(2013, 08, 29, 17, 45, 0),
new DateTime(2013, 06, 28, 17, 45, 0),
new DateTime(2013, 04, 30, 17, 45, 0),
new DateTime(2013, 02, 28, 17, 45, 0),
new DateTime(2012, 12, 31, 17, 45, 0),
new DateTime(2012, 10, 31, 17, 45, 0),
new DateTime(2012, 08, 31, 17, 45, 0),
new DateTime(2012, 06, 29, 17, 35, 0),
new DateTime(2012, 04, 30, 17, 35, 0),
new DateTime(2012, 02, 29, 17, 35, 0),
new DateTime(2011, 12, 30, 17, 35, 0),
new DateTime(2011, 10, 31, 17, 35, 0),
new DateTime(2011, 08, 29, 12, 35, 0),
new DateTime(2011, 06, 30, 17, 35, 0),
new DateTime(2011, 04, 29, 17, 35, 0),
new DateTime(2011, 02, 28, 17, 35, 0),
new DateTime(2010, 12, 31, 17, 35, 0),
new DateTime(2010, 10, 27, 17, 35, 0),
new DateTime(2010, 08, 31, 17, 35, 0),
new DateTime(2010, 06, 30, 17, 35, 0),
new DateTime(2010, 04, 30, 17, 35, 0),
new DateTime(2010, 02, 26, 17, 35, 0),
new DateTime(2009, 12, 31, 17, 35, 0),
new DateTime(2009, 10, 30, 17, 35, 0),
new DateTime(2009, 08, 31, 17, 15, 0),
new DateTime(2009, 06, 30, 17, 15, 0),
new DateTime(2009, 04, 30, 17, 15, 0),
new DateTime(2009, 02, 27, 17, 15, 0),
new DateTime(2008, 12, 31, 17, 15, 0),
new DateTime(2008, 10, 31, 17, 15, 0),
new DateTime(2008, 08, 29, 17, 10, 0),
new DateTime(2008, 06, 30, 17, 10, 0),
new DateTime(2008, 04, 30, 17, 10, 0),
new DateTime(2008, 02, 29, 17, 10, 0),
new DateTime(2007, 12, 31, 17, 10, 0),
new DateTime(2007, 10, 31, 17, 10, 0),
new DateTime(2007, 08, 31, 16, 40, 0),
new DateTime(2007, 06, 29, 16, 40, 0)
};
public bool FutureExpires(DateTime date, string period)
{
if (FutureExpireDates == null || FutureExpireDates.Any() == false) return false;
if (date.Day < FutureMinExpireDay) return false;
var fed = DateTime.MinValue;
for (int i = 0; i < FutureExpireDates.Count; i++)
{
var expDate = FutureExpireDates[i];
if (date > expDate) break;
if (date.Date == expDate.Date) fed = expDate;
}
if (fed == DateTime.MinValue) return false;
switch (period)
{
case "B": return date >= fed.AddSeconds(-30);
case "1": return date >= fed.AddMinutes(-2);
case "2": return date >= fed.AddMinutes(-4);
case "3": return date >= fed.AddMinutes(-6);
case "4": return date >= fed.AddMinutes(-8);
case "5": return date >= fed.AddMinutes(-10);
case "8": return date >= fed.AddMinutes(-20); // Gecmise yonelik hesaplamasi zaman alacagindan direk 20 cikardim.
case "10": return date >= fed.AddMinutes(-(fed.Minute % 10 == 0 ? 20 : fed.Minute % 10 + 10));
case "15": return date >= fed.AddMinutes(-(fed.Minute % 15 == 0 ? 30 : fed.Minute % 15 + 15));
case "20": return date >= fed.AddMinutes(-(fed.Minute % 20 == 0 ? 40 : fed.Minute % 20 + 20));
case "30": return date >= fed.AddMinutes(-(fed.Minute % 30 == 0 ? 60 : fed.Minute % 30 + 30));
case "60": return date >= fed.AddMinutes(-(fed.Minute % 60 == 0 ? 120 : fed.Minute % 60 + 60));
case "120": return date >= fed.AddMinutes(-(fed.Minute % 60 == 0 ? 240 : fed.Minute % 60 + 120));
case "240": return date.TimeOfDay >= TimeSpan.FromHours(12);
case "S": return date.TimeOfDay >= TimeSpan.FromHours(10);
case "G": return true;
}
return false;
}
}
}
1 örnek daha. kimden almışım bilmiyorum.
PHP Code:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace ideal
{
public class Lib
{
public List<float> CCI(dynamic SistemX, dynamic VerilerX, int sayiX)
{
var C = SistemX.GrafikFiyatOku(VerilerX, "Kapanis");
var H = SistemX.GrafikFiyatOku(VerilerX, "Yuksek");
var L = SistemX.GrafikFiyatOku(VerilerX, "Dusuk");
var O = SistemX.GrafikFiyatOku(VerilerX, "Open");
var tipikfiyat = SistemX.GrafikFiyatOku(VerilerX, "Tipik");
var list = new List<float>(new float[C.Count]);
try
{
if (C.Count > sayiX)
{
List<float> orttipikfiyat = new List<float>(SistemX.MA(tipikfiyat, "Simple", sayiX));
var ortsapma = new List<float>(new float[C.Count]);
for (int i = 0; i < C.Count; i++)
{
if (i >= sayiX)
{
float sapma = 0f;
for (int j = i - sayiX + 1; j <= i; j++)
sapma += Math.Abs(orttipikfiyat[i] - tipikfiyat[j]);
ortsapma[i] = sapma / sayiX;
list[i] = (tipikfiyat[i] - orttipikfiyat[i]) / (0.015f * ortsapma[i]);
}
}
}
return list;
}
catch { return list; }
}
public List<float> RSI(dynamic SistemX, dynamic V, int sayiX)
{
var list = new List<float>(new float[V.Count]);
var x = new List<float>(new float[V.Count]);
var y = new List<float>(new float[V.Count]);
try
{
var RSI = SistemX.RSI(V, sayiX);
var HHV = SistemX.HHV(sayiX, RSI);
var LLV = SistemX.LLV(sayiX, RSI);
for (int i = 1; i < SistemX.BarSayisi; i++)
{
x[i] = RSI[i] - LLV[i];
y[i] = HHV[i] - LLV[i];
}
var sum1 = SistemX.Sum(x, 3);
var sum2 = SistemX.Sum(y, 3);
for (int i = 1; i < SistemX.BarSayisi; i++)
{
list[i] = (sum1[i] / sum2[i]) * 100;
}
return list;
}
catch { return list; }
}
public List<float> MyHHV(dynamic SistemX, dynamic V, int sayiX)
{
// HHV(H,Mov(C,3,E))
var list = new List<float>(new float[V.Count]);
try
{
var C = SistemX.GrafikFiyatOku(V, "Kapanis");
var H = SistemX.GrafikFiyatOku(V, "Yuksek");
var L = SistemX.GrafikFiyatOku(V, "Dusuk");
var Mov = SistemX.MA(C, "Exp", sayiX);
for (int i = 100; i < SistemX.BarSayisi; i++)
{
var listx = SistemX.HHV((int)Mov[i], H);
list[i] = listx[i];
}
return list;
}
catch (Exception e) { MessageBox.Show(e.ToString()); return list; }
}
public List<float> FxSniper(dynamic SistemX, dynamic V, int sayi1, int sayi2)
{
var list = new List<float>(new float[V.Count]);
try
{
var C = SistemX.GrafikFiyatOku(V, "Kapanis");
int barCount = SistemX.BarSayisi;
var mtm = new List<float>(new float[V.Count]);
var absmtm = new List<float>(new float[V.Count]);
var ErgoCCI = new List<float>(new float[V.Count]);
var var1 = new List<float>(new float[V.Count]);
var var2 = new List<float>(new float[V.Count]);
var var2a = new List<float>(new float[V.Count]);
var var2b = new List<float>(new float[V.Count]);
for (int i = sayi2; i < barCount; i++)
mtm[i] = C[i] - C[i - 1];
for (int i = sayi2; i < barCount; i++)
absmtm[i] = Math.Abs(mtm[i]);
var1 = SistemX.MA(mtm, "Exp", sayi1);
var2 = SistemX.MA(var1, "Exp", sayi2);
var2a = SistemX.MA(absmtm, "Exp", sayi1);
var2b = SistemX.MA(var2a, "Exp", sayi2);
for (int i = sayi2; i < barCount; i++)
{
if (var2b[i] != 0)
list[i] = (500 * var2[i]) / (var2b[i]);
}
return list;
}
catch (Exception e) { MessageBox.Show(e.ToString()); return list; }
}
}
}
bende 3 tane çıktı.
kullanımı nasıldır.
bilen arkadaşlar yazarsa faydalanan olur.
Bear_Bull
@BearBull26
Konusu açılmışken;
İdealde sistem modülünden örneğin Sistem.HullMA(Liste, 20) yazarak herhangi bir listeyi kullanarak indikatör hesaplatıyoruz.
Peki ben Lib.Benimindikatörüm(Sistem,Liste,periyot1, periyot2) şeklinde kendi indikatörlerimde de herhangi bir listeyi okuyabilir miyim ? Basit bir örneği olup paylaşan olursa sevinirim.
İyi günler. Kapanış 1500'ü geçtiğinde alsın, 1450yi aşağı kırdığında satsın. 1450 ile 1500 arası flat kalsın. Kodlamada yardımcı olan arkadaşa teşekkür ederim.
Değerli Forum Üyeleri,
bir konuda yardımınıza ihtiyacım var, ne kadar uğraştıysam da beceremedim maalesef.
Aşağıdaki kodun içinde robot olduğu için idealgoda çalışmıyor. robotsuz haline ne yaptıysam çeviremedim. Lot sayısı olmadan ve robot olmadan nasıl yapılabilir? çok teşekkür ederim.
var EmirSembol = "x";
var EmirSembol1 = "x";
var Lot = 1;
var Sembol = EmirSembol ;
var basicitem = Sistem.YuzeyselVeriOku(EmirSembol);
double SonFiyat = basicitem.LastPrice;
var HaftaYuzdeFark = basicitem.NetPerWeek; //hafta % FARK
var Endeks = Sistem.YuzeyselVeriOku("IMKBX'XU030");
var HaftaYuzdeFarkEndeks = Endeks.NetPerWeek; //hafta% FARK endeks
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);
if (Pozisyon == 0 && HaftaYuzdeFark > HaftaYuzdeFarkEndeks && Rezerv == "")
{
Miktar = Lot;
Rezerv = "ALIŞ";
}
else if (Pozisyon < 0 && HaftaYuzdeFark > HaftaYuzdeFarkEndeks && Rezerv == "")
{
Miktar = -2*Pozisyon;
Rezerv = "ALIŞ";
}
else if (Pozisyon == 0 && HaftaYuzdeFark < HaftaYuzdeFarkEndeks && Rezerv == "")
{
Miktar = -Lot;
Rezerv = "SATIŞ";
}
else if (Pozisyon > 0 && HaftaYuzdeFark < HaftaYuzdeFarkEndeks && Rezerv == "")
{
Miktar = -2*Pozisyon;
Rezerv = "SATIŞ";
}
// Emir Gönder
var Islem = "";
if (Sistem.ZamanKontrolDakika(Sistem.Name) >= 60 )
{ // ZamanKontrolSaniye
Sistem.ZamanKontrolGuncelle(Sistem.Name);
if (Miktar > 0) Islem = "ALIS";
if (Miktar < 0) Islem = "SATIS";
if (Islem != "")
{
Sistem.PozisyonKontrolGuncelle(Anahtar, Miktar + Pozisyon, SonFiyat, Rezerv);
Sistem.EmirIslem = Islem;
Sistem.EmirSembol = EmirSembol1;
Sistem.EmirSuresi = "KIE"; // GUN, KIE, IKG
Sistem.EmirTipi = "Piyasa"; // Piyasa, Limitli, Piyasadan Limite
Sistem.EmirMiktari = Math.Abs(Miktar);
Sistem.EmirGonder();
}}
Son düzenleme : sercanaksu; 07-12-2020 saat: 20:22. Sebep: düzeltme
|
|
merhabalar şu kodu ideale nasıl yazabiliriz
MACD(260,120,30)+10;
MOST(MACD(260,120,30)+10,1,0.3)
macd ye +10 nasıl eklenir
Yer İmleri