Viewing 3 posts - 1 through 3 (of 3 total)
Forums>Quant Analyzer (formerly named EA Analyzer)>Extending the program>Overlapping Trades
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(); } } } }
Viewing 3 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic.