Encerramento N Ordem de mercado
Após abrir várias posições, este trecho fecha as ordens N ("Ordem Nb"), de um número MagicNumber
Por exemplo, você tem 5 posições com número mágico: 1004, 1003, 1002, 1001, 1000.
Você digita o número mágico : 1004
Você entra na Ordem Nb : 5
Ele fechará as 5 posições.
Aqui está o código
pacote SQ.Blocos.Encomendar.Fechar; importação SQ.Functions.OrderFunctions; Importar SQ.Internal.ActionBlock; import com.strategyquant.lib.*; import com.strategyquant.datalib.*; import com.strategyquant.tradinglib.*; // Modificado na França por Emmanuel Evrard para a StrategyQuantX Community :) @BuildingBlock(returnType = ReturnTypes.Action) @Help("Fechar N posições que se ajustam ao critério") @SortOrder(500) // Em AlgoWizard, esta é uma posição dropbox (400 ou 500 ou 600 etc.) desta função no menu "Add New Condition", você pode ter que ajustá-la dependendo da função já instalada na mesma dropbox. @IgnoreInBuilder @NotSupportedFor(engines="EL") classe pública CloseNPositions estende ActionBlock { @Parameter(defaultValue="Current", category="Order identification", showIfDefault=false, allowAny=true) Símbolo de corda pública; @Parameter(defaultValue="0", category="Order identification", showIfDefault=false) @Editor(tipo=Editores.Seleção, valores="Long=1,Short=-1,Any=0") direção da int pública; @Parameter(defaultValue="MagicNumber", category="Order identification", showIfDefault=false) @Help("Número mágico que pode identificar o pedido") @Editor(type=Editors.SelectionVariablesWithAny) público int MagicNumber; @Parameter(defaultValue="Number Of Order", category="Order identification", showIfDefault=false) @Help("Número de Ordem é usado para definir a quantidade de ordem, Seus números MagicNumbers são sucessivos ao MagicNumber acima") @Editor(type=Editores.SelectionVariables) público int NbOrder; @Parameter(defaultValue="", category="Order identification", showIfDefault=false) @Help("Comentário também pode ser usado para identificar o pedido. Em caso de Comentário, o pedido corresponde se o comentário do pedido contiver o texto especificado aqui"). Public String Comment; //------------------------------------------------------------------------ //------------------------------------------------------------------------ //------------------------------------------------------------------------ fechamento públicoNPosições() { } //------------------------------------------------------------------------ @Override vazio público OnAction() atira a TradingException { int total = Strategy.Trader.getOpenOrdersCount(false); se (NbOrder >= 1) { int MagicNumber1 = MagicNumber; for(int i1 = 0; i1 =0; i--) { ILiveOrder order = Strategy.Trader.getOpenOrder(i, false); if(OrderFunctions.identify(ordem, estratégia, símbolo, direção, MagicNumber, Comentário)) { order.setExitIndex((byte) -1); order.Close(OrderCloseTypes.ExitSignal); } } } } } }