MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
0 beğenilme 0 beğenilmeme
391 kez görüntülendi
iz süren stop gerçekleşirse robotun bir süre hiç bir işlem yapmamasını istiyorum

bu satırı gerekli fonksiyonun içine ekledim ama delay fonksiyonunu nereye yazacağımı bulamadım.

// TrailingStopLoss(Symbol, SyntheticOrderPriceType.Percent, izsurenyuzde);
Algoritmik Trading kategorisinde (22 puan) tarafından | 391 kez görüntülendi

1 cevap

1 beğenilme 0 beğenilmeme

Merhaba,

bir kaç hafta sonra yeni versiyon gelecek sentetik emir gerçekleştiğinde tetiklenecek methodlar eklendi.

yeni versiyonda daha kolay olacak ama şuan için şöyle bir şey yapılabiir. 

al sat koşulları sağlandığında gönderilen emirleri bir listede tutup listede olmayan bir emir gerçekleştiğinde sentetik emir tetiklendiği varsayarak işlem yapabiliriz.

Sentetik emirin tetiklendiğini OnOrderUpdate() methodunda aşağıdaki gibi kontrol edip bir değişkene o anki anın üzerinde istenen süre eklenebilir örnekte 10DK ekledim.

daha sonra OnTimer methodunda 1 saniyede bir kontrol edilerek şuanki zamanın üzerine 10DK eklediğimiz zamana eşit ya da büyük olduğu durumda StratejiAktifMI değişkenini true yapmamız yeterli olur.

 

public override void OnInit()
{
	AddSymbol(Symbol, SymbolPeriod);
    WorkWithPermanentSignal(true);
    SendOrderSequential(true, Side.Buy);
	SetTimerInterval(1);
}
List<string> orderIDList = new List<string>();

bool StratejiAktifMI = true;

public override void OnDataUpdate(BarDataEventArgs barData)
{
	if (StratejiAktifMI)
	{
		// Alış
		if (CrossAbove(tott.Mov, tott.OttUp))
		{
			var _orderID = SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy);
			orderIDList.Add(_orderID);
		}
	}
}
DateTime zaman;
		
public override void OnOrderUpdate(IOrder order)
{
	if (order.OrdStatus.Obj == OrdStatus.Filled)
	{
		if (!orderIDList.Contains(order.CliOrdID))
		{
			Debug("Sentetik emir tetiklendi");
			StratejiAktifMI=false;
			zaman=DateTime.Now.AddMinutes(10);
		}
	}
}
public override void OnTimer()
{
	if(DateTime.Now>=zaman){
		Debug("Zaman doldu");
		StratejiAktifMI=true;
	}			
}

 

(6,932 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.



4,849 soru
4,857 cevap
3,198 yorum
3,636 kullanıcı