Gamestudio Links
Zorro Links
Newest Posts
Data from CSV not parsed correctly
by EternallyCurious. 04/18/24 10:45
StartWeek not working as it should
by Zheka. 04/18/24 10:11
folder management functions
by VoroneTZ. 04/17/24 06:52
lookback setting performance issue
by 7th_zorro. 04/16/24 03:08
zorro 64bit command line support
by 7th_zorro. 04/15/24 09:36
Zorro FIX plugin - Experimental
by flink. 04/14/24 07:48
Zorro FIX plugin - Experimental
by flink. 04/14/24 07:46
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
1 registered members (AndrewAMD), 559 guests, and 2 spiders.
Key: Admin, Global Mod, Mod
Newest Members
EternallyCurious, 11honza11, ccorrea, sakolin, rajesh7827
19046 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Zorro: Instant execution of limit orders in HFT mode. #487217
02/11/23 15:31
02/11/23 15:31
Joined: Apr 2016
Posts: 38
madpower2000 Offline OP
Newbie
madpower2000  Offline OP
Newbie

Joined: Apr 2016
Posts: 38
I stumbled upon Zorro's strange behaviour of Instant execution of limit orders in HFT mode.
If I placed a limit order with the correct price, it was executed immediately, but it must be pending.
I can’t figure out why it happened. This is a bug or a feature ?

Log output:
Code
Load Demo.csv
[0] Demo 10:00:00.43200: Ask 990.00 => 990.00 989.00
[0] Demo 10:00:00.43200: Bid 980.00 => 990.00 10.00
>>[0] 990.000000:980.000000
Enter Long Demo  Entry -50.000 at 10:00:00
(Demo::L) Long 1@940.00 Entry limit
[Demo::L00002] Long 1@990.00  at 10:00:01
Com 0000  Mrg 10.00  Net 0
Units 10.0000  MTotal 0.00  MCost 10.0000 PCost 10.00000 Opn 0
[0] Demo 10:00:01.86400: Ask 980.00 => 980.00 10.00
[1] Demo 10:00:01.86400: Bid 970.00 => 980.00 10.00
>>[1] 980.000000:970.000000


Code to reproduce this issue:
Code
#define TIME_FORMAT	"%Y%m%d %H:%M:%S"

function main()
{
	seed(3);
	set(LOGFILE+PLOTNOW);
	Verbose = 7; 
	MaxBars = 50;
	BarPeriod = 0.1/60.;
	Outlier = 0;
	assetList("Demo.csv",0); // assetAdd("Demo",0,0,0,0,1,10,0,1,1,0,"Demo.HFT");

	Hedge = 2;
	Fill = 8;
	Slippage = 0;
	Lots = 1;
	
	var Quote = 1000.0;
	var TimeStamp =  wdatef(TIME_FORMAT,"20200101 10:00:00");
	int result;
	var BidPrice;
	while(Bar < MaxBars) 
	{
		TimeStamp += 0.000005;
		Quote += sign(random()) * 10;
		BidPrice = Quote - 10;
		result = priceQuote(TimeStamp, Quote); 
		if(!result) printf("\npriceQuote(AskPrice:%f) ERROR!", Quote);
		
		result = priceQuote(TimeStamp, -BidPrice); 
		if(!result) printf("\npriceQuote(BidPrice:%f) ERROR!", BidPrice);
 
		plot("Ask", AskPrice, LINE, RED);
		plot("Bid", BidPrice, LINE, BLUE);
		printf("\n>>[%i] %f:%f", Bar, AskPrice, BidPrice);
		
		if((NumPendingTotal+NumOpenTotal)==0)
		{
			Entry = -50;
			enterLong();
		}
	}
	exitLong(); exitShort();
}

Re: Zorro: Instant execution of limit orders in HFT mode. [Re: madpower2000] #487487
05/15/23 13:38
05/15/23 13:38
Joined: Jul 2000
Posts: 27,978
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 27,978
Frankfurt
This attempt is not only once, but twice doomed to fail. First, your script sends no limit order - for limit orders you need to set OrderLimit. But HFT simulation disables anyway all trade parameters and only enters directly at the most recent quote.


Moderated by  old_bill, Tobias 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1