Fechar Todas as posições, exceto uma
Fechar Todas as posições exceto uma: o número mágico selecionado "Número Mágico Excluído".
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 todas as posições exceto uma")
@SortOrder(600) // 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 CloseAllPositionsExceto estende ActionBlock
{
@Parameter(defaultValue="Current", category="Order identification", showIfDefault=false, allowAny=true)
Símbolo de corda pública;
@Parameter(defaultValue="1", 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="MagicNumber", category="Order identification", showIfDefault=false)
@Help("MagicNumber of the Excluded order, this order will not be closed")
@Editor(type=Editores.SelectionVariables)
público int MagicNumberExcluído;
//@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úblicoTodas as PosiçõesExceto()
{
}
//------------------------------------------------------------------------
@Override
vazio público OnAction() atira a TradingException
{
int total = Strategy.Trader.getOpenOrdersCount(false);
for(int i=total-1; i>=0; i--)
{
ILiveOrder order = Strategy.Trader.getOpenOrder(i, false);
if(OrderFunctions.identify(ordem, estratégia, símbolo, direção, MagicNumber, Comentário))
{
se (order.getMagicNumber() != MagicNumberExcluído)
{
order.setExitIndex((byte) -1);
order.Close(OrderCloseTypes.ExitSignal);
}
}
}
}
}
