Kodu şu şekilde düzenledim T/A Hocam;
ShortMA := Mov(C,10,S);
LongMA := Mov(C,20,S);
BuySignal := Cross(ShortMA, LongMA);
SellSignal := Cross(LongMA, ShortMA);
BarsAfterBuy := BarsSince(BuySignal);
HighNext1 := If(BarsAfterBuy = 1, H, 0);
HighNext2 := If(BarsAfterBuy = 2, H, 0);
HighAfterBuy := If(HighNext1 > HighNext2, HighNext1, HighNext2);
BuyCount := Cum(BuySignal);
SecondLastBuy := If(BuyCount = LastValue(BuyCount) - 1, 1, 0);
TargetHigh := If(SecondLastBuy, HighAfterBuy, 0);
BuyMark := If(BuySignal, L * 0.98, 0);
SellMark := If(SellSignal, H * 1.02, 0);
ShortMA;
LongMA;
BuyMark;
SellMark;
HighAfterBuy;
TargetHigh;
Adına da TA7 ismini verdim. 7. Denemede bulabilmişim.
Şimdi bu sistemi kendi sistemlerime entegre edeceğim.
Yardımınız için teşekkür ederim. İyi geceler…
![]()
“Başarısızlık yeniden ve daha zekice başlayabilme fırsatından başka bir şey değildir.” Henry Ford
"Yatırım Tavsiyesi Değildir!"... Eğitim ve Bilgi amaçlı paylaşımlar yapıyorum.
Yeteri kadar düşmüş sayılabilir ama henüz düşebileceği yer mevcut... 5.63
Olursa güzel olur ama illâ olacak diye de zorlamamak gerekir...!!!
Dikkat edilmesi gereken; hareket başlamadan alınmaması gerektiğidir. Alıp uzun süre elde bekletebilir...!!!
![]()
"Yatırım Tavsiyesi Değildir!"... Eğitim ve Bilgi amaçlı paylaşımlar yapıyorum.
Hayırlı Haftalar...
Sağlık ve mutluluk dolu güzel bir hafta olmasını diliyorum...
"Yatırım Tavsiyesi Değildir!"... Eğitim ve Bilgi amaçlı paylaşımlar yapıyorum.
Şimdilik başaramadım hocam rakamları değiştirip başka kriterler istiyorum. Görsel olarak da sayısal olarak da olmadı. Benim amacım görselden ziyade explorer çalıştırarak eleme yapmaktı olmadı. Daha çok geriye dönük sistem testi yapacaktım onun lazımdı ama olsun çok büyük yardımınız dokundu.
Keşke amibroker öğrenseydim o zaman sizden yardım alırken büyük kolaylık olurdu.
Her ne kadar formül dilimiz aynı olmasa da belki sizden bir fikir almak amacı ile ben yine yaramaz bir kardeşiniz olarak soracağım hocam
Diyelim ki bir sinyal ile AL elde ediliyor. Ama o sinyalin belirli bir süre takibi ile bir kriter daha gerçekleşince AL sinyali güvenli hale geliyor. Son gerekleşen AL ktriterden önce en baştaki AL sinyalinin varlığını nasıl test ederim ya da kodlarım?
Benim aklıma manuel olarak ilk AL sinyali verenleri listelemek oradan takibini yapmak geldi. Fakat o zaman da liste uzarsa diye kafama yatmadı. İllaki kod istemiyorum hocam bir akıl verseniz de ben çözmeye çalışırım.
Örnek vereyim daha anlaşılır olsun, kapanışın 21 EMAY'ı geçmesi 1. AL sinyali olsun bu şart devam ederken RSI'nın da 70'i yukarı kesmesi 2. AL sinyali olsun. Benim sorum şu RSI 70'i bugün kesmişse atıyorum 10 gün geriye dönük sinyallerde 1. AL sinyali var mıydı?
Not : Yazacağım kodda bu geriye dönük 10 sayısı yer alacak...
Son düzenleme : BJK Coccinella; 20-10-2025 saat: 20:03.
“Başarısızlık yeniden ve daha zekice başlayabilme fırsatından başka bir şey değildir.” Henry Ford
Zaman içerisinde gerçekten işine yarayacağını düşünüyorsan kodu öyle ya da böyle bir şekilde çalıştıracağından eminim...
Ben CandleStick çalışmasını yaklaşık 12-13 yıl sonra tamamladım ve hâlâ da eksikleri var. Zaman içerisinde tüm sorular cevap bulacaktır...
Diğer soruya ise anlayabildiğim kadar cevap vermeye çalışayım:
- Karar verilmesi gereken bir aşama var:
- "2.sinyal eğer 1.sinyal oluştuktan sonra mı?" aranacak..?
- "2.sinyal oluştuğunda, 1.sinyal var mıydı?" diye mi bakılacak?
Sonuçta her ikisi de benzer şekilde aynı kapıya çıkacaktır gibi görünüyor...
Kolay olan ise; 2. sinyal oluştuğunda; geçmişe dönüp 10 bar içerisinde 1. sinyalin varlığını kontrol etmektir...
Bunun için her biri için ayrı ayrı AL sinyalinin varlığını kontrol eden bir diziler oluşturman ve 2. AL sinyali geldiğinde 1. sinyalin 10 gün gerisinde "1" ( veya "True") var mı diye kontrol etmen gerekir...
Eğer anladığım doğruysa çözüm yolu da bu şekilde olabilir. Yine de kodlayıp kontrol etmek gerekir...
AmiBroker ile çok zor olmaz ile MetaStock beni biraz zorluyor. Yine de bir deneme yaptım ve aşağıdaki sonucu ve kodunu paylaşıyorum...
PHP Code:{=== Parametreler ===}
emaP := Input("EMA Period", 1, 300, 21);
rsiP := Input("RSI Period", 2, 100, 14);
rsiBuyLv := Input("RSI Buy Level (genelde 30-50)", 1, 99, 60);
lb := Input("Lookback Bars (yalnizca gecmis)", 1, 200, 10);
{=== Göstergeler ===}
ema21 := Mov(C, emaP, E);
rsi14 := RSI(rsiP);
{=== Sinyal #1: EMA21 kesişimiyle AL ===}
Sig1EMABuy := Cross(C, ema21);
{=== Sinyal #2: RSI14 ile AL ===}
Sig2RSIBuy := Cross(rsi14, rsiBuyLv);
{=== Esas AL: RSI bazlı AL ve son lb barda EMA-AL olmuş mu? ===}
HadEMABuyInPast := HHV( Ref(Sig1EMABuy, -1), lb );
MainBuy := Sig2RSIBuy AND HadEMABuyInPast;
{=== Çıktılar ===}
ema21; { fiyat grafiğinde EMA çizmek için }
MainBuy; { sinyali 0/1 şeklinde göstermek için }
TargetHigh := If(MainBuy, C, 200);
TargetHigh;
NOT: TargetHigh konumu gösterebilmek için seçilen bir değişken...
![]()
Son düzenleme : T/A; 20-10-2025 saat: 22:39.
"Yatırım Tavsiyesi Değildir!"... Eğitim ve Bilgi amaçlı paylaşımlar yapıyorum.
Yer İmleri