1 beğenilme 0 beğenilmeme
782 kez görüntülendi
Merhaba

Matriks IQ'da Heikin Ashi için bir hazır strateji bulunuyor. Burada güncel bar için HA_Open, Ha_Close, vs hesaplanmış. Benim ihtiyacım olan HA_Close'un daha önceki barlardaki değerleri ile şimdiki değerini kıyaslamak. Bu parametre bir indikatör ya da bar değeri olmadığından Ref() fonksiyonu bir işe yaramıyor. Bunu nasıl yapabilirim?
Algoritmik Trading kategorisinde (19 puan) tarafından | 782 kez görüntülendi

1 cevap

2 beğenilme 0 beğenilmeme

Merhabalar,

Yazmak istediğiniz sistemi Heikin Ashi değilmiş gibi oluşturunuz. 

Daha sonra stratejinizin OnInit() methodu içerisine, aşağıdaki satırları ekleyiniz.

			var periodInfo = GetHeikinAshiPeriodInfo(SymbolPeriod);
			AddSymbol(Symbol, periodInfo);

Eğer kullandığınız bir indikatör var ise de, indikatör içerisinde bulunan SymbolPeriod kelimesini periodInfo kelimesi ile değiştiriniz.

(Aşağıdaki gibi.)

mov = MOVIndicator(Symbol, periodInfo, OHLCType.Close, 5, MovMethod.Exponential);

Daha sonra sistemi çalıştırabilirsiniz.

Sisteminiz Heikin Ashi'ye dönmüş olacaktır.

İyi çalışmalar.

(11,059 puan) tarafından
0 0
Evet ama böyle yapınca tüm indikatörler, hatta alış satış fiyatı gerçek bar değerlerine göre değil Heiken Ashi bar değerlerine göre olmuyor mu?

Benim amacım gerçek bar değerleri ile başka koşullar bulundurup, bunların yanında Heiken Ashi değerleri ile ile ek koşullar koymak.

Teşekkürler.
1 0

Merhabalar,

Aşağıdaki gibi bir tanımlama yapabilirsiniz.

PeriodInfo periodInfo;
		
		public override void OnInit()
		{
			periodInfo = GetHeikinAshiPeriodInfo(SymbolPeriod);
			AddSymbol(Symbol, periodInfo);
			AddSymbol(Symbol,SymbolPeriod);

Bu tanımlamadan sonra OnDataUpdate() içerisinde,

Heikin olarak çekmek istediğiniz barları Symbol,periodInfo yazarak, standart data çekmek isterseniz de Symbol ve SymbolPeriod yazarak işlem yapabilirsiniz.

public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
		{
			var barData = GetBarData(Symbol,SymbolPeriod);
			var close = GetSelectedValueFromBarData(barData,OHLCType.Close,1);
			
			var barData1 = GetBarData(Symbol,periodInfo);
			var close1 = GetSelectedValueFromBarData(barData1,OHLCType.Close,1);

İyi çalışmalar.

0 0

Bu konutlar sizin söylediğiniz gibi çalışmıyor. Resimde console ekranını görebilirsiniz. Normal barlarım 60 dakikalık. Heikin periyodu da aynı geliyor sizin bahsettiğiniz komuttan. Yani (periodInfo = SymbolPeriod)

Ayrıca bu nedenle kapanış değerleri de hem Heikin barlarında hem normal barlarda aynı geliyor. Benim yapmak istediğim normal barlara göre hesaplanmış bazı indikatörlerden türettiğim koşullar ile Heikin barlarında mevcut barın yükseğinin son iki barın yükseğinden büyük olması koşulunu eklemek. Düşükler için de benzer bir yöntem kullanıyorum.

Tradingview'da kullandığım kod şöyle:

//

hahigh = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, high)
halow = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, low)

BuyCondition = hahigh > math.max(hahigh[1],hahigh[2]) and (TenkanSen>=KijunSen) ..... 

BuyFlatCondition = halow < math.min(halow[1],halow[2]) and TenkanSen<KijunSen .....

 

Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.



8,636 soru
8,590 cevap
4,821 yorum
19,790 kullanıcı