Allmänt meddelande

Collapse
No announcement yet.

Exakt samma antal trades trots olika insatsbelopp..?

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

  • #31
    Jag tycker att den här koden borde hålla sig med positiv kassa men det gör den inte.
    Varför?

    insatsprocent=getgvar(725)
    depåvärde=add(cash(t),cash(a))
    insatsbelopp=mult(depåvärde,insatsprocent)
    gränsvärde=add(insatsbelopp,5000)
    köpantal=Int(Div(insatsbelopp,s))
    if(gt(insatsbelopp,gränsvärde),köpantal,0)

    Comment


    • #32
      Med denna kod får du en annan tankevurpa

      gränsvärde=add(insatsbelopp,5000)
      köpantal=Int(Div(insatsbelopp,s))
      if(gt(insatsbelopp,gränsvärde),köpantal,0)

      i sista raden kan du ju ersätta gränsvärde med add(insatsbelopp,5000)

      då blir det
      if(gt(insatsbelopp,add(insatsbelopp,5000)),köpantal,0)

      och då blir if-satsen aldrig sann.

      mvh
      Bertil
      Last edited by Bertil; 2018-02-11, 11:01.

      Comment


      • #33
        En annan fråga Johan. Simulerar du för att handla aktier eller för att handla minifutures baserade på aktierna med olika hävstänger?

        Om du börjar att endast simulera handel med aktierna så kan man ju välja om du vill handla med belåning eller inte.
        Cash(T) kassan utan belåning.
        Cash(N) kassan med belåning.

        Börja att simulera endast med Cash(T) så skall kassan aldrig bli negativ.
        Simulerar du med Cash(N) misstänker jag att kassan kommer att bli negativ vid belåning.

        mvh
        Bertil

        Comment


        • #34
          Ursprungligen postat av Bertil Visa inlägg
          Med denna kod får du en annan tankevurpa

          gränsvärde=add(insatsbelopp,5000)
          köpantal=Int(Div(insatsbelopp,s))
          if(gt(insatsbelopp,gränsvärde),köpantal,0)

          i sista raden kan du ju ersätta gränsvärde med add(insatsbelopp,5000)

          då blir det
          if(gt(insatsbelopp,add(insatsbelopp,5000)),köpantal,0)

          och då blir if-satsen aldrig sann.

          mvh
          Bertil
          Såklart...

          Comment


          • #35
            Ursprungligen postat av Bertil Visa inlägg
            En annan fråga Johan. Simulerar du för att handla aktier eller för att handla minifutures baserade på aktierna med olika hävstänger?

            Om du börjar att endast simulera handel med aktierna så kan man ju välja om du vill handla med belåning eller inte.
            Cash(T) kassan utan belåning.
            Cash(N) kassan med belåning.

            Börja att simulera endast med Cash(T) så skall kassan aldrig bli negativ.
            Simulerar du med Cash(N) misstänker jag att kassan kommer att bli negativ vid belåning.

            mvh
            Bertil
            Jag handlar minisar skarpt
            Det jag försöker få till är att insatsen ska vara en procentsats av det aktuella depåvärdet och inte bli negativt, dvs inte använda kredit.

            Känns som att jag ska ta paus en stund och rensa tankarna lite...
            Last edited by JohanB; 2018-02-11, 11:08.

            Comment


            • #36
              Vid handel med minisar så simulerar man ju hävstången med negativ kassa.

              Jag handlar själv inte minisar, så andra får hjälpa dig med antalscripten och kassan för att få till korrekt hävstång.

              Man måste ju trigga på aktien och sedan simulera köp av en minifuture med viss hävstång med hjälp av köp av aktien med negativ kassa.

              Att då hålla reda på hur stor kassan skulle vara om man köpt minisen istället för aktien är inte självklart. Det kan ju mycket väl vara så att din ursprungliga kod som gav mycket minus i kassan var korrekt.

              mvh
              Bertil

              Comment


              • #37
                OK, fast så avancerad är inte jag ännu.

                Jag simulerar bara handel med aktier.

                Comment


                • #38
                  Ursprungligen postat av JohanB Visa inlägg
                  OK, fast så avancerad är inte jag ännu.

                  Jag simulerar bara handel med aktier.

                  Koda då så här:

                  insatsprocent=getgvar(725)
                  depåvärde=add(cash(t),cash(a))
                  insatsbelopp=mult(depåvärde,insatsprocent)
                  köpantal=Int(Div(insatsbelopp,s))
                  if(gt(Sub(Cash(T),5000),insatsbelopp),köpantal,0)

                  mvh
                  Bertil

                  Comment


                  • #39
                    Jag provade och fick det att fungerar direkt. Lägg in villkoret att minsta handelsbeloppet ska vara större än kassan. va) scriptet får högst handla för kassan. Eftersom att jag inte vet vad som händer med tex lasttrade(b,d) när va) scriptet ger 0 vill jag undvika dessa situationer.

                    sl) scriptet avslutas med and(buy1,gt(cash(t),8000))

                    va) script
                    ======
                    insatsprocent=getgvar(725)
                    depåvärde=add(cash(t),cash(a))
                    insatsbelopp=mult(depåvärde,insatsprocent)
                    köpantal=Int(Div(if(gt(insatsbelopp,cash(t)),cash(t),insatsbelopp),c))

                    Comment


                    • #40
                      Ursprungligen postat av Henric Visa inlägg
                      Jag provade och fick det att fungerar direkt. Lägg in villkoret att minsta handelsbeloppet ska vara större än kassan. va) scriptet får högst handla för kassan. Eftersom att jag inte vet vad som händer med tex lasttrade(b,d) när va) scriptet ger 0 vill jag undvika dessa situationer.

                      sl) scriptet avslutas med and(buy1,gt(cash(t),8000))

                      va) script
                      ======
                      insatsprocent=getgvar(725)
                      depåvärde=add(cash(t),cash(a))
                      insatsbelopp=mult(depåvärde,insatsprocent)
                      köpantal=Int(Div(if(gt(insatsbelopp,cash(t)),cash(t),insatsbelopp),c))
                      Jag fattade av Johans ursprungliga kod att om det inte gick att köpa för hela insatsbeloppet så fick det vara. Med din kod så kommer ju även småposter att handlas. Nåja, Johan får bestämma.

                      mvh
                      Bertil

                      Comment


                      • #41
                        Bara ett exempel för minis. Sätt vilket belopp som helst som passar ihop med valt saldo från början.

                        Lärdomen är att man måste hålla koll på kreditlinan.

                        Comment


                        • #42
                          Bertil & Henric,

                          tack för era exempel, jag har nu kört båda era script. Jag har till och med varit så smart (tyckte jag ;-)) att jag har skapat ett extra kontrollscript för att stoppa köpet om insatsen är större än tillgänglig kassa.
                          i va) insats scriptet läggs till "setgvarif(insatsbelopp,730,1)"

                          Inget fungerar...

                          I bifogad pdf ser ni de tre körningarna.
                          Oavsett vilken kod som används eller om xk)-scriptet är med eller inte så blir det exakt samma trades i alla fall.

                          Tillbaks till ruta 1 alltså - hur kan det bli det?

                          Dessutom spräcker alla körningarna tillgänglig kassa ganska ordentligt.
                          Innan första försäljningen görs är summa kassa och marknadsvärde uppe på 800 000, alltså dubbelt upp mot startkapitalet.
                          Då det är en vecka från första köp till första sälj tror jag inte att denna dubblering har med värdeökning att göra...

                          Jag kan bara tolka dessa resultat som att funktionen cash(t) inte fungerar i bänken.
                          Den kontrollen eller funktionen verkar bara helt enkelt inte fungera.

                          Så vad gör man nu?
                          Driftsätter och hoppas på att den skarpa miljön hanterar cash(t) lite bättre..?
                          Attached Files
                          Last edited by JohanB; 2018-02-11, 17:11.

                          Comment


                          • #43
                            Jag fick det att fungera. Nu vet jag ej vad som skiljer. Jag skulle bygga projektet från början för att vara säker. Tex kan det hända att en ändring av strukturen i en ordermodell inte slår igenom. Dubbelkolla att rätt modeller med rätt script används. Ring 112 om problemet kvarstår. Annars bra om någon annan kan kolla om de får samma problem.

                            Edit: Även dubbelkolla att gt(cash(t),x) och mitt antalscript används. Alternativt prova antalscript och de tester för belopp som finns i någon standardmodell. Glöm även inte att förnya och spara ett projekt när du gör ändringar. Lycka till.

                            Edit: För att vara säker så lägger jag in scriptsnuttar för det jag menar ovan.

                            sl) scriptet avslutas med and(buy1,gt(cash(t),8000))

                            va) script
                            ======
                            insatsprocent=getgvar(725)
                            depåvärde=add(cash(t),cash(a))
                            insatsbelopp=mult(depåvärde,insatsprocent)
                            köpantal=Int(Div(if(gt(insatsbelopp,cash(t)),cash(t),insatsbelopp),c))
                            Last edited by Henric; 2018-02-11, 17:52.

                            Comment


                            • #44
                              Från bilagan i #4 ser jag att du gör flera trades vid samma tidpunkt 17.20

                              Det gäller då att den andra traden hunnit få uppdaterad kassarapport.
                              I ordermodellen väljer jag alltid in
                              xk) Delay order

                              tidspärr:=1
                              lt1:=LastTrade(B,D)
                              lt2:=LastTrade(S,D)
                              i1(
                              minSedanKöp=Mult(Sub(Date(),lt1),1440)
                              minSedanSälj=Mult(Sub(Date(),lt2),1440)
                              And(Gt(minSedanKöp,tidspärr),Gt(minSedanSälj,tidspärr))
                              )

                              Detta för att förhindra dubbelköp i samma instrument. Speciellt viktigt vid skarp körning då det kan ta ett antal sekunder för Nordnet att registrera köpet och sedan skicka tillbaka resultatet till NAT.

                              Problemet med din kod verkar vara att du får två köptrig på olika instrument direkt efter varandra. Cash(T) verkar inte ha hunnit uppdatera sig innan nästa instrument köptriggat. Eftersom Delay order går mot samma instrument så hjälper det nog inte i ditt fall.

                              1) Testa med Cash(N) istället. Cash(N) vet ju inte belåningsvärdet på instrumentet (fås från Nordnet) så det borde bli samma som Cash(T).

                              2) Se till att få in en fördröjning i triggerscripten.
                              Jag vet inte hur NAT är trådat om loopen som snurrar igenom alla triggerscripten fortsätter oberoende om en trigg inträffat dvs triggen på nästa instrument kommer innan första affären gått till avslut.

                              mvh
                              Bertil

                              Comment


                              • #45
                                Ursprungligen postat av Bertil Visa inlägg
                                Från bilagan i #4 ser jag att du gör flera trades vid samma tidpunkt 17.20

                                Det gäller då att den andra traden hunnit få uppdaterad kassarapport.
                                I ordermodellen väljer jag alltid in
                                xk) Delay order

                                tidspärr:=1
                                lt1:=LastTrade(B,D)
                                lt2:=LastTrade(S,D)
                                i1(
                                minSedanKöp=Mult(Sub(Date(),lt1),1440)
                                minSedanSälj=Mult(Sub(Date(),lt2),1440)
                                And(Gt(minSedanKöp,tidspärr),Gt(minSedanSälj,tidspärr))
                                )

                                Detta för att förhindra dubbelköp i samma instrument. Speciellt viktigt vid skarp körning då det kan ta ett antal sekunder för Nordnet att registrera köpet och sedan skicka tillbaka resultatet till NAT.

                                Problemet med din kod verkar vara att du får två köptrig på olika instrument direkt efter varandra. Cash(T) verkar inte ha hunnit uppdatera sig innan nästa instrument köptriggat. Eftersom Delay order går mot samma instrument så hjälper det nog inte i ditt fall.

                                1) Testa med Cash(N) istället. Cash(N) vet ju inte belåningsvärdet på instrumentet (fås från Nordnet) så det borde bli samma som Cash(T).

                                2) Se till att få in en fördröjning i triggerscripten.
                                Jag vet inte hur NAT är trådat om loopen som snurrar igenom alla triggerscripten fortsätter oberoende om en trigg inträffat dvs triggen på nästa instrument kommer innan första affären gått till avslut.

                                mvh
                                Bertil

                                Tack Bertil,

                                det känns spontant som att du är nå´t på spåren här, det skulle ju onekligen förklara en hel del.

                                Problemet är att jag också har med xk) Delay order...

                                Ska testa med cash(N) istället och kanske se om jag kan öka på tidsspärren lite. Återkommer säkert i frågan

                                Comment

                                Working...
                                X