Bende de aynı şekilde. Ayrıca iDeal bağlantısı sık sık kesiliyor. Sanırım iDeal sunucularında bir problem var.
Sent from my SM-N910C using Tapatalk
Printable View
Merhaba, sevgili ideal kullanıcıları.
Forumda çok eskiyim ama uzun yıllardır yazmıyordum nedenine gelince bağımlılık yapması :) Gün içi trade ettiğim için çok fazla dikkatim dağılıyordu. Uzun yıllardır matriks kullanıyorum ve algoritmalar neredeyse hobim sayılır. Twitterda ideal ile ilgili yazılanları okuyunca iyiden iyiye merak uyandı ve aracı kurumdan ideal açtırdım. Sonuçta yıllarca matriks kullanan biri olarak sudan çıkmış balığa döndüm :)
Ufaktan sistem yazma denemelerim oluyor ama hala alışmış değilim. sizden mümkünse 2 ricam olacak sunucudan grafik verilerini indirdiğim halde veriler çok gerilere gitmiyor ( 1dk --> 2 ay). Neden böyle açıkçası bilmiyorum ama bu matriksten bile daha az. Forumda biraz geriye gidince bu verilerin paylaşılabildiğini öğrendim, mümkünse guccam@gmail.com gönderen olursa sevinirim. ikincisi ise sistem grafiği açtığımda al sat noktalarında bir uyarı vermiyor, sesli veya ekrana uyarı kutucuğu çıkmasını nasıl sağlarım?
Şimdiden çok teşekkürler herkese kolay gelsin.
Özel mesajdan soran arkadaşlar da oluyor, geçmişe yönelik verileri directfn'e mail atarak isteyebilirsiniz.
Al sat noktalarında uyarı almak istiyorsanız alım satım koşulunuz gerçekleştiğinde aşağıdaki gibi kodlar yazarak mesaj veya ses çıkarabilirsiniz.
Mesaj için:
Sistem.Mesaj("buraya istediğinizi yazabilirsiniz");
veya
Sistem.Mesaj(Sistem.GrafikVerileri[Sistem.BarSayisi - 1].Close.ToString());
Ses için:
Sistem.Ses();
veya
Sistem.Ses("bilgisayarınızdaki_bir_ses_dosyasının_ adresi");
Detaylı açıklama şurada mevcut:
http://www.directfn.com.tr/download/...stemKlavuz.pdf
Arkadaslar merhaba
idealin kendi sayfasinda bulunan asagidaki kod ornegini kendime uyarladim sistem calisti ama gmail kullandigim icin giris google tarafindan engellendi guvensiz baglanti vs diye. bunu nasil duzeltebiliriz ?
var Sembol = "IMKBH'GARAN";
var Seviye = 7.50;
var SonFiyat = Sistem.SonFiyat(Sembol);
var Mesaj = Sembol + "Son fiyatı " + SonFiyat + " değerini kırdı";
if (SonFiyat >= Seviye)
{
Sistem.GoruntuKaydet(“C:\\Ekranım.pngâ€);
var MailServer = "smtp.gmail.com";
Sistem.MailServerAdres = MailServer;
Sistem.MailServerPort = 587;
Sistem.MailKonu = "IDEAL ALARM";
Sistem.MailMetin = Mesaj ;
Sistem.MailGonderenAdres = "deneme123@gmail.com";
Sistem.MailGonderenSifre = "xxxxxxx";
Sistem.MailDosyaEkle(“C:\\Ekranım.pngâ€);
Sistem.MailAliciEkle("sezai.kilic@directfn.com");
}
Maili bana mı atacaksınız :)
Gmailden gelen o güvenlik uyarısı maili içinde, izin vermek istiyorsanız buraya tıklayın vs gibi bir link vardır.
Veya ayarlardan kendiniz de yapabilirsiniz.
https://i.hizliresim.com/zMOLRO.png
Bu kod robotsuz çalışıyor mu?
Sezai Bey merhaba
oncelikle gmail ayarlarim sizin resimde belirttiginiz yonlendirme ve /pop imap kismi gibi idi. maili kendi gmail adresimden tekrar ayni gmailime atmak istedim. kodu calistirmamla ayni anda gmailden bahsettigim uyarisini aldim ve malesef gelen uyari ekraninda hicbir sekilde izin verme ile alakali bir link veya baska bir alternatif bi cozum yolu yoktu.
Veri akisinda bi sikinti var sanki.
Mail ile bilgi almakdan daha iyi yöntemler var aslında.
Anlık bilgilendirmeleri Telegram ile alıyorum. User.dll kullanan arkadaşlara öneririm.
1- Telegramda botfather ile keyleri alın.
2- nuget ile Telegram.Bot apisini projeye dahil edin.
3-Bot.SendTextMessageAsync metodu ile size ait bot ile kendi telegram hesabınıza mesaj atabilirsiniz.
Aynı adres gönderen ve alan şeklinde olunca zaten mail gitmeyecek , hata da vermiyor sanırım o durumda . telegram usulünü öğrenmiş olduk arada , teşekkürler
ekran başında değilseniz ve alarm için kullanıyosanız( bağlantı sorunları , gerçekleşmeyen emirler , sıradışı durumlar falan için) sms gönderimini de düşünmekte fayda var. data kesintisi durumunda dahi sms dağda bayırda bi şekilde ulaşıyor
Degerli idealciler size guzel bir haberim var. uzun cabalar sonunda C# dilinde matriks veri terminalinde bulunan ama idealde olmayan N bar uygulamasini yazdik. Bunu ideale cevirecek bir babayigit ariyorum :)
using System;
namespace beta3
{
class Program
{
static void Main(string[] args)
{
//list for 1min and global variables
//double[,] list = new double[7, 5] { { 10.00, 16.68, 16.74 , 16.74, 16.65 },
//{ 10.01, 16.75, 16.78 , 16.78, 16.75 },
//{ 10.02, 16.78, 16.79 , 16.80, 16.76 },
//{ 10.03, 16.80, 16.78 , 16.80, 16.78 },
//{ 10.04, 16.77, 16.77 , 16.77, 16.77 },
//{ 10.05, 16.77, 16.76 , 16.77, 16.76 },
//{ 10.06, 16.20, 16.30 , 16.40, 16.10 }
//};
// Create Random matrix
double[,] list = new double[425, 5];
Random rnd = new Random();
int xDimension = list.GetUpperBound(0) + 1;
int yDimension = list.GetUpperBound(1) + 1;
int newXdimension;
for (int i = 0; i < xDimension; i++)
{
for (int j = 1; j < yDimension; j++)
{
int rastgele = rnd.Next(1, 1000);
list[i, j] = rastgele;
}
}
double start_time = 10.00;
int x;
for (int i = 0; i < xDimension; i++)
{
start_time = Math.Round(start_time, 2);
list[i, 0] = start_time;
start_time = start_time + 00.01;
x = Convert.ToInt32(start_time * 100);
if ((x == 1060) || (x == 1160) || (x == 1360) || (x == 1460) || (x == 1560) || (x == 1660) || (x == 1760))
{
start_time = start_time - 00.60;
start_time = start_time + 01.00;
//Console.WriteLine(Convert.ToString(start_time));
}
if (x == 1260)
{
start_time = 14.00;
}
}
int n;
int count = 0;
// with n-bar calculate new list
while (true)
{
try
{
Console.WriteLine("Enter your n-bar");
n = Convert.ToInt32(Console.ReadLine());
break;
}
catch (FormatException)
{
Console.WriteLine("Lütfen bir tam sayı giriniz!");
}
}
newXdimension = xDimension / n;
double[,] newArray = new double[newXdimension, yDimension];
double[,] high = new double[newXdimension, n];
double[,] low = new double[newXdimension, n];
//Console.WriteLine(newXdimension);
//Console.WriteLine(yDimension);
for (int i = 0; i < newXdimension; i++)
{
newArray[i, 0] = list[count, 0];
newArray[i, 1] = list[count, 1];
newArray[i, 2] = list[(count + n) - 1, 2];
count = count + n;
}
int a = 0;
for (int i = 0; i < newXdimension; i++)
{
for (int j = 0; j < n; j++)
{
high[i, j] = list[a, 3];
low[i, j] = list[a, 4];
a = a + 1;
}
}
int high_low_Xdimension = high.GetUpperBound(0) + 1;
int high_low_Ydimension = low.GetUpperBound(1) + 1;
double[] max = new double[high_low_Xdimension];
double[] min = new double[high_low_Xdimension];
for (int i = 0; i < high_low_Xdimension; i++)
{
min[i] = 99999999999;
}
for (int i = 0; i < high_low_Xdimension; i++)
{
for (int j = 0; j < high_low_Ydimension; j++)
{
if (max[i] < high[i, j])
{
max[i] = high[i, j];
}
newArray[i, 3] = max[i];
if (min[i] > low[i, j])
{
min[i] = low[i, j];
}
newArray[i, 4] = min[i];
}
}
//------ the last version list print
int rowLength = newArray.GetLength(0);
int colLength = newArray.GetLength(1);
string[] title = new string[5] { "Time", "Start", "Finish", "High", "Low" };
for (int i = 0; i < title.Length; i++)
{
Console.Write(string.Format("{0}\t", title[i]));
}
Console.WriteLine();
for (int i = 0; i < rowLength; i++)
{
for (int j = 0; j < colLength; j++)
{
Console.Write(string.Format("{0}\t", newArray[i, j]));
}
Console.WriteLine();
}
}
}
}
Teşekkürler Orhan bey yaklaşık 1 aydır Telegram botu ile ekran görüntüsünü almaya çalışıyordum. Beceremeyip vazgeçtim. cTrader tarzı bir bilgilendirme/alarm uygulaması geliştirilse süper olur program için.
Aşağıdaki metodu farklı projede kullanıyorum. direk kullanabilirsiniz.
ideal için resim ihtiyacı hiç duymadım, neden ihtiyaç duyulduğunu da bilmiyorum. örnek verirseniz eğer resim almakdan daha iyi çözümler paylaşabilirim.
bu metodu Kullandığım yerle ilgili bir örnek:PHP Code:
async void ResimMesajGonder(long ChatID, string url, string mesaj)
{
using (var stream = System.IO.File.Open(url, FileMode.Open))
{
FileToSend fts = new FileToSend();
fts.Content = stream;
fts.Filename = url.Split('\\').Last();
var test = await Bot.SendPhotoAsync(ChatID, fts, mesaj);
}
}
https://image.prntscr.com/image/DzUE...0EbdzOq9UQ.png
https://www.youtube.com/watch?v=fhfRBivNccA
sayın ideal yetkilileri
daha önce matriks fxplus proğramlarını kullanmış birisi olarak söylemeliyimki ideal sorunsuz hatasız ve çoık hızlı çalışıyor
otomatik al sat robot fonksiyonları mükemmel çalışıyor
ancak robotla işlem yapmak istemeyen de bir kullanıcı kitlesi ve çalıştığı aracı kurumu robot işlem i desteklemeyen kullanıcılar var
yukarıda gcm menkul un metatarader 5 programı üzerinde hazırlamış olduğu viop ta emir giriş stop emir giriş video su var
bizlerden grafik üzerinden pozisyon açıp bekleyen emir yazıp ,pozisyonlarımıza stop emirler koymak istiyor ve bu bekleyen emirleri ve stop emirlerini grafik üzerinden aşağıya yukarıya kaydırarak değiştirebilmek istiyoruz
sayın ideal yetkilileri bu konuda hızlı bir şekilde aksiyon alıp çalışma yapmanızı umuyoruz ve bekliyoruz
saygılar
İdeal için resim ihtiyacım pc başında olmadığım zamanlarda olmakta. Hisse derinlik kademelerini Twitter da 10-20 dk.da bir yayınlayanlardan bakıyorum, bunda da takip ettiğim hisseler olmamakta. Robot ile güniçi her 10 dakikada bir C:\iDeal\Test.jpg ye görüntü alıyorum.
İstediğim telegram da /ekran yazdığımda veya ekran butonuna tıkladığımda bana C:\iDeal\Test.jpg resmi göndersin. Yani mail kalabalığı ile uğraşmayayım.
Github da şunu bulmuştum araştırma yaptığım zamanlarda. Python dilinde yazılmış, Python3 kurulumu ve ek bir screencapture programı kullanıyor.
https://github.com/shafiqsaaidin/monbot
Resim olarak aldığınız bilgileri metin olarak alabilirsiniz.
bot değil mesaj gönderme projesi aşağıdaki.
bot yapmak isterseniz yukarda resimdeki gibi bir kod yapısını bir timer içine atmanız yeterlidir. o kısmı detaylandırmadım.
İdeal ile entegre telegram botu örneğini sadeleştirdim sizin için.
eğer user.dll projesi yazdıysanız başka bir şeye ihtiyacınız olmayacak.
https://codeshare.io/G8VmYj
//Proje öncesi işlemler
1- telegramda @botfather ile sohbet ederek keyleri oluşturun.
Telegram botunu yapmaya, Telegram’a girerek başlayalım. Kişi arama bölümüne “botfather” yazalım. Bu bot, Telegram’ın geliştiricilere sunduğu resmi bottur. Kişiyi ekledikten sonra konuşma açıp /start diyoruz. Bu esnada bize gönderebileceğimiz komutları listeleyecektir. Yeni bir bot oluşturacağımız için ilk olarak /newbot komutunu gönderiyoruz. Daha sonra bizden botun ismini soracaktır. Buraya botun adını giriyoruz. Örneğin “Örnek Bot” diyebiliriz. Daha sonra botun kullanıcı adını soracaktır. Bunu da “ornek_bot” yapalım. Kullanıcı adını başarılı olarak aldıysak bize bir erişim kodu (access token) verecektir. Bu kodu saklayalım.
2-botunuzla kendi hesabınızdan sohbet başlatın.
3-https://api.telegram.org/x:y/getupdates adresinde yaptığınız sohbetin chat id sini bulun. bulduk:12345 olsun.
telegram sadece chat id yada telegram kanalı username'e mesaj gönderebilir.
o değilde bir taş attık ama telegram kanallarında otomatik hisse paylaşan ideal-telegram robotları patlama yapabilir bundan sonra :)
geçenlerde test olarak açtığım fakat stratejisini daha bitirmediğim bir twitter botum var şöyle.
https://twitter.com/TunganaBOT
data aktarımı ile idealde çalışıp indikatörleri manuel kodluyorum :(
arkadaşlar merhaba,
hem ideali hemde matriksi kullanmış olan arkadaşlardan rica ediyorum, bir program seçmem gerekiyor, zaman kaybı da olsun istemiyorum. Mühendisim c# biliyorum, matriksin dilini de öğrenebilirim sorun olmaz.
Tavsiyenizi artı ve eksileriyle bana bu konuda yardımcı olmanızı rica ederim.
herkese saygılar...
İdeal
MI 5s cihazımdan hisse.net mobile app kullanarak gönderildi.
ben 1.5 sene önce tamamen ideale taşındım. matriks ideale göre inanılmaz kısıtlı. 25 yıl öncenin metastock mantığına takılmış kalmış durumda.
matriksde portföy yönetimi yapamassın risk yönetimi yapamassın , idealde sadece hayal gücünle c# bilginle sınırlısın.
matriksde belki tek olumlu olabilecek durum datanın ulaşma hızı ve emirlerin aracı kuruma iletilme hızı. sanırım o fark da matriksde FIX protokolu kullanılmasından kaynaklanıyor. toplam 20ms gibi bir fark olduğunu düşünüyorum ama bundan da emin değilim, ölçebilecek bir yöntemim yok
yillardir matriks kullanmisbiri olarak eger c# bilginizde varsa kesinlikle ideal derim. yapabilecegin seyler hayallerinle sinirli.
ideal bir taraftanda kendini gelistirmeye devam ediyor. suan idealde N BAR UYGULAMASI yok. mesela biz suan c# matriksdeki gibi N bar uygulamasini yazdik. yarin birgun bir arkadas veya idealden sezai bey yardimci olup ideale cevireceklerdir.
N bar 150 dk lık barla çalışmak isterseniz. 30dk×5
2 saatlik bar ile çalışmak isterseniz 1s×2 gibi sanırım.
SM-N935F cihazımdan Tapatalk kullanılarak gönderildi
Bir sorumda benim var.
Arkadaşlar aylık getiri performansını nasıl görebilirim ? 1 - 2 - 3 aylık getirşer değil. Ay ay görebileceğim bir şey var mı ? Performanstan tek tek bakmak yoruyor.
Teşekkürler dostlar
Orhan bey malesef user.dll bilgim olmadığı için formülleri Lib.cs yaptım ama beceremedim. Bunun yerine görüntüyü Yandex.disk e alıp kullanmaya başladım. Görüntüyü mail den almaktan daha kolay bir yöntem. Ama söylediğiniz gibi ekran görüntüsü almak gereksiz geldi bana. Server ve Evde robot çalıştıran arkadaşların işini görebilir. Çalışmalarınızda başarılar güzel bir çalışma olmuş.
//Ekran YandexDisk
var t1 = "09:50" ;
var t2 = "18:10" ;
string kaydet = "C:\\Xxxx\\Xxxx\\YandexDisk\\Test.jpg";
if (Sistem.SaatAraligi(t1, t2) == true && Sistem.ZamanKontrolDakika("KAYIT") >= 30)
{
Sistem.ZamanKontrolGuncelle("KAYIT");
Sistem.GoruntuKaydet(kaydet);
}
herkese merhaba,
öncelikle değerli paylaşımlarda bulunan herkese sonsuz teşekkürler.Sayenizde bir çok şey öğrendim ve umarım öğrenmeye devam ederim.Üyelik ile ilgili ufak bir sorunum vardı, çözülünce yazabildim.Giriş yapamadığım dönemde burda paylaşılan bütün formüllerin kaydı paylaşılmıştı.Şimdi aradım bulamadım.Acaba elinde olan var mı,paylaşabilirse sevinirim.
Basit. a1 sistemi içindeki AL ve SAT koşullarını atadığınız yerlerde o anın fiyatını, tarihini ve yönünü bir yere yazdırın (mesela parametrelere) sonra a1 kenarda dursun, a2 diye ayrı bir kod içinden a1'i SİSTEM GETİR ile her periyot için çağırın, a1'de yazdırdığınız bilgileri çekip zemine yazdırın.
a1
Kod:if (AL KOŞULU)
{
Sistem.Yon[i] = "A";
SonYon = "A";
Sistem.Parametreler[0]= V[i].Date.ToString("dd.MM.yyyy - HH:mm"); //sistemgetir ile okutabilmek için
Sistem.Parametreler[1]= C[i].ToString(); //sistemgetir ile okutabilmek için
Sistem.Parametreler[2] = SonYon; //sistemgetir ile okutabilmek için
}
else if (SAT KOŞULU)
{
Sistem.Yon[i] = "S";
SonYon = "S";
Sistem.Parametreler[0]= V[i].Date.ToString("dd.MM.yyyy - HH:mm"); //sistemgetir ile okutabilmek için
Sistem.Parametreler[1]= C[i].ToString(); //sistemgetir ile okutabilmek için
Sistem.Parametreler[2] = SonYon; //sistemgetir ile okutabilmek için
}
a2 ise şöyle:
Kod://1 dklık sistemi getir (a1'in sinyallerini ekranda görmek için)
var A1_1 = Sistem.SistemGetir("_a1",Sistem.Sembol, "1");
Sistem.Yon = A1_1.Yon;
//5 dklık sistemi getir
var A1_5 = Sistem.SistemGetir("_a1",Sistem.Sembol, "5");
var zaman_5 = A1_5.Parametreler[0];
var fiyat_5 = Convert.ToSingle(A1_5.Parametreler[1]);
var SonYon_5 = A1_5.Parametreler[2];
//15 dklık sistemi getir
var A1_15 = Sistem.SistemGetir("_a1",Sistem.Sembol, "15");
var zaman_15 = A1_15.Parametreler[0];
var fiyat_15 = Convert.ToSingle(A1_15.Parametreler[1]);
var SonYon_15 = A1_15.Parametreler[2];
//60 dklık sistemi getir
var A1_60 = Sistem.SistemGetir("_a1",Sistem.Sembol, "60");
var zaman_60 = A1_60.Parametreler[0];
var fiyat_60 = Convert.ToSingle(A1_60.Parametreler[1]);
var SonYon_60 = A1_60.Parametreler[2];
//5 dk sonuçlarınız yazdır
Sistem.ZeminYazisiEkle("5 Dakikalık", 1, 180, 60, Color.White, "Tahoma", 10);
Sistem.ZeminYazisiEkle("Yön =" + SonYon_5 , 1, 180, 80, Color.Pink, "Tahoma", 10);
Sistem.ZeminYazisiEkle("Saat = " + zaman_5.ToString(), 1, 180, 100, Color.Pink, "Tahoma", 10);
Sistem.ZeminYazisiEkle("Fiyat = " + fiyat_5.ToString(), 1, 180, 120, Color.Pink, "Tahoma", 10);
//15 dk sonuçlarınız yazdır
Sistem.ZeminYazisiEkle("15 Dakikalık", 1, 380, 60, Color.White, "Tahoma", 10);
Sistem.ZeminYazisiEkle("Yön =" + SonYon_15 , 1, 380, 80, Color.Pink, "Tahoma", 10);
Sistem.ZeminYazisiEkle("Saat = " + zaman_15.ToString(), 1, 380, 100, Color.Pink, "Tahoma", 10);
Sistem.ZeminYazisiEkle("Fiyat = " + fiyat_15.ToString(), 1, 380, 120, Color.Pink, "Tahoma", 10);
//60 dk sonuçlarınız yazdır
Sistem.ZeminYazisiEkle("60 Dakikalık", 1, 580, 60, Color.White, "Tahoma", 10);
Sistem.ZeminYazisiEkle("Yön =" + SonYon_60 , 1, 580, 80, Color.Pink, "Tahoma", 10);
Sistem.ZeminYazisiEkle("Saat = " + zaman_60.ToString(), 1, 580, 100, Color.Pink, "Tahoma", 10);
Sistem.ZeminYazisiEkle("Fiyat = " + fiyat_60.ToString(), 1, 580, 120, Color.Pink, "Tahoma", 10)
https://i.hizliresim.com/JD91Dj.png