0 beğenilme 0 beğenilmeme
617 kez görüntülendi

Oluşturduğum stratejide al-sat emirleri bar kapanışını beklemeden ve sıralı olmayacak şekilde aşağıdaki gibi çalışmakta.

(SendOrderSequential(false);WorkWithPermanentSignal(false);)

Al-sat koşulları kısmında sinyal üretilen sinyallere girilen alım sinyallerine sınırlama koyabilir miyiz?

Örneğin; sat sinyali oluşmadan ard arda 7 kere al siyanli oluştu  ama ben bunların 5 tanesinden fazlasında alım yapmasını istemiyorum. Ayrıca sat sinyali oluştuğunda ise ne kadar almışsa o kadarının satılmasını istiyorum. Aşağıya yazdığım bu koşullardan satış şartını sağlıyor ama alım kısmını nasıl düzenlerim?

*********&& alisAdedi != 0){SendMarketOrder(Symbol1, alisAdedi, OrderSide.Sell, includeAfterSession:false);

alisAdedi = 0;}}decimal alisAdedi, satisAdedi;

 

Algoritmik Trading kategorisinde (32 puan) tarafından | 617 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba,

Aşağıdaki gibi bir yapı kurabilirsiniz.

int alisSayac=1;
int alisSiniri=5;
decimal alisAdedi=1,satisAdedi=0;
bool bayrak=true;

public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
{
	if(CrossAbove(most,most,1,0) && alisSayac<=alisSiniri && bayrak){
		SendMarketOrder(Symbol,alisAdedi,OrderSide.Buy);
		Debug("alış emri gönderildi.");
		bayrak=false;
	}
			
	if(CrossBelow(most,most,1,0) && satisAdedi!=0){
		SendMarketOrder(Symbol,satisAdedi,OrderSide.Sell);
		Debug("satış emri gönderildi.");
		bayrak=false;
	}
}
		
public override void OnOrderUpdate(IOrder order){
	// Alış gerçekleşti
	if(order.OrdStatus.Obj==OrdStatus.Filled && order.Side.Obj==Side.Buy){
		satisAdedi+=order.OrderQty;
		bayrak=true;
		alisSayac++;
	}
	
	// Satış gerçekleşti
	if(order.OrdStatus.Obj==OrdStatus.Filled && order.Side.Obj==Side.Sell){
		satisAdedi=0;
		bayrak=true;
		alisSayac=1;
	}
}

 

(15,892 puan) tarafından
8,636 soru
8,590 cevap
4,821 yorum
19,785 kullanıcı