Originally Posted by
Hector Salamanca
bars[i].Date.Month olmalı, hata bu.
yazdığım çözüm başka bir düzenleme gerektirmeyen bir çözümdür. copy paste yapmanız yeterli.
aksiyon alacağınız yerde if(VadeSonu) .... yapmanız yeterli olur.
Copy-paste yapmıştım zaten, Date yazımı atlanmış, şuan çözüldü bu problem teşekkürler hızlı geri dönüşünüz için. Yalnız gönderdiğiniz kod vadenin son gününün 9.30 başlangıç mumunda kapatıyor sistemi.
Biraz geliştirmeye çalıştım. Vadenin son günü son mumda sistemi flate geçirebildim fakat yeni vadenin ilk mumunun açılış fiyatından önceki vadenin son yönünde devam ettiremedim sistemi.
vade geçişi.jpg
PHP Code:
var V = Sistem.GrafikVerileri;
var SonYon = "F";
bool VadeSonu = false;
TimeSpan timeSpan1 = new TimeSpan(09, 30, 00);
TimeSpan timeSpan2 = new TimeSpan(18,14,00);
for (int i = 1; i < Sistem.BarSayisi; i++)
{
if ( V[i-1].Date.Month!=V[i].Date.Month && V[i].Date.Month%2==1 && V[i].Date.TimeOfDay == timeSpan1)
//Yeni vade başı saat 9.30 ise 2 bar önceki yönden devam et
{
Sistem.Yon[i] = Sistem.Yon[i-2];
SonYon = Sistem.Yon[i];
continue;
}
if(AL SAT KOŞUL)
{
....
}
DateTime AyinSonGunu = new DateTime(V[i].Date.AddMonths(1).Year,
V[i].Date.AddMonths(1).Month,1).AddDays(-1);
// Çift bir ayda ise && ayın tatil olmayan son günü ise
if ( (V[i].Date.Month % 2) == 0 &&
V[i].Date >= (AyinSonGunu.DayOfWeek == DayOfWeek.Sunday ? AyinSonGunu.AddDays(-2) :
AyinSonGunu.DayOfWeek == DayOfWeek.Saturday ? AyinSonGunu.AddDays(-1) : AyinSonGunu))
VadeSonu = true;
else VadeSonu = false;
if (VadeSonu && V[i].Date.TimeOfDay==timeSpan2) //Vadenin son günüyse ve saat 18.14 ise flat
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
}
}
Burada ilk if bloğunun ilk satırında " Sistem.Yon[i] = Sistem.Yon[i-2]; " bir problem varmış gibi. [i-1] değil [i-10] da alsam Flat yönünde devam ediyor. "Sistem.Yon[i] = "S" veya "A" şeklinde elle yön belirttiğimde kod çalışıyor.
Vadenin ilk mumunda açılış fiyatından son yönde devam ettirmek istiyorum sistemi, yardımcı olabilirseniz sevinirim.
Yer İmleri