Schließen Alle Positionen außer einer
Schließen Alle Positionen außer einer: die ausgewählte "Magische Zahl ausgenommen".
Paket SQ.Blocks.Order.Close; import SQ.Functions.OrderFunctions; importieren SQ.Internal.ActionBlock; import com.strategyquant.lib.*; importieren com.strategyquant.datalib.*; import com.strategyquant.tradinglib.*; // Modifiziert in Frankreich von Emmanuel Evrard für die StrategyQuantX Community :) @BuildingBlock(returnType = ReturnTypes.Action) @Help("Alle Positionen außer einer schließen") @SortOrder(600) // In AlgoWizard ist dies eine Dropbox-Position (400 oder 500 oder 600 usw.) dieser Funktion im Menü "Neue Bedingung hinzufügen", Sie müssen sie eventuell anpassen, je nachdem, welche Funktion bereits auf derselben Dropbox installiert ist. @IgnoreInBuilder @NotSupportedFor(engines="EL") public class CloseAllPositionsExcept extends ActionBlock { @Parameter(defaultValue="Current", category="Auftragskennung", showIfDefault=false, allowAny=true) public String Symbol; @Parameter(defaultValue="1", category="Auftragskennung", showIfDefault=false) @Editor(type=Editors.Selection, values="Long=1,Short=-1,Any=0") public int Direction; @Parameter(defaultValue="MagicNumber", category="Auftragskennung", showIfDefault=false) @Help("Magische Zahl, mit der die Bestellung identifiziert werden kann.") @Editor(type=Editors.SelectionVariablesWithAny) public int MagicNumber; @Parameter(defaultValue="MagicNumber", category="Auftragskennung", showIfDefault=false) @Help("MagicNumber der ausgeschlossenen Bestellung, diese Bestellung wird nicht geschlossen") @Editor(type=Editors.SelectionVariables) public int MagicNumberExcluded; //@Parameter(defaultValue="", category="Auftragskennung", showIfDefault=false) //@Help("Comment kann auch zur Identifizierung der Bestellung verwendet werden. Im Falle von Comment passt die Bestellung, wenn der Bestellkommentar den hier angegebenen Text enthält.") public String Comment; //------------------------------------------------------------------------ //------------------------------------------------------------------------ //------------------------------------------------------------------------ public CloseAllPositionsExcept() { } //------------------------------------------------------------------------ @Override public void OnAction() throws 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(order, Strategy, Symbol, Direction, MagicNumber, Comment)) { if (order.getMagicNumber() != MagicNumberExcluded) { order.setExitIndex((byte) -1); order.Close(OrderCloseTypes.ExitSignal); } } } } }