You need to create the Where expression yourself using the static functions in the Expression class.
Like this:
Int16 bucketId = 3;
var parameter = Expression.Parameter(typeof(SimStgTrade));
var property = Expression.PropertyOrField(parameter, "BucketRef");
var constant = Expression.Constant(bucketId);
var comparison = Expression.Equal(property, constant);
var lambda = Expression.Lambda>(comparison, parameter);
var tradesQuery = repository.SimStgTrade
.Where(lambda)
.Where(x => x.VariantNo == set)
.ToArray();
Do the same for VariantNo == set in order to remove that cast as well