0 beğenilme 0 beğenilmeme
141 kez görüntülendi
Merhaba, örneğin EMA indikatörünün son değerine en yakın olan fiyatı nasıl çekebilirim? EMA indikatörünün son değerine algoda alış emri göndermeye çalışıyorum ancak indikatörün son değeri fiyat adımına uymadığı için emir gidemiyor. O yüzden indikatöre en yakın (ya da hemen üstünde ya da hemen altında farketmez) fiyatı çekmek istiyorum. Teşekkürler.

 

NOT: emaFiyat = Math.Round(ema.Value[0][ema.CurrentIndex], 2); kodu ile indikatörün değerini çekiyorum ama fiyat adımına tutmuyor.
Algoritmik Trading kategorisinde (141 puan) tarafından | 141 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba,

Eğer Bist tarafında işlem yapıyorsanız GetPriceStepForBistViop() fonksiyonunu aşağıdaki gibi kullanabilirsiniz.

var fiyatYuvarla=GetPriceStepForBistViop(Symbol,ema.CurrentValue);

Her iki piyasada da işlem yapacaksanız aşağıdaki yapıyı kullanabilirsiniz.

decimal priceStep, quantityStep = 1;
		int exchangeID;

		public override void OnInitComplated()
		{
			var priceStep = 0.0m;
			var symbolDetail = GetSymbolDetail(Symbol);

			exchangeID = symbolDetail.ExchangeDetail.ExchangeID;
			var close = GetSelectedValueFromBarData(GetBarData(), OHLCType.Close);

			if (exchangeID != (int) ExchangeType.Ise && exchangeID != (int) ExchangeType.Viop)
			{
				priceStep = 1 / (decimal) Math.Pow(10, symbolDetail.DecimalCount);
				quantityStep = 1 / (decimal) Math.Pow(10, symbolDetail.TradeFraction);
			}else
			{
				priceStep = GetPriceStepForBistViop(Symbol, close);
			}

			Debug("exchangeID: " + exchangeID + " priceStep: " + priceStep + " quantityStep: " + quantityStep);
		}

public decimal FX_LotAyarla(decimal quantity)
{
	return Math.Floor(quantity / quantityStep) * quantityStep;
}

public decimal FX_FiyatAyarla(decimal price)
{
	return Math.Floor(price / priceStep) * priceStep;
}

Kullanımı:

var fiyatYuvarla=FX_FiyatAyarla(ema.CurrentValue);
var lotYuvarla=FX_LotAyarla(oncekiLotMiktari*1.1m);

 

(15,682 puan) tarafından
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.



7,647 soru
7,642 cevap
4,448 yorum
11,169 kullanıcı