optimizasyonu indikatör bazlımı yapmak mantıklı yoksa sistemi optimazyon etmekmi doğru
|
|
Son paragrafınıza tamamen katılıyorum. Arada özelden kodlama eğitimi ve "güzel" indikatör soranlar oluyor.
Strateji geliştirmenin koddan çok daha öncelikli olduğunu söylüyorum.
Klasik tabirle "kutsal kase" olmadığını, velev ki varsa bile arayarak değil çalışarak bulunabileceğini ifade etmeye çalışıyorum.
Geriye doğru trend bazlı teknik analiz yapmak çok kolaydır, ama canlı barda trend çizgisinde fiyat oynamaya başlayıp karar aşaması geldiğinde o kolaylık ortadan kalkar.
Bu işte de böyle, mesela adam bir kanal indikatör reklamı yapıyor. Bakıyorsun özenle seçilmiş periyot hisse. Yüzeysel bakan "üfff, alt bantta al üst bantta sat" parayı bulurum diyor.. Öyle kolayca nah bulursun! O çizgileri kim bilir kaç kere ihlal edecek.. Kendince basit bir strateji geliştirmişsen belki çok daha kolay kazanabilirsin..
Bütün indikatörler zaman zaman kazandırıp zaman zaman kaybettirir; farkı yaratacak olan sizin onlara hakimiyetiniz ve kullanım şekliniz olacaktır.
Geldik, gidiyoruz..
Biçare gönüller! Ne giden son gemidir bu!
Hicranlı hayatın ne de son matemidir bu.
optimizasyonu indikatör bazlımı yapmak mantıklı yoksa sistemi optimazyon etmekmi doğru
Selam sistemimizde basit iki MA (3 EMA-5 EMA) kesişimi ile al sat veren bir algoda fiyat kademe olarak şu kadar karda ise sat nasıl yazılabilir? örneğin fiyat 7.54 den 7.56 ya geldiğinde kar 0.02 olduğunda sat diyebilecek kodu nasıl (yüzde belirtmeden sadece kademe) yazabilriz? Sagolun...
Fiyat grafiği üstüne MA gibi grafik olarak FİYAT-2*ATR kodlar ile nasıl çizdirebiliriz?
Saygılar...
1--- izleyen stop
IzleyenStopPuan(2,i)
işleme girdi 5 kademe kar etti sonradan gevşedi 2 kademe karda iken poz kapat gibi kurgulanır.
2---KarAlPuan(3,i)
işleme girdi istenen kar karşılandı poz kapatır.
hazır kalıplar içinde aynı formüllerin % sel olanlarıda bulunmaktadır.
Bear_Bull
@BearBull26
Bear_Bull
@BearBull26
|
|
Sistem.Cizgiler[0].Deger = MA1;
//Sistem.Cizgiler[1].Deger = MA2;
//Sistem.Cizgiler[2].Deger = MA3;
//Sistem.Cizgiler[3].Deger = ADX;
// kapanış fiyatlarını oku
var C = Sistem.GrafikFiyatSec("Kapanis");
//var L = Sistem.GrafikFiyatSec("Dusuk");
//var H = Sistem.GrafikFiyatSec("Yuksek");
// hareketli ortalamaları hesapla
var MA1 = Sistem.MA(C, "Exp", 3);
//var MA2 = Sistem.MA(L, "Exp", 50);
//var MA3 = Sistem.MA(H, "Exp", 50);
var ATR = Sistem.AverageTrueRange(14) ;
var F1[i] = C[i] - ATR[i] ;
var F2[i] = C[i] + ATR[i] ;
var F1 = Sistem.Liste(0) ;
var F2 = Sistem.Liste(0) ;
// strateji
//var SonYon = "";
//for (int i = 1; i<Sistem.BarSayisi; i++)
//{
//if (MA1[i] < F1[i-1] && MA1[i-1] > F1[i-2] < pivot1[i] = F1[i];
// else pivot1[i] = pivot1[i-1];
//if (MA1[i] > F2[i-1] && MA1[i-2] > F2[i-1] > pivot2[i] = F2[i];
// else pivot2[i] = pivot2[i-1];
//}
//if (MA1[i] > pivot2[i] && MA1[i-1] > pivot2[i-1] && SonYon != "A") // AL
//if (MA1[i] > MA3[i] && SonYon != "A") // AL
// {
// Sistem.Yon[i] = SonYon = "A"; // alış
// }
// else if (MA1[i] < pivot1[i] && MA1[i-1] > pivot1[i-1] && SonYon != "S") // SAT
//else if (MA1[i] < MA2[i] && SonYon != "S") // SAT
//{
// Sistem.Yon[i] = SonYon = "S"; // satış
// }
Sistem.Cizgiler[0].Deger = MA1;
Sistem.Cizgiler[1].Deger = F1 ;
Sistem.Cizgiler[2].Deger = F2;
}
Yer İmleri