Not logged in
Viewing 3 posts - 1 through 3 (of 3 total)
  • #114893|
    Customer
    473 Posts

    Hi,

     

    What modification would I need to make to following code to limit the number of overlapping to 2,5,10 etc?

    /*
     * Copyright (c) 2015, StrategyQuant - All rights reserved.
     *
     * Code in this file was made in a good faith that it is correct and does what it should. 
     * If you found a bug in this code OR you have an improvement suggestion OR you want to include 
     * your own code snippet into our standard library please contact us at:
     * http://tasks.strategyquant.com/projects/snippets/
     *
     * This code can be used only within StrategyQuant products. 
     * Every owner of valid (free, trial or commercial) license of any StrategyQuant product 
     * is allowed to freely use, copy, modify or make derivative work of this code without limitations,
     * to be used in all StrategyQuant products and share his/her modifications or derivative work 
     * with the StrategyQuant community.
     *  
     * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 
     * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 
     * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES 
     * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
     * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
     *  
     */
    package com.strategyquant.extend.WhatIf;
    
    import java.util.Iterator;
    
    import com.strategyquant.lib.language.L;
    import com.strategyquant.lib.results.SQOrder;
    import com.strategyquant.lib.results.SQOrderList;
    import com.strategyquant.lib.snippets.WhatIf;
    
    public class ExludeOverlappingTrades extends WhatIf {
    
    	public ExludeOverlappingTrades() {
    		setName(L.t("Exclude overlapping trades"));
            
    		setFormatedName(L.t("Exclude overlapping trades"));
    	}
    
    	/**
    	 * Function receives list of all orders sorted by open time and it could manipulate
    	 * the list and remove any order that matches certain filter from the list.
    	 *
    	 * Order structure is available in the documentation here:
    	 * http://www.strategyquant.com/doc/api/com/strategyquant/lib/results/SQOrder.html
    	 *
    	 * @param originalOrders - list of original orders that can be changed. Each order has the order properties specified above
    	 */
    	@Override
    	public void filter(SQOrderList originalOrders) {
    		long closeTime = -1;
    		
    		for(Iterator<SQOrder> i = originalOrders.listIterator(); i.hasNext();) {
    			SQOrder order = i.next(); 	
    			   
    			   if(closeTime==-1) {
    				   closeTime = order.CloseTime;
    			   } else {
    				   if(order.OpenTime>closeTime) {
    					   closeTime = order.CloseTime;
    					   
    					   continue;
    				   } 
    				   
    				   // when we are here it means that current trade opened before previous trade closed,
    				   // which means the trades are overlapping and current trade should be skipped 
    				   i.remove();
    			   }
    		}
    	}
    }
    
    #135884
    Moderator
    1639 Posts

    Hi, will try to make an example for this

    #202482
    Karish
    Customer
    446 Posts

    bump, i would like to join the request please

Viewing 3 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.