Stacked Signals

Stel hier uw vragen over TA-script, of help anderen met het oplossen van hun probleem
Plaats reactie
petdev
Berichten: 112
Lid geworden op: wo jun 12, 2013 4:25 pm

Stacked Signals

Bericht door petdev »

Eric,

Ik zie bij stacked signals, dat er bijv. long posities in aantal worden uitgebreid en dat dan alles wordt gesloten bij een exitlong (of exitany, entershort etc.).
De vragen zijn als volgt:
1) Stel ik heb een BS (buyscore) = 3 en de volgende bar een BS = 1.
Dan zou ik 2 van mijn 3 posities willen sluiten, maar nog steeds met 1 positie long willen blijven.
Kan dit in TA-script? En zo ja, hoe?
Ofwel (even niet op exacte syntax lettend):
if BS(i) < BS(i-1) and BS(i) > 0 then ?????
2) Omgekeerd, als BS van van 1 naar 3 gaat, kan TA-script dan 2 posities extra long ipv. 1 positie?

Ik heb al naar SetOrderSize zitten kijken, maar zie met name nog niet hoe deze in dergelijk geval te combineren met signalen. Wel kan ik de BS als lijn in de grafiek zetten, maar bij backtesten en optimaliseren heb ik daar uiteraard weer niets aan.

Vragen komen voort uit het feit, dat ik enkele indicatoren in één wil schuiven.
Als ik ze afzonderlijk backtest krijg ik een resultaat = a+b+c.
Als ik ze gecombineerd heb is het resultaat kleiner, omdat in de procedure een deel van de ingenomen posities niet wordt (kan worden?) meegenomen.

Is hier een oplossing voor?

Groet, Peter.
Eric
Berichten: 3362
Lid geworden op: za sep 10, 2005 2:41 am
Locatie: Den Haag

Re: Stacked Signals

Bericht door Eric »

Als je stackedsignals gebruikt moet je eigenlijk iedere trade (Enterxxx, Exitxxx) vooraf laten gaan door een SetOrderSize(). Dat is het duidelijkste. Zie onderstaand voorbeeld waarin ik op maandagen en dinsdagen een enter long doe en op vrijdag een exit long. Zonder de SetOrderSize loopt mijn positie (de indicatorlijn) op, omdat er iedere week 1 meer wordt gekocht dan verkocht. Met de SetOrderSize gaat het wel goed (behalve wanneer er op een dag geen koers is, dan blijft er een kleine positie staan maar het gaat om het idee).

Code: Selecteer alles

{- Filename: Demo stacked signals -}

var
  sPos: TSeries;
  i: integer;
begin
{ Indicator eigenschappen }
  with Indicator do 
  begin
    NewBand := true;            // indicator standaard in nieuwe sectie plaatsen
    ScaleRange := srAuto;       // indicatorschaal automatisch
    StackedSignals := true;
  end;

{ Berekening }
  sPos := CreateSeries(BarCount);
  for i:=0 to BarCount-1 do
  begin
    case DayOfWeek(DateTime[i]) of
      2, 3:
      begin
//        SetOrderSize(1);
        EnterLong(i);
      end;
      6:
      begin
//        SetOrderSize(2);
        ExitLong(i);
      end;
    end;
    sPos[i] := MarketPosition(i);
  end;

{ Weergave }
  with CreateLine(sPos) do
  begin
    Name := 'Positie';
    Color := clLime;
  end;
end.
---
Eric
petdev
Berichten: 112
Lid geworden op: wo jun 12, 2013 4:25 pm

Re: Stacked Signals

Bericht door petdev »

Eric,

Op voorhand de vraag:
Klopt het dan dat ik in de grafiek een ExitLong pijltje zie, terwijl ik per saldo nog steeds long kan zitten?

Ik ga proberen een en ander in te bouwen.
Alvast bedankt.

Peter
Eric
Berichten: 3362
Lid geworden op: za sep 10, 2005 2:41 am
Locatie: Den Haag

Re: Stacked Signals

Bericht door Eric »

petdev schreef: do sep 30, 2021 5:02 pm Eric,

Op voorhand de vraag:
Klopt het dan dat ik in de grafiek een ExitLong pijltje zie, terwijl ik per saldo nog steeds long kan zitten?
Dat klopt inderdaad. Het pijltje geeft een signaal / trade aan, niet een positie.

---
Eric
Bakstenen
Berichten: 748
Lid geworden op: zo jul 19, 2015 7:51 pm

Re: Stacked Signals

Bericht door Bakstenen »

Petdev,
de indicator gaat alleen maar long, is het ook mogelijk dat je zowel short als long kan aanvinken, dan kan je dus kiezen long en short,of in jou geval, alleen long
petdev
Berichten: 112
Lid geworden op: wo jun 12, 2013 4:25 pm

Re: Stacked Signals

Bericht door petdev »

Bakstenen,

Ik ging ervanuit, dat signaal en positie wel gelinkt waren, maar dit blijkt dus niet zonder meer.
Zie bericht Eric; het gaat om het idee, zonder long of short resrictie; als je in de procedure van Eric de OS verandert, ga je wel degelijk short in positie.

Het gaat mij in eerste instantie om de mogelijkheid het cumulatieve resultaat van de 3 oorspronkelijke indicatoren correct te vangen met optimalisatie/backtesten. Op dit moment heb ik altijd max. 1 long of short positie, omdat ik geen ordersize heb ingebouwd; en mis dus een deel van het cumulatieve resultaat.
Mijn gefrutselde indicator moet zowel long als short kunnen en varieert van 3 long tot 3 short-posities.
Mathematisch heb ik dit al uitgeschreven qua voorwaarden. De buyscore tov de vorige dag geeft het aantal positiewijziging (=ordersize) aan, die in theorie kan variëren van 0 tot 6 long of short.

Wat ik zichtbaar wil hebben in de indicator is de grootte van de resterende positie long/short (=buyscore).
Dat kan dus een geplotte lijn zijn, die van +3 tot -3 loopt, of van o tot 3 met kleurwisseling.
Visueel lijkt het me verwarrend als ik een Entershort pijltje heb en nog steeds per saldo long zit.
Over hoe ik dat het beste allemaal wil visualiseren, daar is deze langzaam-aan-amateur-huis-programmeur vooralsnog niet over uitgedacht.
Bakstenen
Berichten: 748
Lid geworden op: zo jul 19, 2015 7:51 pm

Re: Stacked Signals

Bericht door Bakstenen »

Oke, dit moet ik even een paar keer nalezen.
Maar als ik simulatie doe, zie ik alleen maar long trades, vandaar mijn vraag
petdev
Berichten: 112
Lid geworden op: wo jun 12, 2013 4:25 pm

Re: Stacked Signals

Bericht door petdev »

Eric,

Deze procedure loopt niet goed.
In de hoop dat onderstaande begrijpelijk is opgeschreven.

Case 1:
resp. dag 2,3,6 ==> ordersize 2,2,3 ==> pos ==> 2,4,1, 3,5,2, 4,6,3,etc.
Hier loopt de positie elke week met 1 op, daar immers 2x2 is 4 wordt gekocht en 3 verkocht.
Dit is ook wat ik verwacht.

Case 2:
resp. dag 2,3,6 ==> ordersize 2,2,5 ==> pos ==> 2,4,-1, 2,4,-1, 2,4,-1,etc.
Hier zou de positie elke week met 1 moeten dalen, echter zodra vanuit een negatieve positie een EnterLong komt gaat het fout en houdt de procedure geen rekening met de negatieve startpositie.

Waarschijnlijk moet er een extra check (<>0) worden ingebouwd om correct uit te voeren, alsmede daaraan gekoppeld Enter-/Exitshort signalen, als de uitgangspositie negatief (=short) is.

Wil je hier nog eens naar kijken.

Groet, Peter
Eric
Berichten: 3362
Lid geworden op: za sep 10, 2005 2:41 am
Locatie: Den Haag

Re: Stacked Signals

Bericht door Eric »

petdev schreef: do nov 25, 2021 6:01 pm Case 2:
resp. dag 2,3,6 ==> ordersize 2,2,5 ==> pos ==> 2,4,-1, 2,4,-1, 2,4,-1,etc.
Hier zou de positie elke week met 1 moeten dalen, echter zodra vanuit een negatieve positie een EnterLong komt gaat het fout en houdt de procedure geen rekening met de negatieve startpositie.
Nee, de -1 die wordt aangegeven is eigenlijk 0. Als de positie +4 is en je doet een Exitlong met een ordersize 5, moet hij de ordersize 4 maken maar dat gebeurt kennelijk niet. Een ExitLong kan namelijk nooit tot een short positie leiden. Wanneer je een tradingsimulatie doet van deze variant dan gebeurt dat ook niet, maar in deze testindicator wordt dat wel zo weergegeven, ik zal daar eens naar kijken.

---
Eric
petdev
Berichten: 112
Lid geworden op: wo jun 12, 2013 4:25 pm

Re: Stacked Signals

Bericht door petdev »

Eric,

Ik werk met een BuyScore (BS), die zowel pos. als neg. kan zijn.
De open positie dient gelijk te zijn aan de BS.
Als ik dus van een BS +4 naar -1 ga is mijn idee, dat de ordersize (OS) 5 moet zijn, hetgeen ik dus heb uitgeprobeerd in case 2.
Zoals ik nu uit je reaktie lees, als een ExitLong nooit tot een shortpositie kan leiden, moet het in de volgende richting gaan:

als BS(i)>=0 en BS(i-1)>=0, dan
als BS(i) > BS(i-1) EnterLong, anders
als BS(i) < BS(i-1), ExitLong, (waarbij)
OS(i) = abs(BS(i)-BS(i-1))

als BS(i)<0 en BS(i-1)>=0, dan
EnterShort, (waarbij)
OS(i)=abs(BS(i))

als BS(i)<=0 en BS(i-1)<=0, dan
als BS(i) < BS(i-1) EnterShort, anders
als BS(i) > BS(i-1), ExitShort, (waarbij)
OS(i) = abs(BS(i)-BS(i-1))

als BS(i)>0 en BS(i-1)<=0, dan
EnterLong, (waarbij)
OS(i)=abs(BS(i))

De te plotten lijn die de open positie aangeeft moet dan de BS zijn.

Vraag is of dit zo kan en of de tradingsimulatie dan correct werkt.

Peter
Eric
Berichten: 3362
Lid geworden op: za sep 10, 2005 2:41 am
Locatie: Den Haag

Re: Stacked Signals

Bericht door Eric »

Ja, dat zou moeten werken.

---
Eric
Plaats reactie