SET
SET in ProBacktest and ProOrder introduces order management commands such as SET TARGET PROFIT and SET STOP LOSS. Variants, syntax, and errors explained.
Syntaxis
SET TARGET PROFIT value
SET STOP LOSS valueParameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
value | getal | geen | Afstand vanaf de instapprijs waarop de uitstap afgaat, in de eenheid die wordt bepaald door het keyword na STOP of TARGET. Accepteert literals, variabelen en expressies. |
Hoe het werkt
SET introduces the two families of exit declarations. SET STOP definieert waar de positie met verlies sluit, en SET TARGET bepaalt waar hij met winst sluit. Elke familie accepteert meerdere eenheidskeywords: LOSS en PROFIT meten de afstand in prijseenheden, PLOSS en PPROFIT in punten, %LOSS en %PROFIT in procent, $LOSS en $PROFIT in accountvaluta. Naast vaste afstanden, SET STOP accepteert ook de trailing-varianten TRAILING, PTRAILING, %TRAILING en $TRAILING, en beide zijden accepteren BREAKEVEN.
Een SET-declaratie is persistent. Hij geldt voor de momenteel open positie en voor elke positie die daarna wordt geopend, totdat een andere SET-aanroep aan dezelfde zijde hem vervangt. Er zijn precies twee slots, één aan de stopzijde en één aan de doelzijde; binnen een slot wint de meest recente aanroep. Onvoorwaardelijk aan het einde van de code geschreven werkt een declaratie als een vaste bracket op alle trades. Binnen IF-blokken geschreven past hij de uitstap aan terwijl de trade zich ontwikkelt, en zo wordt logica voor breakeven en het vastzetten van winst uitgedrukt.
De waarden zijn afstanden vanaf de instapprijs, geen absolute prijsniveaus. Bij een long positie strekt de stopafstand zich onder de instap uit en de doelafstand erboven; een short positie spiegelt beide.
Voorbeelden
Voorbeeld 1, Vaste bracket op elke trade (ProBacktest)
// Standing exit bracket, applies to each position the strategy opens
SET TARGET PROFIT 120
SET STOP LOSS 100Elke trade heeft een take profit op 120 prijseenheden vanaf de instap en een stop op 100 eenheden vanaf de instap. Dit is het voorbeeld uit de officiële referentie.
Voorbeeld 2, Bracket op procentbasis (ProOrder)
DEFPARAM CumulateOrders = false
IF NOT onmarket AND close CROSSES OVER Average[50](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Exit at plus 2 percent or minus 1 percent from entry
SET TARGET %PROFIT 2
SET STOP %LOSS 1De procentvarianten houden de bracket proportioneel aan de prijs van het instrument, waardoor dezelfde code herbruikbaar is op markten met verschillende prijsniveaus.
Voorbeeld 3, De stop verstrakken terwijl de trade werkt (ProOrder)
DEFPARAM CumulateOrders = false
IF NOT onmarket AND close CROSSES OVER highest[20](high)[1] THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Initial stop, replaced by a tighter trailing stop once in profit
IF onmarket AND close - tradeprice < 20 * pointsize THEN
SET STOP PLOSS 20
ELSIF onmarket THEN
SET STOP PTRAILING 10
ENDIFHet stopslot wordt elke bar herschreven, een vaste stop van 20 punten vroeg in de trade, daarna een trailing stop van 10 punten zodra de positie 20 punten in winst staat. De laatste SET-aanroep aan de stopzijde is altijd de actieve.
Veelvoorkomende fouten en valkuilen
- SET is not assignment. Variabelen worden toegewezen met
=, zoals ina = 10. SET gaat alleen vooraf aan keywords voor ordermanagement;SET a 10compileert niet, enSTOP LOSS 100zonder SET compileert ook niet. - Afstanden, geen prijsniveaus.
SET STOP LOSS 100plaatst de stop 100 prijseenheden van de instap, niet op prijs 100. Absolute niveaus moeten eerst worden omgezet naar een afstand vanaf TRADEPRICE. - Één slot per zijde, de laatste aanroep wint. Twee
SET STOPregels die beide op dezelfde bar worden uitgevoerd, laten alleen de tweede actief. Overlappende IF-blokken zijn de gebruikelijke oorzaak van een stop die stilletjes anders is dan bedoeld. - Declaraties overleven de trade. Een SET-aanroep blijft van toepassing op toekomstige posities totdat hij wordt vervangen. Een conditionele verstrakking die laat in een trade afgaat, loopt door naar de instapbar van de volgende trade, tenzij de code de bracket terugzet wanneer er geen positie open is.
Gerelateerde instructies
STOP, de stop-loss-zijde van de SET-instructie.TARGET, de take profit-kant van de SET-instructie.BREAKEVEN, verplaatst de stop of het target naar de instapprijs.TRAILING, trailing stop-afstand in prijseenheden.PTRAILING, trailing stop-afstand in punten.Set Stop Profit, stoporder geplaatst op een winstafstand vanaf de instap.Set Target Loss, targetorder geplaatst op een verliesafstand van de instap.PROFIT, take-profit-afstand in prijseenheden.LOSS, stop loss-afstand in prijseenheden.PPROFIT, take profit-afstand in punten.PLOSS, stop-loss-afstand in punten.