Allmänt meddelande

Collapse
No announcement yet.

Simulera portföljinnehav

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

  • Simulera portföljinnehav

    Jag försöker köra ett script i simuleringsläge där Köp- resp Säljsignal ska styras dels av en logisk kontroll som ger "över" resp "under" = Sant, samt en kontroll om huruvida en position har tagits eller ej. Funktionen Portfolio(v) lär ju inte bete sig som den ska då en simulering görs, så istället tänkte jag även simulera portföljinnehavet, se köp- resp säljscript nedan.

    Dock så verkar något inte stämma, inga signaler ges. Använder jag SetGVarIf och GetGVar på fel sätt?

    .
    .
    .
    innehav_är_noll:=EQV(GETGVAR(100),0)
    köpsignal:=AND(över,innehav_är_noll)
    SetGVarIf(1,100,köpsignal)
    köpsignal

    samt..

    .
    .
    .
    innehav_är_större_än_noll:=GT(GETGVAR(100),0)
    säljsignal:=AND(under,innehav_är_större_än_noll)
    SetGVarIf(0,100,säljsignal)
    säljsignal

  • #2
    Ursprungligen postat av Christer Visa inlägg
    Dock så verkar något inte stämma, inga signaler ges. Använder jag SetGVarIf och GetGVar på fel sätt?
    SetGVarIf och GetGVar änvänder du som det är tänkt, men "köpsignal" och "säljsignal" som du skrivit dem är bara tilldelade namn. Dessa beräknas bara om du sätter in dem i en formel.
    Avsluta scripten med att skriva:
    mult(köpsignal,5)
    mult(säljsignal,5)

    Comment


    • #3
      Tack för den bekräftelsen. Kan man monitorera resultatet från GETGVAR(100), samt andra variabler, på något sätt så att man kan felsöka under simuleringen? T.ex. ett informationsfönster med live data över valda variabler vore ju toppen.

      Intressant kommentar om "köpsignal" samt "säljsignal". Menar du att om ett script avslutas med bara ”köpsignal” så innebär inte det att scriptet ger en trigger, utan att det måste avslutas med ” mult(köpsignal,5)”, eller någon annan beräkning
      Last edited by Christer; 2012-05-12, 18:41.

      Comment


      • #4
        När det gäller att monitonera resultaten från getgvar() kan du ju alltid skriva ut resultaten med Draw()-funktionen i exempelvis oscillatorområdet.

        När det gäller köp-sälj har du skrivit dem med operatorn := och med det menas att du endast har satt ett namn på uttrycket till höger om operatorn, ingen beräkning utförs allså. Hade du istället använt operatorn = hade en beräkning utförts och resultatet av beräkningen hade lagts i minnescellen "köpsignal".
        Operatorn = kan du emellertid endast använda inom intradayparanteser ex.

        i15(
        bla
        bla
        köpsignal=bla,bla
        köpsignal
        )

        Scriptet ovan kan avslutas med endast "köpsignal" eftersom det ligger ett värde i variabeln "köpsignal".
        Emellertid har det i praktiken visat sig att det är bättre att alltid låta scripten avslutas med exempelvis mult() även om man använder sig av = som ovan.

        Comment


        • #5
          Hmm, jag får ändå inte ordning på utnyttjandet de globala variablerna. Försöker testa mha detta script. Nedanstående script resulterar i detta (se bild).

          förmiddag:=LT(MULT(frac(d),24),12)
          SetGVarIf(1,100,förmiddag)
          eftermiddag:=GE(MULT(frac(d),24),12)
          SetGVarIf(0,100,eftermiddag)
          signal:=GETGVAR(100)
          DRAW(MULT(förmiddag,20),1,rsa)
          DRAW(MULT(eftermiddag,20),2,gsa)
          MULT(signal,10)

          Borde inte vara lila staplar efter 12.00. Vad gör jag för fel?
          Attached Files

          Comment


          • #6
            Nu fungerar det:

            förmiddag:=LT(MULT(frac(d),24),12)
            eftermiddag:=GE(MULT(frac(d),24),12)
            i1(
            SetGVarIf(1,100,förmiddag)
            SetGVarIf(0,100,eftermiddag)
            signal=GETGVAR(100)
            DRAW(MULT(förmiddag,20),1,rsa)
            DRAW(MULT(eftermiddag,20),2,gsa)
            MULT(signal,10)
            )

            Ger... (se bilden)
            Attached Files

            Comment


            • #7
              Det du ser på bilden är exakt det du har bett scriptet att göra.

              Du ritar inga staplar i kursområdet med draw() utan dessa ritas eftersom du har satt "larm på" i scriptediteraren. Scriptet larmar ju hela tiden, och du får därför samma staplar hela tiden.

              EDIT: Såg inte ditt inlägg #6. Det var roligt att att du börjar få kläm på det hela.
              Last edited by LillWicke; 2012-05-12, 20:31.

              Comment


              • #8
                Min förståelse går framåt för varje dag och det var skönt att få grepp om det där med intradagsupplösningen - ganska självklart när man tänker på det.

                Jag har dock ändå inte fått ordning på en metod för att simulera verkliga transaktioner och ett sätt att i testbänken simulera Portfolio(V), dvs. se exakt hur scripten signalerar givet ens position i marknaden. Några idéer?

                Comment


                • #9
                  Så länge du köper och säljer ett fast antal vid varje signal behövs inga simulerade innehav i analysbänken. Man kan säga att innehaven kan vara antingen +1,0 elller -1. Kör analysbänken bör du ta bort alla tester mot portfolio(v). Däremot kan analysbänken tex inte köpa i steg eller sälja halv position.

                  Det brukar gå bra att köra med larm i diagram för simulera en verklig transkation. Tex för terminen drar du bort 0.25 i slipp. I verkligheten kan du ändå få closekursen och ett lite bättre resultat. Håller testen med slipp så håller den i verkligheten. Handlar du däremot väldigt ofta så är nog bara liveköring som gäller som test.

                  Comment


                  • #10
                    Jag simulerar jag köp-trigger från ett Lång-script och sälj-trigger från ett Kort-script och dessa ger köpsignaler MULT(köpsignal,5) i Analysfält 1 resp säljsignaler MULT(säljsignal,5) i Analysfält 2. Allt ser perfekt ut i dessa två analysfält. Dock så spökar larmen i fönster ”Larm/Meddelanden”. Här kommer bara larm från Lång-scriptet och det kommer larm hela tiden, trots att man är kort och Lång-scriptet inte heller ger signal i Analysfält 1. Vad pågår?

                    Comment


                    • #11
                      Christer du kanske ska lägga ut scripten så är det säkert någon av panelens duktiga medlemmer som kan hjälpa till.

                      Edit: så går det när man är för snabb. Ser att du redan gjort det...

                      Comment

                      Working...
                      X