Abschluss N Marktauftrag
Nach dem Eröffnen mehrerer Positionen schließt dieses Snippet N Aufträge ("Nb Order"), ab einer MagicNumber
Beispiel: Sie haben 5 Positionen mit Magic Number: 1004, 1003, 1002, 1001, 1000.
Sie geben die magische Zahl ein: 1004
Sie geben Nb Order ein: 5
Damit werden die 5 Positionen geschlossen.
Hier ist der Code
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("Schließe N Positionen, die den Kriterien entsprechen") @SortOrder(500) // In AlgoWizard ist dies eine Dropbox-Position (400 oder 500 oder 600 usw.) dieser Funktion im Menü von "Add New Condition", Sie müssen sie eventuell anpassen, je nachdem, welche Funktion bereits auf derselben Dropbox installiert ist. @IgnoreInBuilder @NotSupportedFor(engines="EL") public class CloseNPositions extends ActionBlock { @Parameter(defaultValue="Current", category="Order identification", showIfDefault=false, allowAny=true) public String Symbol; @Parameter(defaultValue="0", 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="Number Of Order", category="Order identification", showIfDefault=false) @Help("Number Of Order wird verwendet, um die Menge der Bestellung festzulegen, ihre MagicNumbers sind Nachfolger der obigen MagicNumber") @Editor(type=Editors.SelectionVariables) public int NbOrder; @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 CloseNPositions() { } //------------------------------------------------------------------------ @Override public void OnAction() throws TradingException { int total = Strategy.Trader.getOpenOrdersCount(false); if (NbOrder >= 1) { int MagicNumber1 = MagicNumber; for(int i1 = 0; i1 =0; i--) { ILiveOrder order = Strategy.Trader.getOpenOrder(i, false); if(OrderFunctions.identify(order, Strategy, Symbol, Direction, MagicNumber, Comment)) { order.setExitIndex((byte) -1); order.Close(OrderCloseTypes.ExitSignal); } } } } } }