0 beğenilme 0 beğenilmeme
148 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 | 148 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,742 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,771 soru
7,757 cevap
4,486 yorum
12,043 kullanıcı