Allmänt meddelande

Collapse
No announcement yet.

Fladderfilter samt blockning av kontinuerlig signal.

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

  • #31
    Att du har 0 i 501 innebär att du inte får någon signal från buy5.

    Sedan kan du inte skriva:
    SetGvarIf(GetGVar(61),204,signal4)
    om du kör scriptet i ett diagram.

    Du måste skriva:
    SetGvarIf(GetGVar(61,N),204,and(signal4,block_diag_skriv),T)

    Comment


    • #32
      Har kopierat in min skripttext från ett fungerande skript, hjälper inte, är väl något i mitt skript som låser det hela, ledsamt.
      Tack för raden med " block_diag "

      Comment


      • #33
        Surt Ali, men att scriptet gav signaler tidigare var nog mer beroende på tur än något annat.
        Du är inte ensam om att ha script som verkar fungera trots att det är något "fel" i dem.
        Själv har jag ibland ägnat veckor åt felsökningar i till synes fungerande script. (Mycket frusterande.)

        Det vore naturligtvis allra bäst om det inte gick att köra scripten överhuvudtaget om det är något fel i dem, men som det är nu är den enda vägen att nagelfara dem in i absurdum.

        Hoppas du hittar felet, och lycka till med nagelfarandet.

        Comment


        • #34
          N,ja har haft och kört dom i många år, nu tänkte jag lägga till lite finesser men det s#et sig. Jag tror i vart fall att jag lyckats att fixa att köra flera modeller till en depå.
          Jag mailade skriptet till dig, kom det inget ?

          Trevlig helg.

          Comment


          • #35
            Ursprungligen postat av ali Visa inlägg
            Jag mailade skriptet till dig, kom det inget ?

            Trevlig helg.
            Aha, det har jag missat. Jo, det har kommit.
            Jag lovar att titta igenom det.

            Trevlig helg till dig också.

            Comment


            • #36
              Nu har jag tittat igenom ditt script ali.
              Du har ett mail i brevlådan.

              Comment


              • #37
                Hur ändrar jag om jag vill ha fradderfunktionen men behålla signalen perioden ut ?
                Har ett skript som körs på indexet och ger tillåtelse till ett skript på terminen där signalen är en del av parametrarna.

                Comment


                • #38
                  Jag förstår inte frågan riktigt tror jag, menar du att du vill ha en vaiabel "signal_lock"?

                  Comment


                  • #39
                    Nej jag vill behålla signalen perioden ut efter fladdern, motagarskriptet kanske inte har alla parametrar rätt och signalen från terminskriptet är ju bara en av flera parameter, virrigt kanske.

                    Jag kör MACD på terminen och vill ha längre fladdertid på den än skriptet på terminen.

                    Alltså bara fladderfilter ingen lock.

                    Comment


                    • #40
                      Har löst det genom att i 30 minupplösning ha 10 min fladder och 18 min lock och det tycks fungera.

                      Comment


                      • #41
                        Tänk på att "faddertiden" och "locktiden" adderas. Nu har du allstå 10+18 totalt 28min som signalen är aktiv. Om du istället vill ha 5min fladdertid men att signalen skall ligga på 28min skriver du istället
                        signal_delay:=5
                        signal_lock:=23
                        Men eftersom du kör 30min-upplösning kanske du istället skall ha att signalen ligger på totalt 35min för säkerhets skull?

                        Comment


                        • #42
                          Det går alltså att köra med lite övertid utan att det ställer till något annat problem.

                          Comment


                          • #43
                            Precis, i det norma fallet utan fladderfilter ligger ju signalen på ända tills scripten slår om till sälj. Den enda finessen med lock-valet är att om man har en stopploss som slår till tidigare än de normala scripten slår om, så tas ju direkt en ny position åt det hållet man ville komma ur.

                            (Hoppas jag uttryckte mig förståligt)

                            Comment


                            • #44
                              Klart som kristall, tack för hjälpen.

                              Comment


                              • #45
                                { Fladderfilter samt begränsad köpsignal }
                                { köper endast inom intervallet: 5min< intervall <8min efter det att signal triggats, ställbart }

                                { Vanliga villkor i de flesta script }

                                { säkerställa att inga positioner tas vid dagens start innan start_delay passerats }
                                start_delay:=2
                                inpådagen:=gt(sekund_nu,add(540,start_delay)) { 540 är kl 9.00 }

                                { säkerställ att databastid och systemtid är på samma dag }
                                datum_ok:=eqv(int(d),int(date()))


                                sekund_nu:=mult(frac(date()),86400)

                                { nya tillägg innan intraday-parantesen}

                                { Fladdervariabler }
                                signal_delay:=20
                                signal_lock:=5

                                { Säkerställer blockering av cellskrivning under diagramkörningen }
                                block_diag_skriv:=1 {Villkor för bänk-körning}

                                { Tidslucka innan första positionen tas efter öppning}
                                innan_position:=and(ge(sekund_nu,540),le(sekund_nu,add(540,start_delay)))



                                { läs av innehav }

                                ej_innehav:=le(portfolio(v),0)


                                { definiera tidpunkter }

                                kl0930:=gt(frac(d),0.37)
                                kl1710:=lt(frac(d),0.74)
                                tidspärr:=5



                                { testa så att pengar finns innan köp }

                                pengar:=gt(cash(t),scrpar(21))



                                i1(


                                { definiera medelvärde }

                                mv1=mov(close,5,s)
                                mv2=mov(close,5,s)
                                mv3=mov(close,5,s)
                                mv4=mov(close,5,s)



                                ovanför1=llv(gt(close,mv1),1)
                                ovanför2=llv(gt(close,mv2),1)
                                ovanför3=llv(gt(close,mv3),1)
                                ovanför4=llv(gt(close,mv4),1)




                                kors=and(and(ovanför1,ovanför2),and(ovanför3,ovanför4))


                                rc1=roc(close,1)

                                rc_över1=gt(rc1,0.01)




                                { test om minst 5 minuter gått sedan förra köp }




                                average1=mov(close,20,s)

                                nedanför1=aref(llv(lt(c,average1),15),1)

                                Block1=not(nedanför1)

                                medelvärde2=MMovRes(C,10,5,0.15)
                                klar2=lt(medelvärde2,100)

                                uppåt=gt(c,hhv(aref(h,1),5))



                                r1=rsiw(14)
                                r2=gt(r1,30)





                                köp1=and(ovanför1,rc_över1)

                                köp2=and(and(köp1,rc_över1),r2)

                                köp3=and(and(köp2,klar2),uppåt)




                                { tillägg att lägga inom intraday-parantesen sist i scriptet (efter buy7) }

                                { Nolla cell innan handel }
                                nollvillkor1=and(innan_position,gt(Getgvar(500,N),0))
                                SetGvarIf(0,500,and(nollvillkor1,block_diag_skriv),T) { Nollställer cell 500 innan handeln börjar }

                                { Skriv tid i cell }
                                nysignal=and(köp3,eqv(GetGvar(500,N),0))
                                SetGvarIf(sekund_nu,500,and(nysignal,block_diag_skriv),T)

                                minsedan_signal=if(gt(GetGvar(500,N),0),sub(sekund_nu,GetGvar(500,N)),0)
                                tid_ok=if(and(ge(minsedan_signal,signal_delay),le(minsedan_signal,add(signal_delay,signal_lock))),1,0)

                                köp4=and(and(köp3,tid_ok),ej_innehav)

                                { Nolla cell }
                                nollvillkor2=and(not(köp3),gt(GetGvar(500,N),0))
                                SetGvarIf(0,500,and(nollvillkor2,block_diag_skriv),T) { nollställer cell 500 om ej signal }


                                mult(köp4,15)
                                )
                                Last edited by larry; 2016-02-06, 10:10.

                                Comment

                                Working...
                                X