Allmänt meddelande

Collapse
No announcement yet.

If Else Then Case?

Collapse
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • If Else Then Case?

    Hej.

    Undrar om det finns någon metod att efterlikna IF ELSE THEN eller CASE, där bara en av multipla conditions är sann? Och beroende på vilken som är sann så skall olika saker ske. Jag tänker så här på hög nivå. Per period i valfri upplösning.

    Buy=0

    Köp0pos=AND(LE(RSIW(14),100),GT(RSIW(14),20)) {RSI mellan 100-20, köp 0}
    Köp1pos=AND(LE(RSIW(14),20),GT(RSIW(14),10)) {RSI mellan 20-10, köp 1}
    Köp2pos=AND(LE(RSIW(14),10),GT(RSIW(14),5)) {RSI mellan 10-5, köp 2}
    Köp5pos=AND(LE(RSIW(14),5),GE(RSIW(14),0)) {RSI mellan 5-0, köp 5}


    IF Köp0pos = true
    buy = 0, eller trigger "VA)KÖP_0" scriptet (Kanske onödig men för exemplets skull)
    ELSEIF Köp1pos = true
    buy = 1, eller trigger "VA)KÖP_1" scriptet
    ELSEIF Köp2pos = true
    buy = 2, eller trigger "VA)KÖP_2" scriptet
    ELSE Köp5pos = true
    buy = 5, eller trigger "VA)KÖP_5" scriptet


    Detta gäller både för att indikera i grafen, dvs olika "Mult" på sista raden, men även som antal andelar att köpa antingen i VA scriptet, eller direkt från Signal SL scriptet. Går det på ett smidigt sätt?

    Underfrågan blir ju också om det går att köpa olika många andelar från samma VA script, eller även från SL scriptet?

    Mvh

  • #2
    If kan lätt använda "else/elseif". Välj prioriteringsordning uppifrån och ner.
    Det går att använa samma i va)-scriptet. Bara de har samma upplösning eller extraobjekt som motsvarar upplösningen i sl-scriptet.
    Sedan blir det mer komplicerat om det finns position och nuvarande exponering. Beror även på exits. Det är inte så svårt att lösa.

    Köp1pos=if(AND(LE(RSIW(14),20),GT(RSIW(14),10)),1,0) {RSI mellan 20-10, köp 1}
    Köp2pos=if(AND(LE(RSIW(14),10),GT(RSIW(14),5)),2,Köp1pos) {RSI mellan 10-5, köp 2}
    Köp5pos=if(AND(LE(RSIW(14),5),GE(RSIW(14),0)),5,Köp2pos) {RSI mellan 5-0, köp 5}

    Här är det alltså Köp5pos som håller det slutliga värdet. Exakt hur du gör är en annan sak.

    Det blir nog enklare att rita analysområdet och stänga av "visa graf som flagga".
    Tex. draw(mult(Köp5pos,10),3,gda) {ritar värden 0-100 och det blir lättare att se}

    Edit: proritetsordning där sista If har högst prioritet.
    Last edited by Henric; 2022-02-02, 12:07.

    Comment


    • #3
      Samma teknik kan användas i antalscriptet. Det är enkelt att dublicera koden där så att rätt antal köps inom resp intervall för RSi.

      En detalj bara, det är RSIWS() som svänger mellan 0-100.¨

      Comment


      • #4
        Tackar båda två. Det är lite nya banor att tänka i. Det var en intressant lösning att se det som en kedja. Det fungerade i en snabbtest, att indikera i analysområde med olika höjd för samma indikator. Skall testa med olika antal köp också i VA script

        @rickard
        Enligt manualen så är både RSIW och RSIWS 0-100 medans RSI är -100 / +100 ? Och vad står sista S för i RSIWS? Man skulle ju kunna tänka Simple, men den är ju Exponentiell enligt EMA i manualen

        Mvh

        Comment


        • #5
          Hm, kommer inte ihåg på rak arm, men RSIWS är den som används bakom snabbknappen i alla fall, så om du vill få samma kurva i scriptet som du ser på chartet är det ju enklast.

          Man kan ju rita upp båda med Draw och se vad som skiljer.

          Comment

          Working...
          X