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

IQ da aşağıdaki şartları Alış şartı içinde nasıl yazabiliriz:

1-En son emir Sentetik bir emir ise

2-Bar Kapanış fiyatı, en son satış fiyatının yüzde 2 altında ise

Teşekkürler. İyi çalışmalar.
Algoritmik Trading kategorisinde (41 puan) tarafından | 1,197 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba,

Gönderilen sentetik emirlerin takibini OnSyntheticOrderTriggered() methodunda aşağıdaki gibi yapabilirsiniz.

IQ'da gönderilen emirler ID'lerine göre OnOrderUpdate() methodunda takip edip gerçekleşen fiyatını bir değişkene kapanışa göre oran orantı ile hesaplama yaptırabilirsiniz.

string alisID,satisID,sentetikEmirID;
		decimal satisFiyati=0;
		
		public override void OnDataUpdate(BarDataEventArgs barData)
		{
			if(kosul){
				alisID=SendMarketOrder(Symbol,1,OrderSide.Buy);		
				TakeProfit(Symbol,SyntheticOrderPriceType.Percent,1);
			}
			
			var kapanis=GetSelectedValueFromBarData(GetBarData(),OHLCType.Close);
			
			var yuzde=satisFiyati!=0?(satisFiyati-kapanis)/kapanis*100:0;
		}

		public override void OnOrderUpdate(IOrder order)
		{
			if(order.OrdStatus.Obj==OrdStatus.Filled && order.CliOrdID==sentetikEmirID){
				if(order.Side.Obj==Side.Buy){
					Debug("En son tetiklenen sentetik emir LONG pozisyonu kapattı");
				}else{
					Debug("En son tetiklenen sentetik emir SHORT pozisyonu kapattı");
				}
			}
			
			if(order.OrdStatus.Obj==OrdStatus.Filled && order.Side.Obj==Side.Sell){
				satisFiyati=order.Price;
				Debug("Satış emri gerçekleşti");
			}
		}
		
		public override void OnSyntheticOrderTriggered(SyntheticAlgoOrder sOrder){
			if(sOrder.EnableOrderSending){
				sentetikEmirID=sOrder.MarketOrderCliOrdId;
			}
		}

 

(15,692 puan) tarafından
7,670 soru
7,670 cevap
4,459 yorum
11,180 kullanıcı