Allmänt meddelande

Collapse
No announcement yet.

Scriptexempel

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

  • #16
    Bertil,
    Snyggt!

    Comment


    • #17
      Då man handlar är ju de viktigaste parametrarna pris och tid. Klockan 17.30 stannar vi klockan och låser priset, men på andra sidan atlanten handlar man ju till 22.00. Alla aktier påverkas ju av makro som inträffar mellan gårdagens stängning och dagens öppning. Då man tar medelvärden i minutupplösning på säg 120 minuter så blir ju dessa förryckta av dagens öppningsgap.
      Jag har därför roat mig med att kompensera kursen för öppningsgapet för att på så sätt få ett jämnare medelvärde. Här följer ett exempel.
      ...
      { Bertils GAP köp }
      { 151129 }
      innehav:=Portfolio(v)
      ok_att_handla:=Eqv(innehav,0)

      tidspärr1:=40
      tidspärr2:=40
      lt1:=LastTrade(B,D)
      lt2:=Portfolio(D)
      minSedanKöp:=Mult(Sub(Date(),lt1),1440)
      minSedanTrans:=Mult(Sub(Date(),lt2),1440)
      delay_ok:=gt(minSedanKöp,tidspärr1)
      trans_ok:=gt(minSedanTrans,tidspärr2)
      perioder01:=Sub(int(mult(frac(d),1440)),540)
      minSedanStart:=Mult(Sub(Date(),perioder01),1440)

      i1(
      tid1=gt(int(mult(frac(d),1440)),600)
      { före kl 17.10 }
      tid2=lt(int(mult(frac(d),1440)),1020)

      igårcloseTerm=aref(c,add(perioder01,2):600)
      idagopenTerm=aref(O,sub(perioder01,0):600)
      gap01=Sub(idagopenTerm,igårcloseTerm)
      corre=if(gt(d,MinSedanStart),c,Sub(c,gap01))
      mvclose=Div(Add(c,corre),2)


      kurva01=Mov(corre,180)
      kurva02=Mov(c,180)
      kurva03=Mov(mvclose,180)
      kurva04=Mov(c,60)
      kurva05=Mov(c,20)

      Draw(kurva01,3,rqb0)
      Draw(kurva02,4,kqb0)
      Draw(kurva03,5,dgqb0)

      villkor01=gt(sub(kurva01,kurva02),3)
      villkor02=gt(sub(kurva04,aref(kurva04,1)),0.02)
      villkor03=gt(sub(kurva05,aref(kurva05,1)),0.02)
      villkor04=gt(sub(kurva03,aref(kurva03,1)),0.02)


      köpa=And(And(And(villkor01,villkor02),villkor03),villkor04)
      ditt_köpscript=And(And(And(And(köpa,tid1),tid2),delay_ok),trans_ok)
      köpsignal=And(And(ditt_köpscript,köpa),ok_att_handla)
      Mult(köpsignal,20)
      )
      ...
      Har gjort motsvarande säljscript (spegelvänt).

      Jag har kört mot index för 2015 men resultatet är +- 0. Idén kan kanske kombineras med Legato eller andra villkor för bättre slutresultat.

      Avkastning 8.44 kr 0.01% på 49 affärer under 1925:06:03 tim
      Av dessa blankat 25 st med avkastning -25.05 kr -0.06%
      Innehav 10 st med vinst 336.97 kr 2.22%
      Innehav 14 st med förlust -303.48 kr -1.39%
      Blankning 13 st med vinst 369.25 kr 1.81%
      Blankning 12 st med förlust -394.30 kr -2.17%


      Med vänlig hälsning
      Bertil
      Attached Files
      Last edited by Bertil; 2015-11-29, 15:23.

      Comment


      • #18
        Jag har nämnt det tidigare men ett mått på volatiliteten är att jämföra två medelvärden med varandra.
        i1(
        volatil=Gt(Mov(Abs(sub(mov(c,5),mov(c,12))),60),0.8)
        mult(volatil,10)
        )
        Med vänlig hälsning
        Bertil


        Edit: Man kan använda volatiliteten som hjälpfunktion. Antingen för att blockera ordermodeller att handla eller för att tillåta en annan typ av ordermodeller, eller för att använda Take Profit eller Stop Loss då det blir volatilt.
        Man kan testa att tillåta ordermodeller som handlar med högre handelsfrekvens då det blir volatilt samtidigt som man blockerar de långsammare ordermodellerna.
        Attached Files
        Last edited by Bertil; 2015-12-06, 13:43.

        Comment


        • #19
          Här har lagt in ett medelvärde som beror på volatiliteten

          i1(
          volatil=Gt(Mov(Abs(sub(mov(c,5),mov(c,12))),60),0.8)
          sling01=if(volatil,mov(c,15),mov(c,70))
          Draw(sling01,4,dgqb0)

          mult(volatil,10)
          )

          Med vänlig hälsning
          Bertil
          Attached Files

          Comment


          • #20
            Ursprungligen postat av Bertil Visa inlägg
            Då man handlar är ju de viktigaste parametrarna pris och tid. Klockan 17.30 stannar vi klockan och låser priset, men på andra sidan atlanten handlar man ju till 22.00. Alla aktier påverkas ju av makro som inträffar mellan gårdagens stängning och dagens öppning. Då man tar medelvärden i minutupplösning på säg 120 minuter så blir ju dessa förryckta av dagens öppningsgap.
            Jag har därför roat mig med att kompensera kursen för öppningsgapet för att på så sätt få ett jämnare medelvärde. Här följer ett exempel.
            ...
            Med vänlig hälsning
            Bertil
            Tidigare så sparade jag alltid kursen för DOW kl 17.24 och kl 22.00. Jag beräknade den procentuella skillnaden och sedan multiplicerade jag OMX slutkurs kl 17.24 med denna. Min idé var att handla om OMX öppnade annorlunda än min beräkning. Men man kan även ta DOWs procentuella ändring och justera gårdagens kurser bakåt för att eliminera gapet, kanske är fördelaktigt för medelvärden typ MACD. Har inte gjort det själv ännu.

            Jag använder istället en teknik för att inte medelvärdesbilda över gapet genom att göra så här:

            perioder02=Sub(int(mult(frac(d),1440)),540)
            perioder10=MN(perioder02,50)
            sling01=mov(c,perioder10)

            ...

            Med vänlig hälsning
            Bertil

            Comment


            • #21
              Snyggt!
              Men jag trodde faktiskt inte det fungerade att utelämna 3:e parametern i MOV(), men det verkar det ju göra.

              Comment


              • #22
                Ursprungligen postat av Rikard Nilsson Visa inlägg
                Snyggt!
                Men jag trodde faktiskt inte det fungerade att utelämna 3:e parametern i MOV(), men det verkar det ju göra.

                Använder inte tredje parametern i Mov då jag menar s som är default.

                Med vänlig hälsning
                Bertil

                Comment


                • #23
                  Av 729 handelssignaler i år härrör 9 st från ordermodellen "Mitt BolVol4 sälj vänd".

                  { Mitt BolVol4 sälj vänd }
                  { 15001 }
                  innehav:=Portfolio(v)
                  ok_att_handla:=Gt(innehav,0)
                  steg01:=0.0001
                  antal01:=140
                  antal02:=15
                  tidspärr1:=5
                  tidspärr2:=5
                  lt1:=LastTrade(S,D)
                  lt2:=Portfolio(D)
                  minSedanShort:=Mult(Sub(Date(),lt1),1440)
                  minSedanTrans:=Mult(Sub(Date(),lt2),1440)
                  delay_ok:=gt(minSedanShort,tidspärr1)
                  trans_ok:=gt(minSedanTrans,tidspärr2)
                  vinst:=Gt(Sub(c,LastTrade(b,p)),7)
                  i1(
                  { efter kl 09.30}
                  tid1=gt(int(mult(frac(d),1440)),570)
                  { före kl 17.00}
                  tid2=lt(int(mult(frac(d),1440)),1020)

                  val=if(gt(v,0),v,aref(v,1))
                  linje01=div(mov(mult(c,val),antal01),mov(val,antal01))
                  linje11=div(mov(mult(c,val),antal02),mov(val,antal02))
                  linje02=mov(c,antal01)
                  linje12=mov(c,antal02)
                  linje03=mov(c,3)
                  linje04=aref(linje03,1)
                  linje05=aref(linje02,1)
                  draw(linje01,1,rqb0)
                  draw(linje02,2,gqb0)
                  draw(linje11,3,bqb0)
                  draw(linje12,4,dgqb0)
                  villkor01=Gt(mov(sub(linje02,linje01),5),0.01)
                  villkor02=Gt(mov(sub(linje12,linje11),5),0.02)
                  villkor03=Gt(sub(linje04,linje03),0.001)
                  villkor04=Gt(Sub(linje11,linje03),0.001)
                  villkor05=Lt(Abs(Sub(linje11,linje01)),4)
                  villkor06=Gt(Sub(linje05,linje02),0.0001)
                  villkor07=Or(villkor05,villkor06)

                  perioder02=Sub(int(mult(frac(d),1440)),540)
                  perioder10=MN(perioder02,20)
                  närasälj14=Sub(c,BolBands(perioder10:22,2.2,L))
                  skillnad15=Sub(BolBands(perioder10:22,2.2,U),BolBands(perioder10:22,2.2,L))
                  villkor14=or(if(gt(skillnad15,3),gt(närasälj14,MN(div(skillnad15,3),1.5)),1),lt(närasälj14,0))
                  profit02=or(lt(GetGVar(100),0),Lt(Sub(c,LastTrade(B,P)),0))
                  villkor16=if(profit02,1,villkor14)

                  sälja=And(and(and(and(and(and(villkor01,villkor02),villkor03),villkor04),vinst),GetGVar(111)),villkor16)
                  ditt_säljscript=And(And(And(And(sälja,tid1),tid2),trans_ok),delay_ok)
                  säljsignal=And(ditt_säljscript,ok_att_handla)
                  profit01=Add(GetGVar(100),Sub(c,LastTrade(B,P)))
                  SetGVarIf(profit01,100,säljsignal,T)
                  Mult(säljsignal,20)
                  )

                  ..........

                  Med vänlig hälsning
                  Bertil
                  Last edited by Bertil; 2015-12-16, 19:31.

                  Comment


                  • #24
                    Ursprungligen postat av Bertil Visa inlägg
                    Teorin bakom volymprofil säger ju att vid vissa nivåer uppfattas som mer "korrekta" dvs säljare och köpare tycker båda att kursen är korrekt varpå volymen ökar.
                    Jag är ute efter att detektera en rörelse då kursen rör sig från ett sådant område, dvs kursändringen sker med minskad volym. Först medelvärdesbildar jag produkten av kursen och volymen. Sedan dividerar jag med den medelvärdesbildade volymen. Jämför sedan med motsvarande medelvärde av kursen där inte volymen är inblandad. Kontroller även med medelvärden att kursrörelsen går åt rätt håll.
                    Ett sådant köpscript kan se ut så här:
                    { volymprofil köp }

                    längd01:=20
                    steg01:=0.07
                    steg02:=0.1

                    i1(
                    hugo=Mov(mult(c,v),längd01,e)
                    sliten=Mov(v,längd01,e)
                    kvot=Div(hugo,sliten)
                    mv01=Mov(c,längd01,e)
                    diff=mult(div(Sub(mv01,kvot),c),1000)
                    mv1=linreg(c,25)
                    lutning01=Mult(Div(Sub(mv1,aref(mv1,1)),mv1),1000)
                    lutning02=Mult(Div(Sub(mv01,aref(mv01,1)),mv1),1000)
                    Draw(kvot,2,dgqb0)
                    Draw(mv01,3,mqb0)
                    villkor01=gt(diff,steg01)
                    köpa=And(And(villkor01,gt(lutning01,steg02)),gt(lutning02,steg02))
                    mult(köpa,20)
                    )
                    ------------------------------------------------------------------------------
                    { volymprofil sälj }

                    längd01:=20
                    steg01:=0.4
                    steg02:=-0.2
                    i1(
                    hugo=Mov(mult(c,v),längd01,e)
                    sliten=Mov(v,längd01,e)
                    kvot=Div(hugo,sliten)
                    mv01=Mov(c,längd01,e)
                    diff=mult(div(Sub(mv01,kvot),c),1000)
                    mv1=linreg(c,25)
                    lutning01=Mult(Div(Sub(mv1,aref(mv1,1)),mv1),1000)
                    lutning02=Mult(Div(Sub(mv01,aref(mv01,1)),mv1),1000)
                    Draw(kvot,2,dgqb0)
                    Draw(mv01,3,mqb0)
                    villkor01=gt(diff,steg01)
                    sälja=And(And(villkor01,lt(lutning01,steg02)),lt(lutning02,steg02))
                    mult(sälja,20)
                    )
                    Jag har labbat lite vidare med volymprofil enligt ovan och kommit fram till att den fungerar bättre under vissa omständigheter som har med microhandelsklimat att göra. Eftersom jag använder scripet för daytrading så har jag upptäckt att om man inte har ett gap mellan gårdagens Close pch dagens Open så "sugs" kursen mellan olika nivåer varför volymprofilscripten fungerar som tänkt. Om man däremot har ett gap så tyder detta på en mer stokastisk slagighet vilket gör kursutvecklingen mer volymoberoende. Just my 5 cents.

                    Med vänlig hälsning
                    Bertil

                    Comment


                    • #25
                      Tänker börja publicera script i den här tråden som jag har men som inte riktigt nått upp till standard vid OOS-test. Tanken med det är att istället för att bara skrota idéer och kod så kanske någon annan på forumet har lite glädje av koden och kanske kan komma med förbättringar.

                      Använder oftast OOS från 2014-01-01 eller 2013-01-01.

                      Comment


                      • #26
                        första koden, har svårt att verifiera den här modellen då jag använde all data för omx för att skapa modellen då den var tänkt som en aktiestrategi. Swingstrategi, en trade OOS på fiktivt som givit vinst. Backtestet ser bra ut och strategin är rimlig. Mean reversion.

                        {Björnen index köpsida}


                        $par1:=200
                        $par2:=4
                        $par3:=100
                        $par4:=20


                        fourdays=aref(c,$par2)

                        setgvarif($par2,222,1)

                        diff=div(sub(c,fourdays),c)
                        ma=mov(diff,$par1,s)
                        sd=stdev(diff,$par1)

                        hiseries=hhv(diff,4)
                        hi1=mov(hiseries,$par3,s)

                        loseries=llv(diff,4)
                        lo1=mov(loseries,$par3,s)

                        multiplier1=div(atr($par4),mov(atr($par4),1000,s))
                        multiplier2=if(lt(multiplier1,1),1,multiplier1)

                        deviation1=sub(ma,mult(sd,multiplier2))
                        deviation2=sub(ma,mult(sd,2))

                        volla=stdev(div(c,aref(c,1)),22)
                        hög_vo=hhv(gt(volla,0.015),100)

                        {kriteria}


                        topp=gt(div(hhv(c,100),c),1.03)

                        average=mov(c,200,s)
                        ned=lt(c,average)

                        innehav1=le(portfolio(v),0)

                        filter1=if(ned,deviation2,deviation1)

                        signal1=and(lt(aref(diff,1),filter1),lt(diff,hi1))

                        köp1=and(and(innehav1,signal1),topp)


                        {cover}

                        innehav2=lt(portfolio(v),0)

                        signal2=lt(aref(diff,1),lo1)
                        signal3=and(and(lt(aref(diff,1),ma),gt(diff,ma)),gt(c,lasttrade(s,p)))

                        cover=and(innehav2,or(signal2,signal3))



                        {order köpsida}

                        order1=or(cover,köp1)

                        mult(order1,1)



                        SÄLJ

                        $par1:=100
                        $par2:=getgvar(222)
                        $par3:=100
                        $par4:=20

                        fourdays=aref(c,$par2)


                        diff=div(sub(c,fourdays),c)
                        ma=mov(diff,$par1,s)
                        sd=stdev(diff,$par1)

                        hiseries=hhv(diff,4)
                        hi1=mov(hiseries,$par3,s)

                        loseries=llv(diff,4)
                        lo1=mov(loseries,$par3,s)

                        multiplier1=div(atr($par4),mov(atr($par4),1000,s))
                        multiplier2=if(lt(multiplier1,1),1,multiplier1)

                        deviation1=add(ma,mult(sd,multiplier2))
                        deviation2=sub(ma,mult(sd,multiplier2))

                        volla=stdev(div(c,aref(c,1)),22)
                        hög_vo=hhv(gt(volla,0.015),100)

                        {kriteria}

                        innehav1=gt(portfolio(v),0)

                        signal1=gt(aref(diff,1),hi1)
                        signal2=ge(diff,hi1)
                        stopp1=and(and(gt(aref(diff,1),ma),lt(diff,ma)),lt(c,lasttrade(b,p)))
                        positivt=gt(c,lasttrade(b,p))

                        signal3=if(and(positivt,gt(diff,hi1)),signal1,signal2)

                        sälj1=and(innehav1,or(stopp1,signal1))

                        {kriteria short}

                        bott=gt(div(c,llv(c,100)),1.03)

                        pengar=gt(cash(),0)

                        filter1=if(gt(c,aref(hhv(h,1000),2)),0,1)
                        ok_trade=eqv(filter1,1)

                        filter2=gt(div(aref(c,2),llv(c,100)),1.05)

                        innehav2=eqv(portfolio(v),0)

                        signal6=gt(aref(diff,1),deviation1)

                        short1=and(and(and(and(innehav2,signal6),ok_trade),pengar),bott)
                        short2=if(hög_vo,short1,0)

                        {order säljsida}

                        order1=or(sälj1,short2)

                        mult(order1,1)
                        Last edited by Filipb; 2017-04-24, 22:18.

                        Comment


                        • #27
                          Ganska hög handelsfrekvens. Strategin levde ej upp till förväntningarna riktigt OOS.

                          {Doris index köp}



                          yyy:=1.004



                          klocka=frac(date())
                          tid1=lt(klocka,0.722)

                          filter1=and(gt(div(c,aref(h,1)),1.0001),lt(c,aref(h,2)))

                          innehav1=eqv(portfolio(v),0)

                          köp1=and(and(tid1,filter1),innehav1)


                          {Doris index cover}

                          innehav2=lt(portfolio(v),0)

                          tid2=gt(klocka,0.722)

                          stopp1=gt(div(c,aref(l,1)),yyy)

                          cover=and(innehav2,or(stopp1,tid2))

                          {Doris index order}

                          order=or(köp1,cover)


                          mult(köp1,1)


                          {Doris index sälj}


                          xxx:=0.998

                          klocka=frac(date())
                          tid1=gt(klocka,0.722)

                          stopp1=lt(div(c,aref(h,1)),xxx)

                          innehav1=gt(portfolio(v),0)

                          sälj1=and(innehav1,or(stopp1,tid1))


                          {Doris index short}

                          ma1=lt(c,mov(c,20,s))

                          signal1=and(lt(div(c,aref(l,1)),0.9999),gt(c,aref(l,2)))

                          innehav2=eqv(portfolio(v),0)

                          tid2=lt(klocka,0.722)

                          short1=and(and(and(signal1,innehav2),tid2),ma1)

                          {Doris index order}

                          order=or(sälj1,short1)


                          mult(sälj1,1)
                          Last edited by Filipb; 2017-04-24, 22:20.

                          Comment


                          • #28
                            Faktiskt en bra strategi för DAX. Medelhögt handelstempo.

                            DAX INDEX

                            {Molly köp}
                            {$opt(gräns,5,20,1)}
                            {$opt(nummer2,30,100,5)}
                            {$opt(spar1,80,130,5)}
                            gräns:=10
                            {15,80,130}
                            nummer2:=75

                            MA50:=mov(c,nummer2,e)
                            spar1:=115

                            i15(

                            {Connor}

                            rank1U=gt(c,aref(c,1))
                            rank1D=lt(c,aref(c,1))
                            rank2U=hhvbars(rank1D,20)
                            rank2D=hhvbars(rank1U,20)
                            rank3U=if(rank1U,rank2U,0)
                            rank3D=if(rank1D,rank2D,0.0001)


                            rsU=ema(rank3U,2)
                            rsD=ema(rank3D,2)
                            rsT1=div(rsU,rsD)
                            rsistreak2=sub(100,div(100,add(1,rsT1)))


                            pd1=div(sub(c,aref(c,1)),aref(c,1))
                            retval(pd1,4)
                            pd2=sum(lt(pd1,getval(4)),spar1)
                            percentrank=mult(div(pd2,spar1),100)

                            ConnorsRSI=div(add(add(rsiws(3),rsistreak2),percentrank),3)

                            {upptrend och villkor}

                            klocka=frac(date())

                            1715=lt(klocka,0.72)

                            0930=gt(klocka,0.4)

                            innehav=le(portfolio(v),0)

                            upptrend1=gt(ma50,aref(ma50,1))


                            kriteria=lt(connorsRSI,gräns)

                            köp1=and(innehav,upptrend1)
                            köp2=and(köp1,kriteria)
                            köp3=and(and(köp2,1715),0930)


                            setgvarif(11,134,köp3)

                            mult(köp3,11)

                            )


                            SÄLJ


                            {$opt(nummer1,50,100,1)}
                            {$opt($par1,80,130,5)}
                            {60,130}


                            nummer1:=76

                            $par1:=115
                            average:=mov(c,50,s)


                            i15(


                            rank1U=gt(c,aref(c,1))
                            rank1D=lt(c,aref(c,1))
                            rank2U=hhvbars(rank1D,20)
                            rank2D=hhvbars(rank1U,20)
                            rank3U=if(rank1U,rank2U,0)
                            rank3D=if(rank1D,rank2D,0.0001)


                            rsU=ema(rank3U,2)
                            rsD=ema(rank3D,2)
                            rsT1=div(rsU,rsD)
                            rsistreak2=sub(100,div(100,add(1,rsT1)))


                            pd1=div(sub(c,aref(c,1)),aref(c,1))
                            retval(pd1,4)
                            pd2=sum(lt(pd1,getval(4)),$par1)
                            percentrank=mult(div(pd2,$par1),100)

                            ConnorsRSI=div(add(add(rsiws(3),rsistreak2),percentrank),3)

                            ner=ge(connorsRSI,nummer1)

                            innehav=gt(portfolio(v),0)

                            klocka=frac(date())

                            1725=gt(klocka,0.725)

                            stop=gt(div(lasttrade(b,p),c),1.02)

                            sälj1=and(or(ner,1725),innehav)


                            setgvarif(10,136,sälj1)

                            mult(sälj1,10)

                            )
                            Last edited by Filipb; 2017-04-24, 22:29.

                            Comment


                            • #29
                              hög handelsfrekvens, nådde ej upp till kraven för OOS.

                              {Flipper köp}

                              ma_length:=80
                              wlength:=200

                              i15(

                              ma1=mov(c,ma_length,s)
                              sd1=stdev(c,ma_length)

                              sdplus=add(ma1,mult(sd1,1.5))
                              sdmin=sub(ma1,mult(sd1,1.5))

                              bol_width=div(sub(sdplus,sdmin),ma1)

                              filter1=lt(llv(bol_width,wlength),aref(llv(bol_width,wlength),1))

                              setgvarif(1,222,filter1)



                              trade_ok=eqv(getgvar(222),1)

                              klocka1=frac(date())
                              tid1=lt(klocka1,0.7)

                              signal1=and(lt(aref(c,1),sdplus),gt(c,sdplus))

                              signal2=gt(c,ma1)

                              innehav1=eqv(portfolio(v),0)

                              köp1=and(and(and(and(trade_ok,signal1),innehav1),signal2),tid1)

                              setgvarif(0,222,köp1)
                              retval(atr(20),0)
                              retval(div(sub(c,ma1),c),1)

                              {Flipper cover}

                              klocka2=frac(date())
                              tid2=gt(klocka2,0.722)

                              ma2=mov(c,80,s)

                              stopp=if(gt(lasttrade(s,1),0.02),mult(lasttrade(s,0),2),ma2)

                              signal3=gt(c,stopp)

                              innehav2=lt(portfolio(v),0)

                              cover1=or(and(signal2,innehav2),and(innehav2,tid2))

                              {Flipper order köpsida}

                              order1=or(cover1,köp1)

                              mult(köp1,1)
                              )

                              {Flipper short}

                              ma_length:=80
                              wlength:=200

                              i15(

                              ma1=mov(c,ma_length,s)
                              sd1=stdev(c,ma_length)

                              sdplus=add(ma1,mult(sd1,1.5))
                              sdmin=sub(ma1,mult(sd1,1.5))

                              bol_width=div(sub(sdplus,sdmin),ma1)

                              filter1=lt(llv(bol_width,wlength),aref(llv(bol_width,wlength),1))

                              setgvarif(1,223,filter1)

                              trade_ok=eqv(getgvar(223),1)

                              klocka1=frac(date())
                              tid1=lt(klocka1,0.7)

                              filter2=and(gt(aref(c,1),sdmin),lt(c,sdmin))
                              filter3=lt(c,ma1)

                              innehav1=eqv(portfolio(v),0)

                              short1=and(and(and(and(trade_ok,tid1),innehav1),filter2),filter3)

                              setgvarif(0,223,short1)
                              retval(atr(20),0)
                              retval(div(sub(ma1,c),c),1)

                              {Flipper sälj}


                              klocka2=frac(date())
                              tid2=gt(klocka2,0.722)

                              ma2=mov(c,80,s)

                              stopp=if(gt(lasttrade(b,1),0.02),mult(lasttrade(b,0),2),ma2)

                              signal1=lt(c,aref(ma2,1))
                              signal2=lt(c,stopp)

                              innehav2=gt(portfolio(v),0)

                              sälj1=or(and(signal2,innehav2),and(innehav2,tid2))

                              {Flipper sälj}

                              order1=or(short1,sälj1)

                              mult(sälj1,1)

                              )
                              Last edited by Filipb; 2017-04-24, 22:27.

                              Comment


                              • #30
                                medelhög handelsfrekvens. Klarade ej av OOS.

                                {Mattehorn 1.0 index köpsida}

                                innehav1=eqv(portfolio(v),0)

                                klocka=frac(date())
                                tid=lt(klocka,0.722)

                                filter1=lt(aref(c,1),aref(h,2))

                                signal1=gt(c,aref(h,2))

                                köp1=and(and(innehav1,and(filter1,signal1)),tid)

                                {Matterhorn 1.0 index cover}

                                innehav2=lt(portfolio(v),0)

                                stäng1=gt(klocka,0.722)

                                stopp1=gt(c,getgvar(806))

                                cover1=and(innehav2,or(stopp1,stäng1))

                                {Matterhorn 1.0 index Order köpsida}

                                order1=or(köp1,cover1)

                                setgvarif(mult(aref(c,1),0.997),805,köp1)
                                setgvarif(100000,806,cover1)

                                mult(order1,1)

                                {Matterhorn 1.0 index säljsida}

                                innehav1=gt(portfolio(v),0)

                                klocka=frac(date())
                                tid=gt(klocka,0.722)

                                stopp1=lt(c,getgvar(805))

                                sälj1=and(innehav1,or(tid,stopp1))

                                {Matterhorn 1.0 index short}

                                volla=gt(atr(5),atr(30))

                                innehav2=eqv(portfolio(v),0)

                                filter1=gt(aref(c,1),aref(l,2))

                                filter2=lt(klocka,0.722)

                                signal1=lt(c,aref(l,2))

                                short1=and(and(innehav2,and(filter1,signal1)),filter2)

                                {Matterhorn 1.0 index order}

                                order1=or(sälj1,short1)

                                setgvarif(mult(aref(c,1),1.001),806,short1)
                                setgvarif(0,805,sälj1)

                                mult(order1,1)
                                Last edited by Filipb; 2017-04-24, 22:27.

                                Comment

                                Working...
                                X