Allmänt meddelande

Collapse
No announcement yet.

skript frossa

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

  • #16
    god fortsättning själv.

    Det är ett syntaxfel på raden 'korsning' där ordet 'bra' står direkt ihop med en parentes. Vet inte exakt vad du avsett där?

    Annars vet jag att rikard och inber haft lite diskussioner om just ett vidgande bollinger förut. Det finns där om du söker lite.

    En sak som kan vara bra att komma ihåg är att kärnan i bollinger är standardavvikelse.

    Så det är ju själva std-avvikelsen du är ute efter. Liten avvikelse, smalt bollinger, plötsligt avvikelse kraftig ballong på bollinger.

    devbakåt:=1
    stddå:=Stdev(ref(c,devbakåt),20)
    stdnu:=Stdev(c,20)

    så dessa ovan kan du laborera med lite.

    T.ex kolla ifall standardavvikelse på större än 0.5 kan vara intressant.

    stdnu:=Stdev(c,20)
    gt(stdnu,0.5)

    Std-avvikelse säger inte direkt något om riktningen på avvikelsen. Så för att se att det är ökning kanske du kan göra så här:

    devbakåt:=1
    devlevel:=0.5
    stddå:=Stdev(ref(c,devbakåt),20)
    stdnu:=Stdev(c,20)
    nuok:=gt(stdnu,devlevel)
    dåok:=le(stddå,devlevel)
    i15(and(nuok,dåok))

    'stddå' tittar på förgående periods stdev()(eller devbakåt perioder du väljer)

    'stdnu' tittar nu.

    Du kollar att nu är större än 'devlevel', och att då var det mindre än, dvs att du ökat avvikelsen från under tröskeln 'devlevel', till över.

    Sedan får du kanske kombinera med det du hade gjort själv med vanlig bollingerkorsning då för att avgöra om det är typisk säljsignal eller köpsignal du fått. För scriptet ovan talar bara om att det plötsligt börjat avvika.

    Sedan bygger man väl vidare om man finner att man måste veta att det varit smalt band under längre tid t.ex och då lägger du till kanske något sådant här:

    devbakåt1:=1
    devbakåt2:=3
    devlevel:=0.5
    stddå1:=Stdev(ref(c,devbakåt1),20)
    stddå2:=Stdev(ref(c,devbakåt2),20)
    stdnu:=Stdev(c,20)
    nuok:=gt(stdnu,devlevel)
    dåok:=and(le(stddå1,devlevel),le(stddå2,devlevel))
    i15(and(nuok,dåok))

    Nu krävs för 'dåok' att både 1 period bakåt och 3 perioder bakåt har det varit liten avvikelse. Där kan du ju labba vidare med vilket spann du behöver.

    Avvikelsen mäts ju över 20 perioder så det ändras inte blixtsnabbt. Så du kan kanske prova

    devbakåt2:=10

    eller något sådant om du vill att det skall ha varit stiltje längre tid innan.

    Nu har jag kört med bollingers standardvärde 20 perioder som du ser. Men du byter bara till dina 25 perioder istället.

    Comment


    • #17
      Hej iceage!

      Jo, det stämmer att vi har grävt lite i bollingerscript förut.

      Hittade några rader som returnerar sant om det inte pågår en konsolidering:

      ag12:=BolBands(20,2.0,u)
      ag21:=BolBands(20,2.0,l)
      bolma1:=Mov(ag12,6,s)
      bolma2:=Mov(ag21,6,s)
      diff1:=Gt(Div(ag12,ag21),1.006)
      diff2:=Gt(Div(bolma1,bolma2),1.005)
      okbol:=And(diff1,diff2)

      Alltså: okbol är sant om avståndet mellan bollingerbanden är ok att handla på, enligt mina egna teorier förstås.
      Dessa är naturligtvis inte rätt i alla lägen, men det hela går ju att ändra så det passar dina teorier!

      När det gäller att stänga en position så är det ju en annan sak, man kan ju tänka sig att man helt enkelt stänger när man uppnått en viss vinst, därefter väntar på nästa "guldläge".

      Jag hjälper gärna till om det är något jag kan fixa!

      Comment


      • #18
        Tack Lasse!
        Trevlig liten julklapp du levererade, med lite trixande i inställningar ger det riktigt fina signaler.
        Rikard:=jag lär behöva massor av hjälp framöver, jag är riktigt frågvis, snällt av dej att avlasta Lasse i min frågespalt när du har tid.

        Jag har såklart en rykande färsk fråga som dök upp i morse när jag satt och vandrade i diagrammet. Rätt som det var började kurs kurvan vandra av sig skälv utan att jag behövde sitta och hålla ned piltanjenten. Jag får inte i gång den möjligheten igen, som jag tyckte var alldeles utmärkt när man sitter och letar signaler. Var det en tillfällighet eller??

        Comment


        • #19
          Va? Det har jag aldrig sett själv!

          Kan det vara så att programmet var upptaget medans du tryckte och sen stegade fram alla dina tryckningar på en gång när det blev ledigt igen?

          Comment


          • #20
            Jag har inte detaljläst vad ni diskuterade ovan, men såg att det bla handlade om vidgande bollingerband, och troligen i en stigande trend. Tänkte nämna att det är väldigt enkelt att kontrollera det för den senaste perioden. Om C är större än medelvärdet + en standardavvikelse kommer banden att vidgas. Tex:

            Om

            GT(C,BolBands(20,1,U))

            returnerar sant har banden vidgats innevarande period.

            Testar man istället med ROC() blir det istället sant både för accelererande fall såväl som stigningar.

            Comment


            • #21
              Hej!
              Den var snygg Magnus.
              Om jag vill utöka signalen med kriteriet att inte ge signal förrän cloce stänger lägre än föregående stapels close när väl close har tagit sig över upper band.

              Comment


              • #22
                Här kommer skriptet

                magnus:=GT(C,BolBands(25,2.0,U))
                i5(mult(magnus,20))

                Comment


                • #23
                  OBS att magnus har avvikelse 1.0 ggr i sin formel för att hitta när banden vidgas.

                  Ditt script tittar på standard bollinger.

                  När du skriver 'upper band' pratar du om magnus signal eller om standard bollinger?


                  okbakåt:=5
                  bkrossh:=GT(H,BolBands(25,2.0,U))
                  bollnyss:=Hhv(bkrossh,okbakåt)
                  closedn:=LT(L,Ref(c,1))
                  magnus:=GT(C,BolBands(25,1.0,U))
                  mangenyss:=Hhv(magnus,okbakåt)
                  bsignal:=And(bollnyss,closedn)
                  i5(mult(bsignal,20))

                  'okbakåt' bestämmer hur nyligen det är ok att bollingersignalen var.

                  I 'bkrossh' så testas om High varit över bandet. Om du använder high så funkar backtesting bättre än close, eftersom High bildas succesivt i varje period för varje insamling.

                  'bollnyss' ger sant om det varit korsning av bollinger någon gång inom 'okbakåt' perioder.

                  'closedn' testar ifall Low varit lägre än förgående close. Low används av samma skäl för att backtesting skall bli så likt verkligheten online som möjligt. Dvs Low bildas ju också succesivt under en period.

                  'magnus' och 'mangenyss' kan du byte till i 'bsignal' ifall det är den signalen och inte bollinger du vill testa mot.

                  Comment


                  • #24
                    Snyggt Lasse!
                    Det blev 3 punkter på den rekyl signalen i förmiddags.
                    Det får tala sitt tydliga språk på att den fungerar som en varning att gå ur ett köp eller att gå kort på en rekyl .
                    Signalen är kraftfullast på morgonen. Kan man lägga in i skriptet att den endast skall reagera på signal fram till kl 11.00 eller ett vist antal perioder från öppning.

                    Utgång blev på den motsatta signalen.

                    okbakåt:=5
                    bkrossh:=LT(H,BolBands(25,2.0,L)) {jag modellerar här}
                    bollnyss:=Hhv(bkrossh,okbakåt)
                    closedn:=GT(L,Ref(c,1))
                    bsignal:=And(bollnyss,closedn)
                    i5(mult(bsignal,20))

                    Comment


                    • #25
                      Jodå, det är inga problem att beräkna och testa på tider och klockslag.

                      Tidsformatet är en datum+tid där datum är ett heltal, och decimaldelen är klockslaget. Dvs värdet 0.5 är halvvägs genom dygnet och då kl 12:00 på dagen.

                      tid:=date()
                      datum:=int(tid)
                      klockan:=frac(tid)

                      'datum' tar integer-funktionen av systemtiden 'tid' och får rent heltal som är datumet.

                      'klockan' tar fraction av systemtiden och får fram hur långt in på dagen man är.

                      Vi bygger vidare

                      klockslag:=mult(11,60)
                      tid:=date()
                      datum:=int(tid)
                      klockan:=frac(tid)
                      minuter:=mult(klockan,1440)
                      morgon:=lt(minuter,klockslag)


                      'klockslag' skall motsvara kl 11.00 och är 11*60 minuter.
                      'minuter' multiplicerar med 1440 som är antalet minuter på ett dygn. Man får då fram systemtiden nu i minuter in på dagen.

                      'morgon' är sant om systemtiden är före tiden 'klockslag' dvs 11.00.

                      Så väv ihop detta med en AND() med ditt övriga script för att villkora med tiden.

                      Comment


                      • #26
                        Kom på att för att kunna backtesta så kan du använda 'd' för att få tidpunkten för nuvarande period. Då kan du backtesta utan problem.

                        efteröppning:=180
                        klockslag:=add(mult(Market(o),1440),efteröppning)
                        tid:=d
                        datum:=int(tid)
                        klockan:=frac(tid)
                        minuter:=mult(klockan,1440)
                        morgon:=lt(minuter,klockslag)

                        Här anger du 180 minuter efter öppningstiden i 'klockslag'. Det blir ju också 11.00. Tips på annat sätt alltså.

                        Sedan är 'tid' angivet som tidstämpeln för nuvarande period med konstaten D.


                        Annars samma som förut men detta funkar i backtesting då.

                        Comment


                        • #27
                          Hej Lasse!

                          Min läxa ligger i nivå/bena ut innebörden i andras skript och i möjligaste mån lägga till/förbättra efter mina önskemål.
                          Nu har jag försökt implementera tidsfaktorn i vårt Bollinger skript med usligt resultat
                          Så här tänker jag.

                          okbakåt:=5
                          bkrossh:=GT(H,BolBands(25,2.5,U))
                          bollnyss:=Hhv(bkrossh,okbakåt)
                          closedn:=LT(L,Ref(c,1))
                          bsignal:=And(bollnyss,closedn)
                          {detta är ditt första skript}

                          klockslag:=mult(11,60)
                          tid:=date()
                          datum:=int(tid)
                          klockan:=frac(tid)
                          minuter:=mult(klockan,1440)
                          morgon:=lt(minuter,klockslag)
                          {detta är ditt tids angivelse skript}

                          i5(mult(and(morgon,bsignal),20))

                          Jag följer ”morgon” upp till ”klockslag” som är en slinga av sammanvävda storheter för tiden.
                          ”bsignal” en sammanflätning av ursprungsskriptet
                          Varför räcker det då inte med att bara att ta in dem i en ”And” funktion som jag gjort ?

                          Comment


                          • #28
                            Det går fint att göra som du säger.

                            Bara And() ihop det.

                            Comment


                            • #29
                              Tack och adjö till denna för mej, mycket givande sträng vill jag göra på följande sätt.

                              Som ”Hhv Bonpa”(klura på de ni) till 3 tjejer i tonåren vill jag bara tala om att vad några ord på vägen kan betyda mycket i sin utveckling, när allt verkar hopplöst och inga fler möjligheter verkar stå till buds.
                              Tack för de orden Lasse, Rikard och Magnus

                              Comment

                              Working...
                              X