0 beğenilme 0 beğenilmeme
249 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 | 249 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,892 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.



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